打印
[STM32F7]

HAL库BUG中串口读写冲突问题怎么解决而不改HAL?

[复制链接]
1223|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liyancao001|  楼主 | 2022-11-14 08:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在搞H767中的串口,发现多数据同时读写时卡死在读取中断中读取状态是否就绪哪里,当时是一直卡在TX状态上。从网上查到两种解决方案:

1.把HAL库中串口发送的函数中加锁、把状态设为TX、解锁这三句话注释掉。
2.不用常用的使能中断函数,然后自己写中断服务程序
这两种测试都是有效果的,但是我是用STM32CUBE生成的代码,而上面两种办法再重新生成以后都会修改掉之前的改动,万一时间长了容易忘记这地方。
因此,哪位大神知道这地方怎么使用是最正确的呢?是不是这地方不算BUG而单纯只是使用方式不对呢?

使用特权

评论回复
沙发
一只眠羊| | 2022-12-15 02:00 | 只看该作者
属实,他这个cubemx生成一遍,程序就刷新了一遍,白改

使用特权

评论回复
板凳
我吃小朋友| | 2022-12-15 02:32 | 只看该作者
不是说,放在规定的区域,程序是不会被修改的么

使用特权

评论回复
地板
未说出口的像你| | 2022-12-15 03:04 | 只看该作者
你自己写中断程序应该是OK

使用特权

评论回复
5
月亮一键变蓝| | 2022-12-15 03:36 | 只看该作者
我现在是自己写中断逻辑,反正没遇到你说的那种情况

使用特权

评论回复
6
在曼谷的春| | 2022-12-15 04:08 | 只看该作者
按理来说,第二种还是比较好用的

使用特权

评论回复
7
失物招領| | 2022-12-15 04:40 | 只看该作者
为啥会出现读取状态出现问题呢?是没清标记么?

使用特权

评论回复
8
将爱藏于深海| | 2022-12-15 05:12 | 只看该作者
发送这样的话,你可以用DMA发送是不是就好了

使用特权

评论回复
9
温室雏菊| | 2022-12-15 05:44 | 只看该作者
你发送的数据有多大多频繁啊?

使用特权

评论回复
10
她已醉| | 2022-12-15 06:16 | 只看该作者
感觉不应该会出现发送读取中断标记失败的情况啊,你这操作可能有点问题吧

使用特权

评论回复
11
春日负喧| | 2022-12-15 06:48 | 只看该作者
用第二种可以,第一种好像用cubemx更新一下,就又没了

使用特权

评论回复
12
probedog| | 2024-5-16 10:03 | 只看该作者
优化你的应用代码

使用特权

评论回复
13
laocuo1142| | 2024-5-16 17:00 | 只看该作者
更新HAL库至最新版本

使用特权

评论回复
14
liyancao001|  楼主 | 2024-6-23 09:55 | 只看该作者
这个问题官方给修复了吗?知道如何实现的吗?

使用特权

评论回复
15
jf101| | 2024-6-23 14:46 | 只看该作者
是官方库文件导致的嘛?目前没有遇到过

使用特权

评论回复
评论
liyancao001 2024-5-25 14:59 回复TA
大数量同时收发时容易触发这个BUG,你可以找两个单片机,单片机1的TX、RX分别和单片机2的RX、TX接到一起,然后让两个单片机一直不停的都发数据,同时用中断接收收据,很快接收就会死掉。 
16
OKAKAKO| | 2024-6-24 20:06 | 只看该作者
其实是不是有可能跟处理时序机制导致的,我遇到过CAN口一直通讯,10分钟后系统卡死问题,后来换了MCU就好了

使用特权

评论回复
17
狗啃模拟| | 2024-7-31 23:36 | 只看该作者
直接修改 HAL 库的源码可能会导致不可预见的问题,并且在重新生成代码时会被覆盖。尽量避免修改 HAL 库的源代码。

使用特权

评论回复
18
stormwind123| | 2024-8-9 19:18 | 只看该作者
中断优先级和嵌套是否正确

使用特权

评论回复
19
两只袜子| | 2024-8-9 19:19 | 只看该作者
最小化中断服务程序或者进行任务分解

使用特权

评论回复
20
jcky001| | 2024-8-9 19:20 | 只看该作者
代码重构、使用回调函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

32

帖子

2

粉丝