1. 输出模式
#define LED1 GPIO_PD2
#define LED2 GPIO_PD3
#define LED3 GPIO_PD4
#define LED4 GPIO_PD5
void led_init(void)
{
gpio_set_func(LED1, AS_GPIO);
gpio_set_output_en(LED1, 1);
gpio_write(LED1,0);
gpio_set_func(LED2, AS_GPIO);
gpio_set_output_en(LED2, 1);
gpio_write(LED2,0);
gpio_set_func(LED3, AS_GPIO);
gpio_set_output_en(LED3, 1);
gpio_write(LED3,0);
gpio_set_func(LED4, AS_GPIO);
gpio_set_output_en(LED4, 1);
gpio_write(LED4,0);
}
1.2 输出高低电平
gpio_write(LED1, 1);//输出高电平
gpio_write(LED1, 0);//输出低电平
2. 输入模式
官方提供的开发板,按键是一个矩阵按键,为了简化,我直接利用外接出来的引脚去和GND相连来模拟按键。
#define KEY2 GPIO_PB2
#define KEY3 GPIO_PB3
#define KEY4 GPIO_PB4
#define KEY5 GPIO_PB5
void key_init(void)
{
gpio_set_func(KEY2, AS_GPIO);
gpio_set_input_en(KEY2, ENABLE);
gpio_setup_up_down_resistor(KEY2, PM_PIN_PULLUP_10K);
gpio_set_func(KEY3, AS_GPIO);
gpio_set_input_en(KEY3, ENABLE);
gpio_setup_up_down_resistor(KEY3, PM_PIN_PULLUP_10K);
gpio_set_func(KEY4, AS_GPIO);
gpio_set_input_en(KEY4, ENABLE);
gpio_setup_up_down_resistor(KEY4, PM_PIN_PULLUP_10K);
#if 0
gpio_set_func(KEY5, AS_GPIO);
gpio_set_input_en(KEY5, ENABLE);
gpio_setup_up_down_resistor(KEY5, PM_PIN_PULLUP_10K);
#endif
}
2.1 读取GPIO高低电平
if(gpio_read(key) == 0)
{
*states = 1;
LOG_INFO("press 1\r\n");
}