2898|4

38

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

M430 UART0 接收数据 [复制链接]

最近在研究430 看到有人写的一段代码,为了接收GPS的数据,使用串口中断接收,部分代码如下:
if(global_temp_data_num==0)   //获取"GG"标志
        {
          if(RXBUF0=='G')
          {
            global_temp_data[0]='G';
            global_temp_data_num=1;
          }
          else global_temp_data_num=0;
        }
        else if(global_temp_data_num==1)
        {
          if(RXBUF0=='G')
          {
            global_temp_data[1]='G';
            global_temp_data_num=2;
          }
          else global_temp_data_num=0;
        }//"GG"标志获取完成
        else
        {
          global_temp_data[global_temp_data_num]=RXBUF0;
          global_temp_data_num++;
        }

global_temp_data_num 接收前初始化为0.


搞不明白的是,global_temp_data[0]里面不可能存入数据嘛,那么
if(RXBUF0=='G')
          {
            global_temp_data[0]='G';
            global_temp_data_num=1;
          }

怎么可能成立,请各位大侠求助,实在想不通了

最新回复

楼上写得很详细  详情 回复 发表于 2014-9-19 08:39
 
点赞 关注

回复
举报

407

帖子

3

TA的资源

纯净的硅(初级)

沙发
 
global_temp_data[0]='G';  这句话不就是把数据存入到数组里的吗,怎么叫不可能,存入数据?
 
个人签名我在想
我知道什么
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
楼主是不是很久没有接触C语言,啥东西都忘光了?
回想一下=和==的区别就知道了
=是赋值语句,==是判断语句
if(global_temp_data_num==0)   //当global_temp_data_num=0时
        {
          if(RXBUF0=='G')//如果收到G
          {
            global_temp_data[0]='G';//那么存入global_temp_data[0]
            global_temp_data_num=1; //再让global_temp_data_num=1
          }
          else global_temp_data_num=0;//如果收到的不是G,那么让global_temp_data_num回到0
        }
        else if(global_temp_data_num==1)//如果global_temp_data_num=1,说明之前接收到一个G了,这是G后面的一个字符
        {
          if(RXBUF0=='G')//判断第二个收到的是不是G
          {
            global_temp_data[1]='G';//如果还是G,那赋值进global_temp_data[1]
            global_temp_data_num=2; //同时让global_temp_data_num变成2
          }
          else global_temp_data_num=0;//如果收到的第二个字符不是G,那么说明不符合开始条件,回到global_temp_data_num=0重新接收
        }//"GG"标志获取完成
        else//收完GG开始标志之后,收到其他的字符
        {
          global_temp_data[global_temp_data_num]=RXBUF0;把字符放进global_temp_data[global_temp_data_num]里
          global_temp_data_num++;//让global_temp_data_num比原来多1,好存放下一个字符
        }

点评

糊涂了,这两天看代码看的头疼了,谢谢啊,最基本的东西忘记了,丢人了  详情 回复 发表于 2014-9-19 11:16
 
 
 

回复

1972

帖子

0

TA的资源

五彩晶圆(初级)

4
 
楼上写得很详细
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

5
 
qiushenghua 发表于 2014-9-18 17:10
楼主是不是很久没有接触C语言,啥东西都忘光了?
回想一下=和==的区别就知道了
=是赋值语句,==是判断语句 ...

糊涂了,这两天看代码看的头疼了,谢谢啊,最基本的东西忘记了,丢人了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表