打印
[STM32F1]

STM32F103串口发送数据总是丢帧怎么办?

[复制链接]
562|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Henryko|  楼主 | 2025-4-20 15:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
上电后通过USART1发送连续数据包,接收端偶尔漏掉前几个字节。尝试降低波特率和调整DMA配置无效,硬件流控已关闭,示波器看波形电平正常。有没有可能和时钟树配置有关?

使用特权

评论回复
沙发
回复就哭哭| | 2025-4-30 23:41 | 只看该作者
电源不稳定或地线连接不良可能会导致传感器的输出异常,影响速度反馈。

使用特权

评论回复
板凳
stormwind123| | 2025-5-6 13:15 | 只看该作者
串口引脚连接错误?

使用特权

评论回复
地板
flycamelaaa| | 2025-5-6 13:16 | 只看该作者
可能是波特率不匹配

使用特权

评论回复
5
powerantone| | 2025-5-6 13:16 | 只看该作者
波特率、数据位、停止位等参数配置错误。

使用特权

评论回复
6
stormwind123| | 2025-5-6 13:16 | 只看该作者
发送缓冲区溢出,在数据未发送完成前写入新数据,导致丢帧。

使用特权

评论回复
7
probedog| | 2025-5-6 13:17 | 只看该作者
DMA配置错误或缓冲区被意外修改。

使用特权

评论回复
8
jcky001| | 2025-5-6 13:17 | 只看该作者
中断优先级冲突

使用特权

评论回复
9
cr315| | 2025-5-6 13:18 | 只看该作者
用非阻塞发送或DMA,避免缓冲区溢出。

使用特权

评论回复
10
一秒落纱| | 2025-5-13 13:47 | 只看该作者
STM32F103的时钟系统对串口性能至关重要。若时钟配置不当,可能导致串口通信不稳定,出现丢帧现象。

使用特权

评论回复
11
暖了夏天蓝了海| | 2025-5-13 14:30 | 只看该作者
系统时钟源稳定性,确认是否使用外部高速晶振(HSE)作为PLL输入源,并确保PLL倍频和分频配置正确。

使用特权

评论回复
12
夜阑风雨| | 2025-5-13 15:02 | 只看该作者
外设时钟使能,确认USART1DMA的时钟已正确使能(通过RCC_APB2PeriphClockCmd函数)。

使用特权

评论回复
13
淡漠安然| | 2025-5-13 16:32 | 只看该作者
使用STM32CubeMX工具生成时钟配置代码,确保时钟树配置正确。在初始化代码中添加时钟配置验证逻辑,确保时钟稳定后再启动串口通信。

使用特权

评论回复
14
江河千里| | 2025-5-13 17:00 | 只看该作者
直接调用USART_SendData函数连续发送数据时,若未等待发送完成标志位,可能导致缓冲区溢出或数据覆盖

使用特权

评论回复
15
冰春彩落下| | 2025-5-13 19:00 | 只看该作者
在每次调用USART_SendData后,通过USART_GetFlagStatus检查USART_FLAG_TC(发送完成标志位),确保数据已发送完毕再发送下一字节。

使用特权

评论回复
16
远山寻你| | 2025-5-13 19:52 | 只看该作者
通过DMA将数据从内存搬运到串口发送寄存器,减少CPU干预,提高传输效率。需确保DMA配置正确,包括源地址、目标地址、传输长度等,并启用DMA中断以处理传输完成事件。

使用特权

评论回复
17
别乱了阵脚| | 2025-5-13 21:00 | 只看该作者
连续发送时,若发送缓冲区未清空,新数据会覆盖旧数据,导致丢帧

使用特权

评论回复
18
光辉梦境| | 2025-5-13 22:00 | 只看该作者
时钟频率与波特率匹配,检查系统时钟频率与波特率设置是否匹配,避免因波特率计算错误导致通信异常。

646326822dddbeb408.png (599 Bytes )

646326822dddbeb408.png

使用特权

评论回复
19
三生万物| | 2025-5-13 23:00 | 只看该作者
若使用中断方式接收数据,需确保中断处理函数高效且优先级合理,避免因中断处理延迟导致数据丢失。

使用特权

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

本版积分规则

138

主题

2411

帖子

0

粉丝