| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3759 人关注过本帖
标题:自己编的一个串口程序接收到的数据不对、
取消只看楼主 加入收藏
liu_liuk
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
自己编的一个串口程序接收到的数据不对、
要接收四个变量,从上位机,这是个变量有整数,有小数。有负数。接收到小数后,在进行运算。然后把运算的值发出去。被上位机接收。你弄了好久也不成功。。请给位看看问题在哪。该怎麽该,先拜谢。。
#include <hidef.h>      
#include <mc9s12dg256.h>     
#pragma LINK_INFO DERIVATIVE "mc9s12dg256"


byte num;
byte rev_data[3];

//.................SCI0模块初始化....................//
void SCI0_Init(void)
    {
SCI0BDL=(unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
SCI0CR1=0X00;
SCI0CR2=0X2C;
    }


//..................主函数...................//
void main(void)
{
SCI0_Init();
 DisableInterrupts; /*禁止中断*/
while(1)
{      
static uchar k=0;
if(SCI0SR1_RDRF==1)
{
  rev_data[k++]=SCI0DRL;
 

num= rev_data[0]+1;   /*接收第一个数据并运算
  while(!SCI0SR1_TDRE);
 SCI0DRL=num;          /*把第一个运算结果输出
 
 num= rev_data[1]+2;      /*接收第二个数据并运算
  while(!SCI0SR1_TDRE);
 SCI0DRL=num;               /*把第二个运算结果输出
  
 num= rev_data[2]+3;  /*接收第三个数据并运算
  while(!SCI0SR1_TDRE);
 SCI0DRL=num;    /*把第三个运算结果输出
 
  num= rev_data[3]+4;      /*接收第四个数据并运算
  while(!SCI0SR1_TDRE);
 SCI0DRL=num;            /*接收第四个数据并运算
  
}
}
搜索更多相关主题的帖子: void 数据 include factor 
2012-05-18 15:37
liu_liuk
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-18
收藏
得分:0 
回复 2楼 silent_world
关于k的增加问题。我用k++,是因为,我后面还有序没贴出来。if(k>=4){k=0}.而关于运算问题。就是加减运算。我要把收到的数字进行加减运算的目地,只是为了测试这个程序的正确性、可以与小数等相加减,并可以发送小数负数等。。程序验证通过,我要把做好的控制程序嵌入入进去。实现控制功能。您所说的加减小数。也是我的问题。我不知道该如何解决。所以才来求助。请您帮忙解答,谢谢。

[ 本帖最后由 liu_liuk 于 2012-5-19 15:44 编辑 ]
2012-05-19 15:41
快速回复:自己编的一个串口程序接收到的数据不对、
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved