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 小时前
完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统
人工智能·学习·电脑
for_ever_love__1 小时前
Objective-C学习 NSSet 和 NSMutableSet 功能详解
开发语言·学习·ios·objective-c
LCMICRO-133108477462 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
仰泳的熊猫4 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
爱编码的小八嘎7 小时前
C语言完美演绎4-7
c语言
Thera7778 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
炘爚9 小时前
C语言(文件操作)
c语言·开发语言
盐水冰9 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵9 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
君义_noip9 小时前
信息学奥赛一本通 1952:【10NOIP普及组】三国游戏 | 洛谷 P1199 [NOIP 2010 普及组] 三国游戏
c++·信息学奥赛·csp-s