目录
1.硬件分析

如图为STM32F407ZG有关LED的原理图;在此需要特别注意,不同板子对应的引脚不同;STM32F4xx系列LED0对应到MCU_PF9引脚,LED1对应MCU_PF10引脚;
LED模块的原理图通过VCC3.3V进行供电,模块最下边的LED_PWR左侧接地,右侧接上510R的上拉电阻(LED_PWR右侧直接呈现高电平),此时LED_PWR天生具有电势差,即VCC3.3V一旦供电,PWR就会亮,所以LED_PWR作为电源灯,STM32F4xx板子一旦供电,LED_PWR就会亮;
LED0 和 LED1 左侧接MCU微控制器的PF9 和 PF10 引脚,右侧接上拉电阻呈现高电平,所以只要给到LED0 和 LED1 低电平,LED0 和 LED1就会亮;反之,就不会亮;
2.软件分析
GPIO使用输出模式为推挽输出;原因在于推挽输出可以控制输出高低电平;
跑马灯实验的库函数操作IO口必须引入源文件和头文件:源文件---stm32f4xx_gpio.c;头文件---stm32f4xx_gpio.h;
控制LED必须引用stm32f4xx_rcc.c(时钟使能,任何程序的运行都需要)、misc.c、stm32f4xx_usart.c(串口);
补充(该部分参考他人博客总结如下):
什么是推挽输出?什么又是开漏输出?
首先先来了解一下32单片机GPIO口的三种输出状态:输出高电平、输出低电平、呈现高阻态。
上图是STM32的GPIO口的内部逻辑电路图,通过上图可以知道:GPIO口的输出状态完全取决于Q1和Q2两个MOS管的导通状态;
Q1导通,Q2关断,此时上半部分逻辑电路导通,输出接VCC,GPIO输出高电平;
Q1关断,Q2导通,此时下半部分逻辑电路导通,输出接地,GPIO输出低电平;
Q1关断,Q2关断,此时输出处于浮空状态,相对于其他点电阻无穷大,GPIO口呈现高阻态;
Q1导通,Q2导通,VCC直接对地短路,这样会烧坏MOS管,单片机不允许这种情况出现;
综上所述:GPIO配置输出时,只会呈现三种状态:高电平、低电平、高阻态;
推挽输出:
我们将GPIO输出高电平和输出低电平两种状态拿出来单独分析(这也是我们最初对引脚的认识,GPIO引脚要么输出高电平,要么输出低电平)
当输出高电平时,电流如下图箭头流出去,我们称之为推,简单来说就是把电流推出去。

文章详细介绍了STM32F407ZG微控制器中LED硬件连接和GPIO的软件配置,包括推挽输出与开漏输出的区别。在硬件分析部分,阐述了LED模块的电路设计,解释了如何通过GPIO控制LED的亮灭。在软件分析中,提到了GPIO的重要函数,如初始化、读取输入/输出电平和设置电平的函数,并给出了跑马灯实验的步骤和代码示例。

最低0.47元/天 解锁文章
1759





