STM32F103ZET6开发板PB3/4,PA13/14/15等I/O口的特殊配置

【写在前面】

 最近项目上有用STM32F103ZET6开发板在做产品开发,前期测试时PB3/4,PA13/14/15因为作为JTAG/SWD仿真器的调试接口,所以不能像其他正常I/O口一样下置零。

【原因】

通过芯片开发电路的原理图设计我们能够看到PB3/4,PA13/14/15 等 5个普通I/O口都用作SWJ-DP接口引脚。这些引脚在所有的封装里都存在。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过芯片手册中我们能够清楚的看到整个F10XXXXX系列的芯片,在电路设计和初始化设计时默认复位之后PB3/4,PA13/14/15五个引脚全部都初始化为可被调试器使用的专用引脚
在这里插入图片描述

【解决方案】

在这里插入图片描述
要想正常的使用这些端口的功能我们只需要直接释放PB3/4,PA13/14/15五个引脚的调试器初始化设置功能就好。
查看手册中PB3/4,PA13/14/15五个引脚的定义功能。
在这里插入图片描述
以PA15为例,通过端口重映射功能实现PA15功能的恢复

//一.在时钟配置中打开复用时钟
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
 
//二.对PA13引脚进行重映射:        
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 

由上图可知,重映射的方式一共有三种。分别描述如下:

  • 1.GPIO_Remap_SWJ_JTAGDisable
    即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试
  • 2.GPIO_Remap_SWJ_Disable
    5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试
  • 3.GPIO_Remap_SWJ_NoJTRST:
    PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。

猜你喜欢

转载自blog.csdn.net/weixin_44322778/article/details/106068046