LED灯是单片机开发,最简单的代码没有之一,一般拿到一个MCU都先试试控制IO口电平高低,可以通过示波器,万用表,或LED灯来看看自己的代码有没有运行起来.
LED程序运行步骤一般有两步,
第一步:配置GPIO口为输出
第二步:设置GPIO口的电平为高或低,或者不停翻转
我们先看看工程的文件结构:
一共有3个文件,
一个startup.s文件是系统初始化文件,一般不需要修改直接套用
sys_colck.c文件是芯片时钟设置,一般运行默认值就好,这里设置系统时钟为默认的48MHz
我们先来看看mian.c文件
#include "main.h"
// LED灯的引脚IO口定义
#define LED_GPIO GPIO0
#define LED_PIN 6
// LED初始化配置函数
void LED_Config(void)
{
LED_GPIO->PMS &= ~(0x0F << (LED_PIN*4));
LED_GPIO->PMS |= (0x01 << (LED_PIN*4));
LED_GPIO->DR &= ~(0x01 << LED_PIN);
LED_GPIO->SR &= ~(0x01 << LED_PIN);
}
int led_cnt=0; //LED翻转延迟计数器
// LED翻转控制函数
void led_func(void)
{
led_cnt++;
if(led_cnt==300000)
{
LED_GPIO->DOSET = 1<<LED_PIN; //LED 亮
}
if(led_cnt==600000)
{
LED_GPIO->DOCLR = 1<<LED_PIN; //LED 灭
led_cnt=0;
}
}
// 主函数
int main(void)
{
LED_Config();
while(1) // 无限循环
{
led_func();
}
}
代码运行结果就是LED等不停的闪烁
是不是非常简洁