uart4_led.h
#ifndef __UART4_LED_H__
#define __UART4_LED_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_uart.h"
#include "led.h"
typedef struct{
char* cmd_arr; //命令行字符串
gpio_t* gpiox; //GPIO组号
unsigned int pin; //引脚编号
gpio_status_t status; //LED灯状态
void(*gpio_write)(gpio_t* gpiox,unsigned int pin,gpio_status_t status);
}cmd_t;
//UART初始化
void uart_init();
//LED初始化
void LED_init(gpio_t* gpiox,unsigned int pin);
//发送一个字符
void put_char(const char ch);
//接收一个字符
char get_char();
//发送一个字符串
void put_string(const char* str);
//接收一个字符串
char* get_string();
//点亮LED
void hal_gpio_write(gpio_t* gpiox,unsigned int pin,gpio_status_t status);
//字符串比较函数
int strcmp(const char* string,const char* crr_string);
cmd_t* find_command(const char* str);
#endif
uart4.led.c
#include "uart4_led.h"
cmd_t cmd_arr[6]={
[0]={
.cmd_arr = "led1on",
.gpiox = GPIOE,
.pin = GPIO_PIN_10,
.status = GPIO_SET_T,
.gpio_write = hal_gpio_write,
},
[1] ={
.cmd_arr = "led1off",
.gpiox = GPIOE,
.pin = GPIO_PIN_10,
.status = GPIO_RESET_T,
.gpio_write = hal_gpio_write