打印
[STM32F1]

stm32f103c8串口总有其他干扰数据

[复制链接]
244|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WHALEE|  楼主 | 2025-3-22 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32f103c8串口总有其他干扰数据,不是发出的数据。
在用其他片子时也有同样问题。在串口接收程序中需要做数据剔除操作。
不知道这些无法预料到数据时从那里莱的

使用特权

评论回复
沙发
Wordsworth| | 2025-3-26 08:18 | 只看该作者
旁边有 WiFi、蓝牙或者开关电源之类的干扰源吗?串口线尽量远离这些高频设备。

使用特权

评论回复
板凳
Bblythe| | 2025-3-26 08:20 | 只看该作者
串口线是不是太长了?如果距离远,建议用屏蔽线,或者改用差分通信(如 RS485)。

使用特权

评论回复
地板
Pulitzer| | 2025-3-26 08:20 | 只看该作者
试试给串口数据包加个 帧头 + 校验位,如果干扰数据不是协议内的数据,就可以直接丢弃。

使用特权

评论回复
5
Uriah| | 2025-3-26 08:21 | 只看该作者
STM32F1 串口自带噪声滤波功能,看看 USART_CR1 里是否开启了 USART_CR1_OVER8(8倍过采样)。

使用特权

评论回复
6
Clyde011| | 2025-3-26 08:22 | 只看该作者
如果问题持续存在,可以用逻辑分析仪或示波器抓波形,看看这些干扰数据的来源。

使用特权

评论回复
7
公羊子丹| | 2025-3-26 08:23 | 只看该作者
这个问题可能是串口浮空导致的,试试在空闲时给 RX 引脚加上上拉电阻(10K 左右)。

使用特权

评论回复
8
周半梅| | 2025-3-26 08:24 | 只看该作者
你用的是 TTL 串口还是 RS232/RS485?如果是 TTL,看看是否有其他设备影响信号质量。

使用特权

评论回复
9
帛灿灿| | 2025-3-26 08:25 | 只看该作者
波特率设置和实际设备匹配吗?如果时钟源有偏差,可能会导致接收错误数据。

使用特权

评论回复
10
童雨竹| | 2025-3-26 08:26 | 只看该作者
试试加个硬件滤波,比如在 RX 线上加一个小电容(如 100pF)看看有没有改善。

使用特权

评论回复
11
万图| | 2025-3-26 08:26 | 只看该作者
你是用 USART_IT_RXNE 中断方式接收,还是 DMA?DMA 有时可能会读取到不完整的数据。

使用特权

评论回复
12
peterLaw| | 2025-3-26 17:24 | 只看该作者
旁边是不是又大功率器件导致的

使用特权

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

本版积分规则

7

主题

7

帖子

0

粉丝