angalp 发表于 2025-3-12 09:49:48

IO口设置成推挽模式,串口无法接收数据

为了省事,把所有IO口设置成推挽模式,串口接收异常。
AI8H1K17IO口设置成推挽模式,串口无法接收数据,但是能正常发送。
其他MCU没试过。
为啥设置成推挽模式就不能正常接收数据?来个大佬分析分析!

神农鼎 发表于 2025-3-12 13:19:16

输入:








输出:





国芯人工智能 发表于 2025-3-12 09:53:00

在MCU中,IO口的工作模式对串口通信有直接影响。推挽模式下,IO口输出能力强,适用于驱动高电平或低电平,但不适合接收外部信号。串口接收数据时,需要IO口处于高阻态或开漏模式,以便正确读取外部设备发送的高低电平信号。<br><br>当IO口设置为推挽模式时,输出驱动电路会强制将引脚拉高或拉低,导致无法准确检测外部信号变化,从而造成接收异常。而串口发送数据时,推挽模式可以提供足够的驱动能力,确保信号稳定传输。<br><br>建议将串口接收引脚设置为输入模式或开漏模式,以便正确接收数据。具体设置方法可参考MCU的数据手册,针对不同的MCU可能需要不同的配置。<br><br>总结:推挽模式不适合串口接收,因为其输出驱动会干扰外部信号的检测。正确配置IO口模式是确保串口通信正常的关键。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]

DebugLab 发表于 2025-3-12 09:54:30

IO电平相同(都是3.3V或5V):
接收设置高阻并打开4K上拉(如不开4K上拉,断开连接,IO悬空时,可能会收到乱码)
发送设置推挽

IO电平不同:
3.3V接收 高阻
3.3V发送 推挽
5V接收 高阻
5V发送 推挽并用电阻分压到3.3V


angalp 发表于 2025-3-12 11:08:27

DebugLab 发表于 2025-3-12 09:54
IO电平相同(都是3.3V或5V):
接收设置高阻并打开4K上拉(如不开4K上拉,断开连接,IO悬空时,可能会收到 ...

我是设置成准双向口了,晚点试试你的方法。

angalp 发表于 2025-3-12 11:14:22

国芯人工智能 发表于 2025-3-12 09:53
在MCU中,IO口的工作模式对串口通信有直接影响。推挽模式下,IO口输出能力强,适用于驱动高电平或低电平, ...

感谢你的讲解,主要是手册上也没标注串口不能使用推挽模式,这次的意外又学到新知识了。

jwd 发表于 2025-3-12 13:28:12

推挽不应该是输出吗?怎么接收
页: [1]
查看完整版本: IO口设置成推挽模式,串口无法接收数据