[学习资料] 使用凌鸥LKS MCU实现LED闪烁:基础代码解析与应用

[复制链接]
 楼主| 帛灿灿 发表于 2024-10-2 16:00 | 显示全部楼层 |阅读模式
最近在使用凌鸥LKS系列的MCU做一些基础开发,今天就分享一个简单的LED闪烁小项目。这是很多人学习MCU的入门任务,通过这个例子可以熟悉LKS MCU的GPIO操作和基本的延时函数。

一、项目简介
这个项目的目标是通过LKS MCU控制开发板上的LED实现简单的闪烁效果。我们将设置一个GPIO引脚作为输出,并通过循环切换该引脚的电平来控制LED的亮灭。

二、硬件环境
  • 凌鸥LKS系列MCU开发板
  • 开发板上的LED(或者外接LED)
  • 开发工具:Keil或IAR
  • 烧录工具:LKS Debugger

三、代码实现
1. GPIO初始化
首先需要初始化GPIO,设定相应引脚为输出模式。代码如下:
  1. #include "lks_mcu.h"  // 包含LKS MCU库文件

  2. void GPIO_Init(void) {
  3.     GPIO_InitTypeDef GPIO_InitStruct = {0};
  4.    
  5.     // 启用GPIO时钟
  6.     __HAL_RCC_GPIOA_CLK_ENABLE();
  7.    
  8.     // 配置GPIO引脚为输出模式
  9.     GPIO_InitStruct.Pin = GPIO_PIN_5;  // 假设LED连接在PA5引脚
  10.     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // 推挽输出模式
  11.     GPIO_InitStruct.Pull = GPIO_NOPULL;  // 不使用上拉或下拉电阻
  12.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;  // 设置为低速输出
  13.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  14. }

2. 延时函数
为了让LED闪烁,我们需要实现一个简单的延时函数,代码如下:

  1. void Delay_ms(uint32_t ms) {
  2.     HAL_Delay(ms);  // 使用HAL库提供的延时函数
  3. }

3. 主程序
在主函数中,我们通过循环控制GPIO引脚的高低电平,实现LED的闪烁效果。

  1. int main(void) {
  2.     // 初始化系统时钟
  3.     HAL_Init();
  4.    
  5.     // 初始化GPIO
  6.     GPIO_Init();
  7.    
  8.     while (1) {
  9.         // 点亮LED
  10.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
  11.         Delay_ms(500);  // 延时500ms
  12.         
  13.         // 熄灭LED
  14.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  15.         Delay_ms(500);  // 延时500ms
  16.     }
  17. }

四、代码解析
  • GPIO初始化:通过GPIO_Init()函数,将PA5引脚设置为输出模式。你可以根据实际情况更改引脚配置。
  • 延时函数:HAL_Delay()提供了简便的延时功能,适合基础的时序控制。
  • 主程序循环:通过HAL_GPIO_WritePin()控制引脚的电平,500ms高电平后变为低电平,即LED每秒闪烁一次。

五、总结
这个简单的LED闪烁例子帮助我熟悉了凌鸥LKS MCU的基本操作,包括GPIO配置和延时函数使用。希望对大家入门开发有所帮助。如果你对凌鸥的其他功能有兴趣,比如PWM、ADC等,欢迎讨论!

公羊子丹 发表于 2024-10-2 16:02 | 显示全部楼层
这个LED闪烁的例子真是经典,LKS MCU用起来好像也蛮顺手的!
童雨竹 发表于 2024-10-2 16:02 | 显示全部楼层
感谢分享,正好手头有块凌鸥板子,准备试试这个代码!
周半梅 发表于 2024-10-2 16:03 | 显示全部楼层
我也是刚入门MCU,LED闪烁真的很适合新手练手啊,简单又直观。
万图 发表于 2024-10-2 16:03 | 显示全部楼层
这段代码清晰易懂,我之前还搞不懂GPIO,现在终于有点头绪了!
Wordsworth 发表于 2024-10-2 16:04 | 显示全部楼层
延时函数用HAL库真方便,不用自己写延时了,省了不少麻烦。
Pulitzer 发表于 2024-10-2 16:04 | 显示全部楼层
PA5引脚是默认的吗?我板子上好像LED连的是别的引脚,改一下应该也行吧。
Bblythe 发表于 2024-10-2 16:04 | 显示全部楼层
我用的IAR,烧录之后效果还挺好,LED闪烁节奏很稳。
Uriah 发表于 2024-10-2 16:05 | 显示全部楼层
延时500ms看起来刚好,LED闪得不快不慢,刚开始用这个代码真是棒!
Clyde011 发表于 2024-10-2 16:05 | 显示全部楼层
下次能不能讲讲用LKS MCU做个温度传感器的项目?感觉这个MCU还有挺多潜力!
daichaodai 发表于 2024-10-3 23:05 来自手机 | 显示全部楼层
用MCU来控制LED闪烁有点大财小用了
gangong 发表于 2025-1-23 21:57 | 显示全部楼层
MCU用什么设备编程了
MYWX 发表于 2025-2-18 09:57 | 显示全部楼层
gangong 发表于 2025-1-23 21:57
MCU用什么设备编程了

支持keil,IAR
Amazingxixixi 发表于 2025-4-24 13:46 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

5858

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部