欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于STM32F103系列PA13,PA14,PA15,PB3,PB4初始化无效的问题

程序员文章站 2024-02-23 20:28:04
...

最近在调试STM32F103C8的最小系统板,发现PA15,PB3,PB4无论如何初始化都无效.

然后经过一轮查询发现PA13,PA14,PA15,PB3,PB4是被复用功能重映射为调试下载器所用的引脚的,而我这边因为用的是ST-LINK,只使用了其中的PA13,PA14作为调试引脚,剩余三个引脚给的原理图没有说明,但是因为STM32上电默认是JTAG模式,所以如果需要使用的话需要对复用功能进行设置.

具体设置在中文参考手册8.3.5 JTAG/SWD复用功能重映射章节

关于STM32F103系列PA13,PA14,PA15,PB3,PB4初始化无效的问题

对应的标准库开启代码如下:

// 时钟初始 使用复用重映射功能需要开启对应时钟 否者无效
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        
// 标准库自带重映射设置函数
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);函数中 GPIO_Remap_SWJ_JTAGDisable 参数为选组

GPIO_Remap_SWJ_NoJTRST 为上图中的001组

GPIO_Remap_SWJ_JTAGDisable 为上图中的010组  该模式下ST-LINK仍然能够正常调试 多3个管脚可供正常使用

GPIO_Remap_SWJ_Disable 为上图中的100组 该模式下无法进行任何调试

000组为默认组 没有设置参数 如果需要选择的话用标准库只能使用反初始函数 GPIO_AFIODeInit 但是其他复用配置也会丢失

 

设置完上述参数后,可用的I/O引脚正常设置即可,例如要设置为推挽输出,设置为GPIO_Mode_Out_PP即可,无需设置为GPIO_Mode_AF_PP.