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);
}

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

相关推荐
偶像你挑的噻7 小时前
15-Linux驱动开发-PWM子系统
linux·驱动开发·stm32·嵌入式硬件
Java小白,一起学习10 小时前
STM32新建工程(标准库官网下载)
stm32·单片机·嵌入式硬件
小尧嵌入式12 小时前
C++基础语法总结
开发语言·c++·stm32·单片机·嵌入式硬件·算法
2401_8534482313 小时前
STM32F103C8T6---OLED显示屏
stm32·单片机·oled
沐欣工作室_lvyiyi13 小时前
基于单片机的居家智能音箱系统(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·智能音箱
Meraki.Zhang18 小时前
【STM32实践篇】:STM32CubeMX 的使用
stm32·单片机·嵌入式软件
番茄灭世神18 小时前
OTA远程升级STM32固件
stm32
古译汉书20 小时前
嵌入式笔记(个人总结)
数据结构·笔记·stm32·单片机·嵌入式硬件
bai54593621 小时前
STM32 定时器(Timer)
stm32·单片机·嵌入式硬件
沐欣工作室_lvyiyi1 天前
基于STM32的宠物自动喂食器(论文+源码)
stm32·嵌入式硬件·毕业设计·宠物