蓝桥杯嵌入式 模板
时间: 2025-05-05 19:25:12 浏览: 22
### 蓝桥杯嵌入式比赛模板示例代码
对于蓝桥杯嵌入式比赛中的开发板操作,特别是LED模块的应用,可以提供一段用于控制LED灯交替闪烁的基础代码作为模板。这段代码不仅有助于初学者理解如何配置GPIO端口来驱动外部设备,还展示了定时器中断服务程序的设计思路[^1]。
```c
#include "stm32f4xx_hal.h"
// 定义使用的 GPIO 和 LED 的引脚编号
#define LED_PIN_1 GPIO_PIN_5
#define LED_PIN_2 GPIO_PIN_4
#define LED_GPIO_PORT GPIOD
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void){
HAL_Init();
SystemClock_Config(); // 配置系统时钟
MX_GPIO_Init(); // 初始化 GPIO
while (1){
HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN_1); // 切换第一个 LED 状态
HAL_Delay(500); // 延迟 500ms
HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN_2); // 切换第二个 LED 状态
HAL_Delay(500); // 延迟 500ms
}
}
/**
* @brief 此函数初始化所需的外设资源.
*/
static void MX_GPIO_Init(void){
__HAL_RCC_GPIOD_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Configure GPIO pin : PD5 and PD4 */
GPIO_InitStruct.Pin = LED_PIN_1 | LED_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 设置推挽输出模式
GPIO_InitStruct.Pull = GPIO_NOPULL; // 不使用上拉/下拉电阻
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 设定低速频率
HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
HAL_GPIO_WritePin(LED_GPIO_PORT, LED_PIN_1|LED_PIN_2 , GPIO_PIN_RESET); // 关闭两个 LED
}
```
上述代码实现了通过STM32微控制器上的GPIOD端口控制两盏LED灯按照一定时间间隔轮流点亮的效果。这只是一个简单的例子,在实际比赛中可能还需要考虑更多因素,比如电源管理、通信接口编程以及更复杂的算法实现等。
阅读全文
相关推荐

















