这里分享我们在STM32应用中可能遇到的两个小话题,尤其对于STM32应用新手。
话题一、STM32管脚重映射支持任意组合吗?
有人使用STM32F4芯片做开发,用到USART1外设。发现有4个GPIO管脚可以支持USART1复用,即PA9,PA10,PB6,PB7。

他在21论坛发帖咨询在保持TX或RX功能不变的前提下,这4个管脚是否基于TX/RX功能自由组合呢?即是否支持下图中箭头所指的4种组合来使用。

在我的印象中,STM32系列中只有最早推出的STM32F1系列的管脚复用功能稍微弱点外,其它系列在外设功能端口与GPIO复用方面表现得更为灵活。比方以USART1的复用管脚为例,STM32F1系列是以组为单位,仅支持PA9/PA10或PB6/PB7两种组合。而后推出的其它STM32系列,仍以USART1为例,都支持上面的4种组合。
换言之,后面推出的STM32系列管脚复用功能往往是以单个管脚进行配置,不再以组为单位进行配置锁定,为开发者自由安排管脚提供方便。具体到开篇话题本身,STM32F4系列芯片的USART1是完全支持上面列举的4种组合的。该发帖者后来进一步补充说,经过多个小时的验证发现也的确支持上面的4种使用组合。
其实,关于这个问题,完全不必要花几个小时来确认。
我们使用CubeMx进行配置时即可快速验证。比如当我们选择开启USART1后,CubeMx会先给我们安排两个可用USART1通信管脚。此时我们可以按住键盘上的CTRL键并保持住,然后鼠标左键点击当前安排的USART功能脚,并做拽拉动作,其它跟当前被拽拉脚具有相同功能的管脚就会闪动起来。然后我们就可以尝试去做替换,将当前功能脚替换为新的管脚。
通过这种方法,我们不难找出所有可能使用的组合。以STM32F4系列的USART1的复用管脚为例,基于CubeMx配置就可以直观地看到4种可使用的组合。见下面几幅图。




话题二、STM32F407 读保护从leve0设置leve1程序不再运行疑似丢失。
有人在程序调试阶段,通过用户代码修改选项字节开启读保护功能。发现实施此操作后,不仅程序停摆不运行了,STLINK也连不上开发板,感觉代码被擦除一般。
其实,这是个比较常见的话题。当我们通过用户代码开启读保护功能后,芯片开启保护机制。肯定会断开调试器不让我们继续代码的调试。试想下,如果都开启读保护了还能做程序调试,那还保护啥呢?此时发生上面提到的现象属正常。
开启了读保护不让调试了,可以理解。但我们欲用STLINK连接开发板抹掉读保护总可以吧。可以!
不过,你必须对开发板做断电再上电的操作。注意,若只是按复位键还不行。再用SLTINK连接,然后通过诸如STM32CubeProgrammer之类的工具修改读保护设置。
关于这点,在STM32手册里有相应的描述,我截图几份过来参阅,分别是STM32F0、STM32F4和STM32L4系列的,描述上不尽相同,但都有表达相同的意思。

OK,今天的分享就到这里。下次再聊!
关键字:STM32
引用地址:
请问一下STM32管脚重映射支持任意组合吗?
推荐阅读最新更新时间:2026-03-21 11:24
基于STM32的矿井作业环境监测系统设计与实现
针对煤矿开采中瓦斯爆炸等严重安全隐患,设计了一套矿井安全系统。该系统实时监测瓦斯浓度、温度、火情、粉尘等环境参数,自动控制除尘、灭火、通风等设备,以保障矿井安全。通过WiFi将数据传输至监控平台,并支持APP远程监控与操作,从而提升应急响应速度和管理效率。 PART 01 系统总体结构 系统实现了对矿井内甲烷气体体积分数、粉尘浓度、火焰及温湿度等关键参数的实时采集与分析;并通过预设的自动控制策略触发联动设备,实现安全隐患的快速响应与主动防控。同时,支持数据远程传输至云端平台,并通过机智云APP提供实时监控、报警及远程操控功能,为矿井安全管理提供高效、可靠的技术支撑。系统总体结构如图1所示。 PART 02 系统详细设计
[单片机]
STM32学了两年半,却还是不会做项目
可能你已经学习了很久,但是当Leader抛给你一个STM32项目,你是不是依然手足无措? 有一朋友刚开始学习的51单片机,后来转STM32了。 主要是跟着网上的在线课程学习,自己下边跟着敲代码。 过程中学过各种培训机构出的视频课程,接触过操作系统,开发板上的例程都可以做出来。 后来他又学习了PCB绘制,由于在学校的时候没学到多少东西,而且不是电子类专业,陷入了迷茫,不知道该怎么学了。 记得在上大学的时候,专业课老师曾反复叮嘱我们“ 老师领进门,修行看个人 ”。 这话之后还没完,经常告诫我们要深入学习51单片机。 当时没有完全理解他的意思,直到工作若干年之后才知道。 在嵌入式领域,技术上有所精进,底层的东西
[嵌入式]
【07】STM32备忘_RTC硬件电路设计
正点原子的 STM32F103官方文档
[单片机]
STM32 USART学习
USART(同步异步串口通信) 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信 STM32 中的USART框图 框图 1、引脚编号 TX:发送数据输出 RX:接收数据串行输入 SCLK(位于最右边):发送器时钟输出,仅同步通信时使
[单片机]
野火STM32学习笔记(构建库函数模型第五节课)
解释初始化函数是怎么运作的 第四节课我们已经了解了如何通过固件库编程的方式初始化一个GPIO口,配置其速度,工作模式等等,这一切都有一个“幕后黑手”就是那一个一百多行的GPIO_Init()函数。我们再来一睹一下芳容: 第一部分 我们从第一行开始看: 大括号内第一二行都是存放这些变量的初始值,可以不用太在意。再看下面模式配置那边,第一行注释是把模式的低四位存入变量currentmode,这样做的目的是取出这些值(与0x0F相与取值),再判断它的bit4位是几(如下图),是0则是输入,是1则是输出,判断方式也很简单,即赋值给currentmode的值和0x10(二进制00010000)与运算,看看是不是0就知
[单片机]
STM32:GPIO使用总结
1、GPIO一图概述: (1)各种接口的措施 1.1 对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。 1.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。 1.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。 1.4 GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。 1.5 在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。 1.6 所有端口都有外部
[单片机]
什么是stm32单片机
stm32f103c8t6单片机是高校学生使用的最频繁的单片机了,被广泛的应用在课程设计,电子设计大赛,毕业设计中。其拥有非常优异的性能,同时价格低廉,参考资料多,是广大学生非ban必选的mcu。 单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已 。 或许大家有经常听起过最小系统板这个词儿,那么什么是最小系统板呢?其实最小系
[单片机]
【嵌入式】简评STM32单片机入门之路
【STM32可以做什么?】 STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域。 【用寄存器还是库函数?】 STM32有两种编程方式,一种是用寄存器的方式,另一种是库函数的方式。对于初学者而言,可能后者较容易上手。 学从难处学,用从易处用。学习阶段,能学多深就尽量学多深,这样基础会打得比较牢。不只是为了学STM32而学STM32,我们的目标是:学完STM32,换另一款芯片也能很快上手。基础有多牢固,换另一款芯片上手就有多快。 【学习重点】 一些基本的、通用的、常用的外设:GPIO输入输出(点灯、按键)、EXIT、TIMER、UART、I2C、SPI、ADC、DAC等,这些用得多,先把这些
[单片机]