# STM32系列-串口-uart-软件引脚内部上拉 或者 外部电阻上拉-原因问题的搜寻

前言-(知道一个结论正确,也要知道它为什么正确)

最近,在调试uart串口的时候,被要求,要在串口初始化的时候,将引脚设为上拉。由此想到了为什么要上拉这个问题,但上网查了资料,发现大部分都是是说RX应该上拉,但是为什么上拉,没有什么人说的清楚,于是想深入找下原因。

问题描述

预先假设问题,知道自己要问什么,缕清问题本身。如果自己脑袋里一团乱麻,莫能两可,那对于所掌握的知识也不准确。

  1. RX 是 应该软件内部上拉,还是加入外部电阻上拉?
  2. TX 是否 也需要 软件内部上拉,或者 需要外部电阻上拉?
  3. 如果加入外部上拉电阻一般是多少?

查找过程

(1)上网查资料

1、在CSDN找到几篇文章,涉及上拉电阻问题,认为描述较好的一篇放在下面了.
这一篇博主收集了很多讨论,有借鉴价值。
链接:https://blog.csdn.net/sinat_16643223/article/details/119208104
2、自己在网上也搜索了一些,也有借鉴价值,我直接将翻译好的截图放在下边了。网络限制,可能无法访问。
https://electronics.stackexchange.com/questions/270834/pull-up-resistors-on-uart
截图1
在这里插入图片描述
在这里插入图片描述

(2)请教大佬

请教了一个专业大佬,根据对大佬的话语理解,总结了以下三点,或者说是需要验证一下内容。

  1. 需要查芯片内部框图
  2. 外设上是否有上拉
  3. Tx不用管,本身有推挽。
  4. 查找样例代码,看看人家怎么做的

(3)查代码-找手册-验证

(1)查找样例代码,看看ST样例代码中是否全部上拉。
自己之前调试代码一直使用的是STM32cubeIDE,这个软件有个样例库,如果都是默认安装的话,会在如下路径下找到样例代码路径。
在这里插入图片描述

具体随便选中一个文件
在这里插入图片描述
在HAL库代码文件stm32f4xx_hal_msp.c下,有如下内容,就是说ST官方给的样例,并没有强制上拉,但是我没有对应板子,所以不清楚外设上连接方式,以及有没有上拉电阻。
在这里插入图片描述
(2)查找样例代码,看看正点原子代码是否有上拉电阻。
找到正点原子HAL库代码,在代码中看到如下内容。
在这里插入图片描述
正点原子代码内部确实上拉了,那么看看F4板子上是否有上拉电阻,原理图如下,可以看到并没有外部的上拉电阻。
在这里插入图片描述
这个外接器件CH340G也查了下手册,发现找到英文的datasheet没说,但是中文翻译过来的手册有说明,手册链接如下。
https://download.csdn.net/download/qq_22146161/80134371
其中在中文手册里有这样的一句话,可以理解这个芯片内部有上下拉电阻了。
在这里插入图片描述
(3)在查找过程中,发现需不需要加上拉,跟芯片工作模式有关系,跟芯片本身有关系。在查F4中文参考手册中发现如下“STM32F4xx中文参考手册.pdf”。
在这里插入图片描述

一些参考资料链接

(1)CSDN链接:
https://blog.csdn.net/weixin_46146288/article/details/112681794
(2)CSDN链接:
https://blog.csdn.net/weixin_49770585/article/details/115460495
(3)查找STM32系列具体型号STM32F103内部弱上下拉电阻一般为40K
https://www.pianshen.com/article/8441785505/
或者
https://blog.csdn.net/wuhuijun165/article/details/49518575

现有结论汇总叙述

按照问题以及自己查到资料汇总,总结出以下几点,以供参考,如果有了新知,请留言指正,我会及时更改。

  1. RX 是 应该软件内部上拉,还是加入外部电阻上拉?
    这个需要根据芯片实际情况,查芯片IO硬件框图确定,现在大部分芯片内部,已经自动集成了一个弱上拉电阻,一般不需要外部电阻上拉,只需要在软件配置时,配上上拉即可。
  2. TX 是否 也需要 软件内部上拉,或者 需要外部电阻上拉?
    这个也要根据芯片实际情况,一般情况下,不需要软件内部上拉 和 外部电阻上拉,在GPIO工作在推挽模式下,其实已经算是有了这个电阻。
  3. 如果加入外部上拉电阻一般是多少?
    根据现有查到资料而言,大部这个外部上拉电阻都是10K,其实如果你不确定你的芯片是否有芯片内部的弱上拉或者弱下拉,可以预先在PCB绘图时留下两个封装,到时候不焊接即可。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好奇龙猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值