发新帖我要提问
12
返回列表
打印
[STM32F1]

多路USART同时工作是不是有坑?

[复制链接]
楼主: 万图
手机看帖
扫描二维码
随时随地手机跟帖
21
在中断服务函数中将接收到的数据存入环形缓冲区,由主循环负责处理,避免中断服务函数耗时过长。

使用特权

评论回复
22
4y1b3| | 2025-5-31 23:59 | 只看该作者
没进中断。

使用特权

评论回复
23
别乱了阵脚| | 2025-6-7 17:00 | 只看该作者
STM32F1上多路USART同时工作时出现数据丢失问题,确实可能与中断优先级配置有关

使用特权

评论回复
24
远山寻你| | 2025-6-7 17:31 | 只看该作者
STM32F1的中断优先级分为抢占优先级和响应优先级,若两个USART中断的抢占优先级相同且同时触发,可能因响应顺序问题导致数据丢失

使用特权

评论回复
25
硬件资源冲突,若两个USART共享某些硬件资源(如DMA通道),且配置不当,可能引发冲突。

使用特权

评论回复
26
淡漠安然| | 2025-6-7 19:21 | 只看该作者
缓冲区溢出,若接收缓冲区设置过小,或数据处理不及时,可能导致数据覆盖或丢失

使用特权

评论回复
27
夜阑风雨| | 2025-6-7 20:09 | 只看该作者
时钟配置问题,USART的时钟配置不当,如波特率设置错误,可能导致数据接收异常

使用特权

评论回复
28
冰春彩落下| | 2025-6-7 21:00 | 只看该作者
引脚复用冲突:若USART引脚与其他外设引脚复用冲突,可能导致信号干扰或数据错误。

使用特权

评论回复
29
codingtuzi| | 2025-6-7 21:05 | 只看该作者
这个问题还真没有考虑过。我感觉应该不会有类似的情况出现吧

使用特权

评论回复
30
yangxiaor520| | 2025-6-7 22:16 | 只看该作者
两个串口的工作逻辑是怎么的?发送丢还是接受丢?

使用特权

评论回复
31
江河千里| | 2025-6-7 23:00 | 只看该作者
合理配置中断优先级,使用NVIC_PriorityGroupConfig()函数设置中断优先级分组

使用特权

评论回复
32
光辉梦境| | 2025-6-7 23:30 | 只看该作者
为不同的USART分配不同的抢占优先级和响应优先级,确保高优先级的中断能够及时处理

使用特权

评论回复
33
一秒落纱| | 2025-6-8 06:00 | 只看该作者
确保每个USART使用独立的DMA通道(如果使用DMA)。检查USART引脚是否与其他外设引脚复用冲突,必要时进行引脚重映射

使用特权

评论回复
34
三生万物| | 2025-6-8 16:00 | 只看该作者
优化缓冲区管理,增大接收缓冲区大小,避免数据溢出。在中断服务函数中尽快处理接收到的数据,或使用DMA自动传输到内存

使用特权

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

本版积分规则