一、目的是点亮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