作者:stm_小强
企鹅:759040024
说明:库文件版本:3.5.0
1.为什么要复用PB3/PB4/PA13/PA14/PA15
在mcu复位的时候这几个引脚被作为jtag的功能。当我们要使用这些引脚作为普通的I/O时必须进行引脚的功能复用。
2.PB3/PB4/PA13/PA14/PA15引脚默认功能参照
PB3-----------------JTDO
PB4-----------------JNTRST
PA13-----------------JTMS
PA14-----------------JTCK
PA15-----------------JTDI
3.重映射的方法:
通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)的SWJ_CFG[2:0]位,参见下表。
相关的宏分别为:
GPIO_Remap_SWJ_NoJTRST //恢复引脚的默认功能
GPIO_Remap_SWJ_JTAGDisable //一般使用这个将PB3/4 与PA15设为普通I/O
GPIO_Remap_SWJ_Disable // 使用这个之后将无法烧写程序,解决办法参考下一篇文章。
4.代码
void GPIO_INIT(){
// 使能复用的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
//释放PA15。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
/* COIN1(PA15)--为通用推挽输出*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}