你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32串口接收第一个字节的问题

[复制链接]
wanyisq 提问时间:2018-10-16 20:09 /
请问一下用HAL库做串口接收,单步仿真,第一个字节可以接收到。全速运行第一个字节就没有了。但是把接受的数据再发出来,发现第一个字节到了最后一个字节。

发送一个字节

发送一个字节

发送多个字节

发送多个字节

接收到的数据通过串口发送出来

接收到的数据通过串口发送出来


第一次接受的数据是23,正常
第二次接受多个字节 23 24 25 26 ,但是接收到的数据已经变成了 24 25 26 23

收藏 评论6 发布时间:2018-10-16 20:09

举报

6个回答
chifen 回答时间:2018-10-16 20:24:17
先单独接收所有数据,不要回复,收和发是共用一个函数据的,看看能不能收全,再发送

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

wenyangzeng 回答时间:2018-10-16 21:14:05
应该判断标志位的:

while (HAL_UART_GetState(&UartHandle) != HAL_UART_STATE_READY)
  {
  }

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

wudianjun2001 回答时间:2018-10-17 09:13:20
接收中断的话,应该不会有这个问题,缓冲没处理好?

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

xiaoshen-372360 回答时间:2018-10-18 09:05:45
全速运行的时候中间设置时间间隔,设置大概1秒的时间间隔,然后再开始接受,使用串口调试工具检测,看看是不是下一次的第一个字节到了前一个字节了,

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

jeffhe1 回答时间:2018-10-18 09:35:30
可能需要做 狀態判斷 , 在做下一步動作 , 不然buffer的值 , 有可能就被取代 , 再加上有 ring buffer 的話 ,而 buffer 不夠大, data 就會一直覆蓋

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

czm 回答时间:2020-3-28 16:22:17
你好,请问你这个问题当时解决了吗?我也遇到了这个问题,请赐教下
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版