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


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

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

    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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

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

  • 相关阅读:
    【分隔结构】动宾分离
    Docker总结
    scratch绘制正方形 电子学会图形化编程scratch等级考试二级真题和答案解析2022年6月
    python LeetCode 刷题记录 26
    Linux--VMware的安装和Centos
    一文看够,植物线粒体基因组分析套路
    SpringBoot中使用注解方式拦截恶意访问的IP
    利用indexDB带你手把手构建一个前端数据库体系
    10.1- 10.3读书笔记
    机器人C++库(7)Robotics Library 之防碰撞模块 rl::sg
  • 原文地址:https://blog.csdn.net/mzldxf/article/details/136276791