stm32使单片机亮一个灯程序代码
时间: 2024-09-14 19:11:15 浏览: 48
STM32是一款由STMicroelectronics生产的高性能微控制器系列,通常用于嵌入式系统开发。要在STM32上通过GPIO控制LED灯,首先需要设置GPIO功能为输出模式,然后配置相应的引脚为低电平有效。下面是一个简单的示例程序,假设我们使用的是STM32F103C8T6,LED连接到PA0引脚:
```c
#include "stm32f10x.h" // 包含STM32的头文件
// 定义LED引脚
#define LED_PIN GPIO_Pin_0
#define LED_PORT GPIOA
#define LED_RCC RCC_AHB1Periph_GPIOA
int main(void)
{
// 配置STM32复位和时钟
__HAL_RCC_PWR_CLK_ENABLE(); // 启动电源管理时钟
HAL_PWREx_EnableBootPWRSeq(); // 应用启动序列
// 初始化GPIO
GPIO_InitTypeDef GPIO_InitStructure;
__HAL_RCC_GPIOA_CLK_ENABLE(); // 启动GPIOA时钟
GPIO_InitStructure.Pin = LED_PIN; // 设置LED引脚
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; // 输出推挽模式
GPIO_InitStructure.Pull = GPIO_NOPULL; // 上拉下拉无用
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH; // 高速
HAL_GPIO_Init(LED_PORT, &GPIO_InitStructure); // 初始化GPIO
while (1) // 无限循环
{
// 点亮LED
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);
// 等待一段时间
delay_ms(500);
// 熄灭LED
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET);
// 再等待一段时间
delay_ms(500);
}
return 0;
}
阅读全文