OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3967|回复: 2

stm32H750 LL库串口通讯3-5次就出错一次!

[复制链接]

13

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
749
金钱
749
注册时间
2020-6-24
在线时间
311 小时
发表于 2022-1-11 11:25:06 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 ColeSofCJ 于 2022-1-11 16:21 编辑

  如图所示,stm32H750使用LL库做串口通讯,3-5次就会出错一次,基本上都是漏掉几个数据,同一块板子使用HAL库的时候连续通讯200次没有发现这个现象,不知道是啥原因?
  (附图连续两次通讯,前一次是好的,收了16个字节,后一次就只收了13个字节,大彩屏EE B1开头,FF FC FF FF结尾,波特率57.6K,IAR C++带FreeRTOS运行)

    已找到原因,是18B20程序关中断引起的,屏蔽掉DS18B20的代码后串口正常了,没明白为啥Hal库的代码不受影响,有知道的麻烦告诉一声,谢谢!
    解决方法是taskENTER_CRITICAL(); 与 taskEXIT_CRITICAL();        改为vTaskSuspendAll(); 与 xTaskResumeAll()  ,大概3-5次正确的数据会夹杂一次错误的数据,不过比串口丢数据好处理多了。

stm32H750_USART_ERR.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4305
金钱
4305
注册时间
2019-9-4
在线时间
896 小时
发表于 2022-1-11 11:31:42 | 显示全部楼层
估计是LL库的串口通讯没处理好吧。注意看下标志位,做下判断状态位的处理
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2022-1-11 12:41:27 | 显示全部楼层
你可以在接收里面搞一个寄存器写的接收完成判断试试
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 06:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表