用串口发数据给stm32,开启了串口接收中断.数据处理在中断函数中
stm32的串口的数据位设为8位.
向单片机发送0xABC
利用断点查看接收到的数据
数据接收为0xAB 再让发送回来
收回0xAB. 8位以后的C被舍弃了
发送一个0xABCD
收到完整的0xABCD
格式为 AB CD
说明是将16为的数据分两次一次8位的发送回来.
QUESTION:
1.串口将第一次发送的C舍掉,为什么不把0xC补成0xC0发送回来
2.8位数据位的串口在接收高于8位的数据时是怎么处理的?
3.怎么样才能正常的一次性的接收所有数据.
stm32 串口数据问题
答案:2 悬赏:20 手机版
解决时间 2021-02-13 21:33
- 提问者网友:难遇难求
- 2021-02-13 14:03
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-02-13 15:23
这是因为你发了16位数据,被理解为发送2次,即分2次发送完毕,所以格式为 AB CD,如果你发ABC系统默认从左到右,只能处理8位数据,即AB,C被舍弃了
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-02-13 16:14
1. 你把i定义成全局变量试试,不要在中断函数里面定义
2. 你没必要吧结果定义成数组的一部分
只需要value=(arry[0]<<8)+arry[1];
这样解决应该是没问题的,stm32的串口我用的感觉挺好的,没啥问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯