股票

stm32中PB3、PB4作GPIO使用时的配置

今天使用IO口的时候,PB3PB4、PB5、PB6做输出,但是发现PB5、PB6正常,PB3PB4不受控制,PB3一直低电平,PB4一直高电平,网上查了下,这里默认是JTAG控制端口,如果要当做GPIO使用,需要重映射。即禁止JTAG使用:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

还需要注意的是,由于下载程序要么JTAG要么SWD,所以SWD下载方式需要打开:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

这句不能使用。并且在重映射之前需要开启时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

全部初始化指令如下:

  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  2. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
  3. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
  4. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  5. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  6. GPIO_Init(GPIOB, &GPIO_InitStructure);
打赏
原文链接:,转发请注明来源!

发表评论