K210基础实验——点亮LED灯

一、目的是点亮K210开发板左下角的LED0和LED1,LED0是红灯,LED1是绿灯,两颗LED灯都是低电平点亮,高电平熄灭。

二、这是原理图上的硬件连接,LED0连接的是IO0,LED1连接的是IO17。

三、在src目录下新建文件夹

四、为了跟官方的例程区分开来,名字叫做gpio_led1

五、在gpio_led1目录下新建文件

六、新建两个文件,分别是main.c和pin_config.h

七、在main.c文件中写入如下代码

c 复制代码
#include "pin_config.h"
#include <stdio.h>
#include <unistd.h>
#include "gpio.h"

void hardware_init(void)
{
    fpioa_set_function(PIN_LED_0, FUNC_LED0);
    fpioa_set_function(PIN_LED_1, FUNC_LED1);
}


int main(void)
{
        hardware_init();// 硬件引脚初始化

        gpio_init();    // 使能GPIO的时钟

        // 设置LED0和LED1的GPIO模式为输出
        gpio_set_drive_mode(LED0_GPIONUM, GPIO_DM_OUTPUT);
        gpio_set_drive_mode(LED1_GPIONUM, GPIO_DM_OUTPUT);

        // 先关闭LED0和LED1
        gpio_pin_value_t value = GPIO_PV_HIGH;
        gpio_set_pin(LED0_GPIONUM, value);
        gpio_set_pin(LED1_GPIONUM, value);

        while (1)
        {
          sleep(1); //延时1s
          gpio_set_pin(LED0_GPIONUM, value);
          gpio_set_pin(LED1_GPIONUM, value = !value);
        }

        return 0;
}

八、在pin_config.h文件中写入如下代码

c 复制代码
#ifndef _PIN_CONFIG_H_
#define _PIN_CONGIG_H_

/*****************************HEAR-FILE************************************/
#include "fpioa.h"

/*****************************HARDWARE-PIN*********************************/
// 硬件IO口,与原理图对应
#define PIN_LED_0             (0)
#define PIN_LED_1             (17)

/*****************************SOFTWARE-GPIO********************************/
// 软件GPIO口,与程序对应
#define LED0_GPIONUM          (0)
#define LED1_GPIONUM          (1)

/*****************************FUNC-GPIO************************************/
// GPIO口的功能,绑定到硬件IO口
#define FUNC_LED0             (FUNC_GPIO0 + LED0_GPIONUM)
#define FUNC_LED1             (FUNC_GPIO0 + LED1_GPIONUM)


#endif

九、在build路径下输入cmake ... -DPROJ=gpio_led1 -G "MinGW Makefiles"

十、再输入make进行编译

十一、编译成功

十二、编译成功后会在build目录下生成 .bin 文件

十三、打开K210官方提供的烧录工具

十四、烧录刚刚生成的.bin文件

十五、LED灯交替点亮,现象正常

相关推荐
郝学胜-神的一滴1 天前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
sramdram1 天前
低功耗MCU微控制器在动态血糖仪(CGM)中的应用方案
单片机·嵌入式硬件·mcu·mcu微控制器
Dlrb12111 天前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
世人万千丶1 天前
鸿蒙Flutter Flex布局性能优化
学习·flutter·性能优化·harmonyos·鸿蒙·鸿蒙系统
ch0sen1pm1 天前
刚学完 CAS 原子操作,我花了一晚上写了三个无锁队列
c++
qeen871 天前
【C++】vector的模拟实现详解(二)
c++·学习·算法·迭代器·stl
代码雕刻家1 天前
编程语法细节
java·c语言·开发语言
j7~1 天前
【C++】C++ 继承全解析:从基本语法到菱形继承的底层原理
开发语言·c++·继承·组合·虚继承·#暑假·七月创作之星博客挑战赛
云泽8081 天前
嵌入式环境搭建(一):Keil MDK5 安装流程及 DFP 器件包配置实战
嵌入式硬件·keil5·keil mdk5·dfp器件包配置
数行拙笔1 天前
C++客户端---String类型
开发语言·c++·bootstrap