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 分钟前
软件解耦与扩展的利器:基于C++与C#的插件式开发实践
c++
做cv的小昊2 小时前
计算机图形学:【Games101】学习笔记05——着色(插值、高级纹理映射)与几何(基本表示方法)
笔记·opencv·学习·计算机视觉·图形渲染·几何学
车载测试工程师2 小时前
CAPL学习-CAN相关函数-统计API函数
网络·网络协议·学习·capl·canoe
CoderCodingNo2 小时前
【GESP】C++五级真题(贪心和剪枝思想) luogu-B3930 [GESP202312 五级] 烹饪问题
开发语言·c++·剪枝
好奇龙猫3 小时前
【AI学习-comfyUI学习-第二十四节-open(contorlnet多重处理)+图生图openpose-各个部分学习】
人工智能·学习
永远前进不waiting3 小时前
C复习——1
c语言·开发语言
阿闽ooo3 小时前
深入浅出适配器模式:从跨国插头适配看接口兼容的艺术
c++·设计模式·适配器模式
一路往蓝-Anbo3 小时前
【第13期】中断机制详解 :从向量表到ISR
c语言·开发语言·stm32·单片机·嵌入式硬件
ArrebolJiuZhou3 小时前
00 arm开发环境的搭建
linux·arm开发·单片机·嵌入式硬件
易水寒陈3 小时前
使用J-Link RTT Viewer
stm32·单片机