我在使用STM32F103C8T6的时候发现PB3这个引脚没办法配置成普通的IO输出,然后查看数据手册后发现他的默认模式是JTDO,用来给仿真器用的
所以在配置IO的时候,需要调用下面的语句来实现配置成普通IO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能PORTA,PORTE时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOB, &GPIO_InitStructure);
调用上面两行加粗代码 GPIO_PinRemapConfig的GPIO_Remap参数可以参考手册这个位置设置,一般如果只使用PB3和PB4的话 设置成GPIO_Remap_SWJ_JTAGDisable就可以了,也就是下面的010选项