STM32F103C8T6的PB3、PB4做普通IO使用注意事项

在使用PB3和PB4做普通GPIO使用时,发现普通的GPIO初始化程序无法正常使用PB3和PB4,后经查阅资料,发现是因为PB3和PB4在默认情况下是做JTAG调试用的。如果需要将其当普通GPIO使用,需要关闭JTAG调试功能;

 

配置方式入下:

 1 /*************************************************
 2  函 数 名 称 : LibDriveKeyInit
 3  功 能 描 述 : 按键初始化
 4  被 调用清单 : 无
 5  调 用 清 单 : 
 6  输 入 参 数 : 无
 7  输 出 参 数 : 无
 8  返 回 参 数 : 无
 9  其            他 : 无
10 *************************************************/
11 void LibDriveKeyInit(void)
12 {
13         GPIO_InitTypeDef  GPIO_InitStruct;
14         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
15     
16         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);     
17         GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
18         GPIO_InitStruct.GPIO_Pin     = GPIO_Pin_3 | GPIO_Pin_4;    
19         GPIO_Init(GPIOB, &GPIO_InitStruct);
20     
21         GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
22         GPIO_InitStruct.GPIO_Pin     = GPIO_Pin_12 | GPIO_Pin_15;    
23         GPIO_Init(GPIOA, &GPIO_InitStruct);
24 }

 

posted @ 2022-01-16 17:40  伽椰子真可爱  阅读(1923)  评论(0编辑  收藏  举报