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

[复制链接]
1373|24
别乱了阵脚 发表于 2025-5-15 23:59 | 显示全部楼层
在中断服务函数中将接收到的数据存入环形缓冲区,由主循环负责处理,避免中断服务函数耗时过长。
4y1b3 发表于 2025-5-31 23:59 | 显示全部楼层
没进中断。
别乱了阵脚 发表于 2025-6-7 17:00 | 显示全部楼层
STM32F1上多路USART同时工作时出现数据丢失问题,确实可能与中断优先级配置有关
远山寻你 发表于 2025-6-7 17:31 | 显示全部楼层
STM32F1的中断优先级分为抢占优先级和响应优先级,若两个USART中断的抢占优先级相同且同时触发,可能因响应顺序问题导致数据丢失
暖了夏天蓝了海 发表于 2025-6-7 18:03 | 显示全部楼层
硬件资源冲突,若两个USART共享某些硬件资源(如DMA通道),且配置不当,可能引发冲突。
淡漠安然 发表于 2025-6-7 19:21 | 显示全部楼层
缓冲区溢出,若接收缓冲区设置过小,或数据处理不及时,可能导致数据覆盖或丢失
夜阑风雨 发表于 2025-6-7 20:09 | 显示全部楼层
时钟配置问题,USART的时钟配置不当,如波特率设置错误,可能导致数据接收异常
冰春彩落下 发表于 2025-6-7 21:00 | 显示全部楼层
引脚复用冲突:若USART引脚与其他外设引脚复用冲突,可能导致信号干扰或数据错误。
codingtuzi 发表于 2025-6-7 21:05 | 显示全部楼层
这个问题还真没有考虑过。我感觉应该不会有类似的情况出现吧
yangxiaor520 发表于 2025-6-7 22:16 来自手机 | 显示全部楼层
两个串口的工作逻辑是怎么的?发送丢还是接受丢?
江河千里 发表于 2025-6-7 23:00 | 显示全部楼层
合理配置中断优先级,使用NVIC_PriorityGroupConfig()函数设置中断优先级分组
光辉梦境 发表于 2025-6-7 23:30 | 显示全部楼层
为不同的USART分配不同的抢占优先级和响应优先级,确保高优先级的中断能够及时处理
一秒落纱 发表于 2025-6-8 06:00 | 显示全部楼层
确保每个USART使用独立的DMA通道(如果使用DMA)。检查USART引脚是否与其他外设引脚复用冲突,必要时进行引脚重映射
三生万物 发表于 2025-6-8 16:00 | 显示全部楼层
优化缓冲区管理,增大接收缓冲区大小,避免数据溢出。在中断服务函数中尽快处理接收到的数据,或使用DMA自动传输到内存
朝生 发表于 2025-6-9 14:52 | 显示全部楼层
DMA直接在内存和设备间传输数据,减少了CPU干预,降低数据丢失风险。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部