在串口输入相应的命令,实现相应的led灯进行点亮和熄灭

头文件

#ifndef __LED_H__
#define __LED_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_uart.h"
//引脚编号的封装
#define GPIO_PIN_0 0
#define GPIO_PIN_1 1
#define GPIO_PIN_2 2
#define GPIO_PIN_3 3
#define GPIO_PIN_4 4
#define GPIO_PIN_5 5
#define GPIO_PIN_6 6
#define GPIO_PIN_7 7
#define GPIO_PIN_8 8
#define GPIO_PIN_9 9
#define GPIO_PIN_10 10
//MODER模式寄存器
typedef enum{
	INOUT,OUTPUT,ALT,ANLOG
}gpio_moder_t;
//OTYPER输出模式寄存器
typedef enum{
	PP,OD
}gpio_otyper_t;
//OSPEEDR输出速率寄存器
typedef enum{
	LOW,MED,HIGH,FAST
}gpio_ospeedr_t;
//PUPDR是否需要上下拉电阻寄存器
typedef enum{
	NO_PU_PD,PU,PF,RES
}gpio_pupdr_t;
//ODR输出高低电平寄存器
typedef enum{
	GPIO_RESET_T,GPIO_SET_T
}gpio_status_t;
typedef struct{
	gpio_moder_t moder;//模式寄存器
	gpio_otyper_t otyper;//输出类型寄存器
	gpio_ospeedr_t ospeedr;//输出速率寄存器
	gpio_pupdr_t pupdr;//是否需要上下拉寄存器
}gpio_init_t; 
//串口初始化函数        
void hal_uatr_4_init();  
//GPIO引脚初始化函数 PE10 PF10 PE8
void hal_gpio_init(gpio_t* gpiox, unsigned int pin, gpio_init_t* gpio_init);
//点灯/熄灭
void hal_gpio_write(gpio_t* gpiox, unsigned int pin,gpio_status_t status);	
//接收一个字符                             
char hal_get_char();                       
//接收一个字符串                           
char* hal_get_string(); 
//比较函数
int my_str_cmp(char* string);
typedef struct{
	char* cmd_arr;
	gpio_t* gpiox;
	unsigned int pin;
	gpio_status_t status;
}cmd_t;
void delay_ms(int ms);
#endif

函数

#include "led.h"
cmd_t arr[6] = {
	[0] = {
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值