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灯交替点亮,现象正常

相关推荐
仙女修炼史24 分钟前
CNN的捷径学习Shortcut Learning in Deep Neural Networks
人工智能·学习·cnn
我头发多我先学34 分钟前
C++ 模板全解:从泛型编程初阶到特化、分离编译进阶
java·开发语言·c++
爱编码的小八嘎36 分钟前
C语言完美演绎8-15
c语言
YSF2017_31 小时前
C语言16-makefile(3)——makefile的模式规则
linux·c语言·开发语言
星星码️1 小时前
C++选择题练习(一)
开发语言·c++
亚空间仓鼠1 小时前
网络学习实例:网络理论知识
网络·学习·智能路由器
薛定e的猫咪2 小时前
多智能体强化学习求解 FJSP 变体全景:动态调度、AGV 运输、绿色制造与开源代码导航
人工智能·学习·性能优化·制造
风兮雨露2 小时前
一建学习流程以及计划(附资料)
学习
dgaf3 小时前
谢谢 AI (打靶测试用文)
c语言·gpt·ai编程·d3d12
星幻元宇VR3 小时前
VR单人地震体验平台,学习科学避险
科技·学习·安全·vr·虚拟现实