帛灿灿 发表于 2024-10-2 16:00

使用凌鸥LKS MCU实现LED闪烁:基础代码解析与应用

最近在使用凌鸥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等,欢迎讨论!

公羊子丹 发表于 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
页: [1]
查看完整版本: 使用凌鸥LKS MCU实现LED闪烁:基础代码解析与应用