请教串口多返回一个值怎么解决

[复制链接]
1689|27
 楼主| 默默玩火 发表于 2019-3-21 09:06 | 显示全部楼层 |阅读模式
if(RXBUF0=='e')
        {
            n_1=count/256;    //count=60000,n_1=EA,n_2=60
            TXBUF0 = n_1;
            while((UTCTL0&0X01)==0);
            n_2=count-256*n_1;
            TXBUF0 = n_2;
       }
走串口接收n_1和n_2的值,应该显示‘EA 60’,结果返回是‘EA 60 60’,多了个60,请问哪来的,咋改
零三翟邢止胃 发表于 2019-3-21 09:32 | 显示全部楼层
帮你顶住啊!!

评论

老哥你每次咋那么皮呢。。。  发表于 2019-3-21 09:41
zhangmangui 发表于 2019-3-21 22:39 | 显示全部楼层
你要看数据类型 在分析       你最好加上printf看看打出来的数据在分析
vibra2016 发表于 2019-3-23 00:24 | 显示全部楼层
这个进行数据长度的判断的呀,多出的数据直接舍弃掉的
vibra2016 发表于 2019-3-23 00:24 | 显示全部楼层
还一个进行数据的crc校验的,校验不过,请求重新发送数据的也可以的
tongbu2015 发表于 2019-3-23 21:58 | 显示全部楼层
多返回的数据直接丢弃掉的不就行了么?
tongbu2015 发表于 2019-3-23 21:58 | 显示全部楼层
数据包的一定要有校验的
kkzz 发表于 2019-4-1 16:18 | 显示全部楼层
怎么可能返回多个数字呢                       
hudi008 发表于 2019-4-1 16:19 | 显示全部楼层
‘EA 60’怎么获取的这个数据呢                       
lzmm 发表于 2019-4-1 16:19 | 显示全部楼层
可以使用for循环读取试试看看。                       
minzisc 发表于 2019-4-1 16:20 | 显示全部楼层
RXBUF0=='e'这个是怎么读取的呢。
selongli 发表于 2019-4-1 16:20 | 显示全部楼层
while((UTCTL0&0X01)==0);这个对吗
fentianyou 发表于 2019-4-1 16:21 | 显示全部楼层
使用中断吧。                             
xiaoyaodz 发表于 2019-4-1 16:21 | 显示全部楼层
串口多返回一个是什么问题   
febgxu 发表于 2019-4-1 16:22 | 显示全部楼层
你要实现的是什么功能呢   
sdlls 发表于 2019-4-1 16:22 | 显示全部楼层
没有看懂这个代码要表达什么  
pixhw 发表于 2019-4-1 16:23 | 显示全部楼层
网上不是有发送字符串的函数吗?        
fentianyou 发表于 2019-4-1 16:23 | 显示全部楼层
中断做控制计较简单一些。                              
kkzz 发表于 2019-4-1 16:23 | 显示全部楼层
你是不是将寄存器读取了两次呢?                  
selongli 发表于 2019-4-1 16:23 | 显示全部楼层
应该判断是否产生外部的串口中断  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部