# STM32系列-串口-uart-引脚上拉-原因问题的搜寻

  • 前言-(知道一个结论正确,也要知道它为什么正确)
  • 问题描述
  • 查找过程
    • (1)上网查资料
    • (2)请教大佬
    • (3)查代码-找手册-验证
  • 一些参考资料链接
  • 现有结论汇总叙述

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

最近,在调试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


(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绘图时留下两个封装,到时候不焊接即可。

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

  1. STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)

    目录 1.参考链接: 2.虚拟串口硬件说明 2.1.程序中无需配置硬件的设计:D+直接接了3.3V的上拉电阻. 2.2.需要程序中配置D+上拉电阻使能的设计:可以软件模拟USB插拔,便于固件更新后自动 ...

  2. STM32 USART串口发送软件调试

    直接上代码了了 都有注释 ;

  3. STM32——USART串口

    文章目录 一.通信接口 二.串口通信 三.硬件电路 四.电平标准 五.串口参数及时序 六.STM32的USART外设简介 七.USART框图 八.USART基本结构 九.数据帧 十.起始位侦测和采样位 ...

  4. STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)

    前言 不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD.TXD.VCC(5V).GND. HC-05的使用 1.HC-05有6个引脚,但是我们只用到4个. 2. ...

  5. STM32的串口通信UART/TTL

    常用的串口pin STM32的串口是基础通信方式, 每个型号都带多组串口, 一般都使用默认的组, 可以参考芯片的datasheet, 去看pinout and pin definitions, stm ...

  6. 树莓派上编写串口助手软件

    1. 导读 本文介绍了使用python ,PyQt在树莓派的linux系统上编写一个串口软件的助手,重点介绍相关软件包的安装,串口助手软件的如何编译生成可执行文件. 2.安装相关软件 读到这里,你应该 ...

  7. javarxtx串口接收时数据会分成好几段_【STM32】串口通信基本原理(超基础、详细版)...

    STM32F1xx官方资料: <STM32中文参考手册V10>-第25章通用同步异步收发器(USART) 通信接口背景知识 设备之间通信的方式 一般情况下,设备之间的通信方式可以分成并行通 ...

  8. stm32 ISP串口下载

    1 ISP概念         ISP(In-System Programming) 在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用 ...

  9. Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

最新文章

  1. 工业富联2018年报来了!上市后首张成绩单大起底
  2. 将数据库改为使用登录名密码登陆
  3. sdut 2134 数据结构实验之栈与队列四:括号匹配
  4. 【收藏】linux下用命令方式创建及管理kvm虚拟机
  5. boost::is_convertible相关的测试程序
  6. matlab删失数据威布尔,基于混合I型删失数据威布尔模型的可接受抽样计划
  7. 在家办公这些天整理的Kafka知识点大全
  8. android 系统ui修改器,分享两个效果 - Android 系统 UI 管理
  9. 根据浏览器navigator区分PC端还是移动端,区分操作系统,区分浏览器型号
  10. 接口文档要写在概要设计里吗_写代码的五个步骤,你会几个?
  11. tomcat7 1000并发量配置 tomcat7配置优化
  12. C++---vector剖析与模拟实现
  13. WSL2之kali安装界面kex
  14. Mapxtreme使用心得
  15. 创建shap文件的属性字段类型区别_shapefile数据文件组成
  16. 软考中级软件设计师易错点整理
  17. 数字孪生的思考 05 - VAM/XR
  18. EndNote X9 闪退解决办法(最简版)
  19. 加密市场熊市最后的曙光——Treasure Project(藏宝计划)
  20. 28 Apr 10:25:21.537 # HandleServiceCommands: system error caught. error code=1072, message = Create

热门文章

  1. VLOOKUP函数的使用方法(初级篇)
  2. DNS机制(实现域名和IP地址的转化)
  3. AutoCAD/Civil 3D 学习笔记
  4. linux从当前目录打开fx,文件标准I/O基本操作——FX乐曲时代_莫韵乐的Linux英雄传...
  5. SLAM综述(2)-视觉SLAM
  6. OpenCV 高通滤波、低通滤波
  7. AutoCAD2007简体中文版终极加强板(含金林钣金1.7)程鹏cplvfx_.part1,2,3
  8. 【u3d泰斗破坏神】08 --- UGUI 制作艺术字体
  9. QQ.com速度优化解决方案介绍 1
  10. 工控安全:Nmap NSE扫描脚本列表