STM32使用PB3, PB4引脚的注意事项

STM32的PB3, PB4引脚作为GPIO引脚需要注意,因为他们默认分别是JTDO和NJTRST引脚。

笔者在设计可调增益增益放大器(VGA)的时候,使用4个GPIO读取外部控制电压,根据约定的编码格式设定DAC的输出电压,从而设置VGA的增益,然而在测试发现,DAC的输出电压不稳定,并不是设想的数值。经过多次实验、代码分析,发现并不是DAC的问题,而是GPIO的问题,4个GPIO中使用了PB3,而PB3默认不是GPIO而是JTDO引脚,因此需要特殊的声明,代码如下:

c 复制代码
void OUTSIDE_VGACTRL_GPIO_Config(void)
{
  //满洲里国峰电子科技
  //www.guofengdianzi.com
  //微信:guofengdianzi

  GPIO_InitTypeDef GPIO_InitStructure;
  
  /*开启端口的时钟*/
  RCC_APB2PeriphClockCmd(OUTSIDE_VGACTRL1_GPIO_CLK | OUTSIDE_VGACTRL2_GPIO_CLK | OUTSIDE_VGACTRL3_GPIO_CLK | OUTSIDE_VGACTRL4_GPIO_CLK, ENABLE);
  
  //将
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  
  //选择引脚
  GPIO_InitStructure.GPIO_Pin = OUTSIDE_VGACTRL1_GPIO_PIN; 
  // 设置引脚为下拉
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 
  //使用结构体初始化
  GPIO_Init(OUTSIDE_VGACTRL1_GPIO_PORT, &GPIO_InitStructure);
  
  //选择引脚
  GPIO_InitStructure.GPIO_Pin = OUTSIDE_VGACTRL2_GPIO_PIN; 
  // 设置引脚为下拉
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 
  //使用结构体初始化
  GPIO_Init(OUTSIDE_VGACTRL2_GPIO_PORT, &GPIO_InitStructure);
  
  //选择引脚
  GPIO_InitStructure.GPIO_Pin = OUTSIDE_VGACTRL3_GPIO_PIN; 
  // 设置引脚为下拉
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 
  //使用结构体初始化按键
  GPIO_Init(OUTSIDE_VGACTRL3_GPIO_PORT, &GPIO_InitStructure);
  
  //选择引脚
  GPIO_InitStructure.GPIO_Pin = OUTSIDE_VGACTRL4_GPIO_PIN; 
  // 设置引脚为下拉
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 
  //使用结构体初始化
  GPIO_Init(OUTSIDE_VGACTRL4_GPIO_PORT, &GPIO_InitStructure);
}

作者:潇洒的电磁波(专业:射频芯片设计、雷达系统、嵌入式。欢迎大家项目合作交流。)

相关推荐
威桑42 分钟前
STM32 专有名词缩写整合
stm32·单片机·嵌入式硬件
Wangshanjie_986 小时前
【STM32】-串口通讯
stm32
许白掰7 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频
DIY机器人工房8 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
Natsume171010 小时前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例
c语言·驱动开发·stm32·嵌入式硬件·mcu·架构·github
m0_5557629011 小时前
STM32常见外设
stm32·单片机·嵌入式硬件
循环过三天11 小时前
3-1 PID算法改进(积分部分)
笔记·stm32·单片机·学习·算法·pid
东风点点吹12 小时前
STM32F103的boot跳转APP不成功问题排除
stm32·单片机·嵌入式硬件
猫猫的小茶馆15 小时前
【STM32】预分频因子(Prescaler)和重装载值(Reload Value)
c语言·stm32·单片机·嵌入式硬件·mcu·51单片机
三万棵雪松16 小时前
【STM32HAL-第1讲 基础篇-单片机简介】
stm32·单片机·嵌入式硬件