STM32F4_跑马灯实验

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

目录

1.硬件分析

2.软件分析

2.1 GPIO重要函数

2.1.1 1个初始化函数:

2.1.2 2个读取输入电平函数:

2.1.3 4个设置输出电平函数:

2.1.4 2个读取输出电平函数:

2.2 跑马灯_库函数

2.2.1 书写步骤

2.2.2 实验代码


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引脚要么输出高电平,要么输出低电平

当输出高电平时,电流如下图箭头流出去,我们称之为,简单来说就是把电流推出去。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值