智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1896|回复: 3
打印 上一主题 下一主题

串口接收四个变量并运算。

[复制链接]

2

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
威望
252
贡献
59
兑换币
12
注册时间
2011-8-7
在线时间
12 小时
跳转到指定楼层
1#
发表于 2012-5-17 11:04:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一段串口程序,就是串口接收四个变量数据然后分别进行运算,再从串口发出。接收到的数据不知道为什末。求高手帮忙,可有酬劳:362568569

#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;            /*接收第四个数据并运算*/
  
}
}

4

主题

487

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2981

活跃会员奖章优秀会员奖章

QQ
威望
2216
贡献
489
兑换币
53
注册时间
2010-11-10
在线时间
138 小时
2#
发表于 2012-5-18 15:51:15 | 只看该作者
有点没明白你的问题。你的程序的意思就是第一个数据加一,第二个数据加二,以此类推 然后回发有什么别的奥秘吗??????
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
威望
252
贡献
59
兑换币
12
注册时间
2011-8-7
在线时间
12 小时
3#
 楼主| 发表于 2012-5-19 15:48:42 | 只看该作者
没别的意思。也不是非依次类推的相加。随便加减一个数。是个固定值、有解决方法吗。拜求解决。
回复 支持 反对

使用道具 举报

5

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
威望
281
贡献
85
兑换币
21
注册时间
2011-11-12
在线时间
7 小时
4#
发表于 2012-5-20 11:19:08 | 只看该作者
思考中
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 02:49 , Processed in 0.050476 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表