STM32 HAL库 点灯

STM32 HAL库 点灯_第1张图片
我使用的是Clion+Cubemx进行开发,Cion写代码丝滑般的感觉真的太舒服了。

一 新建工程

使能串行线,使单片机能够通过仿真器下载程序。
STM32 HAL库 点灯_第2张图片
我这里LED灯使PA8,选择PA8引脚,选择为GPIO_Output(输出模式)
STM32 HAL库 点灯_第3张图片

用户标签:用户可以自定义一个标签 ,然后系统会帮你宏定义。
比如我在 User Label : LED
那么代码里就会出现相应的宏定义。便于我们使用
在这里插入图片描述

STM32 HAL库 点灯_第4张图片
时钟先不用配置,只是一个简单的点灯
然后是工程配置,注意以下两点
STM32 HAL库 点灯_第5张图片
STM32 HAL库 点灯_第6张图片
到此工程生成完毕,就可以进入代码的编写了

二 代码编写

只需要在while(1)里添加一个函数
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
第一个参数:引脚块 ; GPIOA,GPIOB,GPIOC等等;我们用的是PA8,所有填 GPIOA
第二个参数:引脚编号; 我们用的是PA8,所有填 GPIO_PIN_8。
第三个参数:引脚状态;只有两种,我们要点亮,所有输入低电平 RESET

RESET   代表低电平
SET   代表高电平
  while (1)
  {
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,RESET);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

#要实现灯的闪烁 还有一个函数:
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
参数只比上面函数少了引脚状态,由于系统运行太快,想看到闪烁,要加上延时函数
void HAL_Delay(uint32_t Delay)
此函数为毫秒级延时。

  while (1)
  {

    HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);
    HAL_Delay(500);     //延时500ms
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }   

补充一点

像 void HAL_Delay(uint32_t Delay)中的uint32_t 代表的是 无符号32位整形 即unsigned int
同理 uint16_t 代表的是 无符号16位整形即unsigned short
uint8_t代表的是 无符号8位整形即unsigned char

你可能感兴趣的:(单片机,stm32)