stm32单片机使第一个小灯亮程序代码
时间: 2024-09-13 07:15:53 浏览: 22
在STM32单片机上使用GPIO控制LED的第一步通常是初始化GPIO并设置它为输出模式。下面是一个简单的示例,假设我们使用的是STM32F103系列,LED连接到PA0引脚:
```c
#include "stm32f1xx_hal.h"
// LED灯的GPIO配置
#define LED_PIN GPIO_PIN_0
#define LED_GPIO_PORT GPIOA
#define LED_GPIO_CLK RCC_AHB1ENR_GPIOAEN
int main(void)
{
// 初始化NVIC (系统复位后的第一件事情通常要做)
HAL_Init();
// 配置时钟树
__HAL_RCC_GPIOA_CLK_ENABLE(); // 启动GPIOA时钟
// 初始化GPIO
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = LED_PIN; // 设置要操作的GPIO引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 输出推挽模式
GPIO_InitStruct.Pull = GPIO_NOPULL; // 没有上拉下拉电阻
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; // 高速
HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); // 初始化GPIOA
while(1) // 无限循环,让LED持续发光
{
// 将LED GPIO设为高电平,点亮LED
HAL_GPIO_WritePin(LED_GPIO_PORT, LED_PIN, GPIO_PIN_SET);
// 稍微延时,比如1毫秒,然后将GPIO设为低电平,熄灭LED
HAL_Delay(1);
HAL_GPIO_WritePin(LED_GPIO_PORT, LED_PIN, GPIO_PIN_RESET);
}
return 0;
}