[STM32F1] 串口多返回一个值怎么解决

[复制链接]
621|13
 楼主| lizye 发表于 2021-3-2 22:27 | 显示全部楼层 |阅读模式

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,请问哪来的,咋改
xxrs 发表于 2021-3-2 22:29 | 显示全部楼层
你要看数据类型 在分析       你最好加上printf看看打出来的数据在分析
chuxh 发表于 2021-3-2 22:31 | 显示全部楼层
这个进行数据长度的判断的呀,多出的数据直接舍弃掉的
dingy 发表于 2021-3-2 22:32 | 显示全部楼层
还一个进行数据的crc校验的,校验不过,请求重新发送数据的也可以的
supernan 发表于 2021-3-2 22:34 | 显示全部楼层
多返回的数据直接丢弃掉的不就行了么?
liuzaiy 发表于 2021-3-2 22:36 | 显示全部楼层
怎么可能返回多个数字呢  ???
ousj 发表于 2021-3-2 22:40 | 显示全部楼层
RXBUF0=='e'这个是怎么读取的呢。
zyf部长 发表于 2021-3-2 22:43 | 显示全部楼层
这个首先看下你的看门狗定时器的正常开启没的
 楼主| lizye 发表于 2021-3-2 22:45 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
guanjiaer 发表于 2021-4-1 09:59 | 显示全部楼层
多出的数据直接舍弃掉
heimaojingzhang 发表于 2021-4-1 10:00 | 显示全部楼层
进行数据的crc校验
keaibukelian 发表于 2021-4-1 10:03 | 显示全部楼层
字符形式的转换啊
labasi 发表于 2021-4-1 10:05 | 显示全部楼层
是不是设置有问题啊
paotangsan 发表于 2021-4-1 10:06 | 显示全部楼层
自己写一个协议
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

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