最近在使用凌鸥LKS系列的MCU做一些基础开发,今天就分享一个简单的LED闪烁小项目。这是很多人学习MCU的入门任务,通过这个例子可以熟悉LKS MCU的GPIO操作和基本的延时函数。 
 
一、项目简介 
这个项目的目标是通过LKS MCU控制开发板上的LED实现简单的闪烁效果。我们将设置一个GPIO引脚作为输出,并通过循环切换该引脚的电平来控制LED的亮灭。 
 
二、硬件环境 
- 凌鸥LKS系列MCU开发板
 - 开发板上的LED(或者外接LED)
 - 开发工具:Keil或IAR
 - 烧录工具:LKS Debugger
 
 
  
三、代码实现 
1. GPIO初始化 
首先需要初始化GPIO,设定相应引脚为输出模式。代码如下: 
- #include "lks_mcu.h"  // 包含LKS MCU库文件
 
  
- void GPIO_Init(void) {
 
 -     GPIO_InitTypeDef GPIO_InitStruct = {0};
 
 -     
 
 -     // 启用GPIO时钟
 
 -     __HAL_RCC_GPIOA_CLK_ENABLE();
 
 -     
 
 -     // 配置GPIO引脚为输出模式
 
 -     GPIO_InitStruct.Pin = GPIO_PIN_5;  // 假设LED连接在PA5引脚
 
 -     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // 推挽输出模式
 
 -     GPIO_InitStruct.Pull = GPIO_NOPULL;  // 不使用上拉或下拉电阻
 
 -     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;  // 设置为低速输出
 
 -     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 
 - }
 
 
  
2. 延时函数 
为了让LED闪烁,我们需要实现一个简单的延时函数,代码如下: 
 
- void Delay_ms(uint32_t ms) {
 
 -     HAL_Delay(ms);  // 使用HAL库提供的延时函数
 
 - }
 
 
  
3. 主程序 
在主函数中,我们通过循环控制GPIO引脚的高低电平,实现LED的闪烁效果。 
 
- int main(void) {
 
 -     // 初始化系统时钟
 
 -     HAL_Init();
 
 -     
 
 -     // 初始化GPIO
 
 -     GPIO_Init();
 
 -     
 
 -     while (1) {
 
 -         // 点亮LED
 
 -         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
 
 -         Delay_ms(500);  // 延时500ms
 
 -         
 
 -         // 熄灭LED
 
 -         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
 
 -         Delay_ms(500);  // 延时500ms
 
 -     }
 
 - }
 
 
  
四、代码解析 
- GPIO初始化:通过GPIO_Init()函数,将PA5引脚设置为输出模式。你可以根据实际情况更改引脚配置。
 - 延时函数:HAL_Delay()提供了简便的延时功能,适合基础的时序控制。
 - 主程序循环:通过HAL_GPIO_WritePin()控制引脚的电平,500ms高电平后变为低电平,即LED每秒闪烁一次。
 
 
  
五、总结 
这个简单的LED闪烁例子帮助我熟悉了凌鸥LKS MCU的基本操作,包括GPIO配置和延时函数使用。希望对大家入门开发有所帮助。如果你对凌鸥的其他功能有兴趣,比如PWM、ADC等,欢迎讨论! 
 
 
 
  |