STM32HAL库学习之路(一):闪烁灯

目录

一、GPIO的工作模式:

二、HAL库中操作GPIO的主要函数

 三、点灯示例代码

四、STM32F407VE中所用到的引脚以及STM32CubeMX的配置

在stm32f407ve原理图中默认的led指示灯为PA6和PA7

找到PA6和PA7,进行以下配置,时钟源默认为外部时钟80mhz即可

默认选定的时钟源(72或80MHZ均可)


面向小白

LED的闪烁:

需要掌握的知识点

一、GPIO的工作模式:

#define  GPIO_MODE_INPUT                        MODE_INPUT                                                  /*!< Input Floating Mode                   */
#define  GPIO_MODE_OUTPUT_PP                    (MODE_OUTPUT | OUTPUT_PP)                                   /*!< Output Push Pull Mode                 */
#define  GPIO_MODE_OUTPUT_OD                    (MODE_OUTPUT | OUTPUT_OD)                                   /*!< Output Open Drain Mode                */
#define  GPIO_MODE_AF_PP                        (MODE_AF | OUTPUT_PP)                                       /*!< Alternate Function Push Pull Mode     */
#define  GPIO_MODE_AF_OD                        (MODE_AF | OUTPUT_OD)                                       /*!< Alternate Function Open Drain Mode    */

#define  GPIO_MODE_ANALOG                       MODE_ANALOG                                                 /*!< Analog Mode  */
    
#define  GPIO_MODE_IT_RISING                    (MODE_INPUT | EXTI_IT | TRIGGER_RISING)                     /*!< External Interrupt Mode with Rising edge trigger detection          */
#define  GPIO_MODE_IT_FALLING                   (MODE_INPUT | EXTI_IT | TRIGGER_FALLING)                    /*!< External Interrupt Mode with Falling edge trigger detection         */
#define  GPIO_MODE_IT_RISING_FALLING            (MODE_INPUT | EXTI_IT | TRIGGER_RISING | TRIGGER_FALLING)   /*!< External Interrupt Mode with Rising/Falling edge trigger detection  */
 
#define  GPIO_MODE_EVT_RISING                   (MODE_INPUT | EXTI_EVT | TRIGGER_RISING)                     /*!< External Event Mode with Rising edge trigger detection             */
#define  GPIO_MODE_EVT_FALLING                  (MODE_INPUT | EXTI_EVT | TRIGGER_FALLING)                    /*!< External Event Mode with Falling edge trigger detection            */
#define  GPIO_MODE_EVT_RISING_FALLING           (MODE_INPUT | EXTI_EVT | TRIGGER_RISING | TRIGGER_FALLING)   /*!< External Event Mode with Rising/Falling edge trigger detection     */

二、HAL库中操作GPIO的主要函数

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
//设置GPIO的高低电平(默认低电平及低电平点亮)
//其中GPIO_PinState的所对应的分别是GPIO_PIN_SET(亮)和GPIO_PIN_RESET(灭)
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//反转GPIO的高低电平
void HAL_Delay(uint32_t Delay)
//delay函数
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
//锁定引脚状态

 三、点灯示例代码

在while循环内加入以下代码即可

HAL_GPIO_TogglePin(GPIOA, LED1_Pin);//led亮灭翻转
HAL_Delay(1000);//延迟1000毫秒即一秒

HAL_GPIO_WritePin(GPIOA,LED1_Pin, GPIO_PIN_SET);//设置led亮
HAL_Delay(500);//延迟半秒
HAL_GPIO_WritePin(GPIOA,LED1_Pin, GPIO_PIN_RESET);//设置led灭
HAL_Delay(500);//延迟半秒

效果相同,实现了led闪烁效果

四、STM32F407VE中所用到的引脚以及STM32CubeMX的配置

   官方开源的原理图找到led所对应引脚

在stm32f407ve原理图中默认的led指示灯为PA6和PA7

                              STM32cubx的芯片引脚配置图

找到PA6和PA7,进行以下配置,时钟源默认为外部时钟80mhz即可

  cubx中对LED所对应引脚的定义

 

默认选定的时钟源(72或80MHZ均可)

 输入后右键会自动设置

配置RCC

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

靳小锅er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值