ARM Cortex-A7综合实验

该实验基于ARM Cortex-A7处理器,通过串口接收指令来控制LED灯的亮灭。主要涉及文件包括port.h、port.c和main.c。实验中,用户可以通过串口输入特定语句,实现对LED灯的状态控制。
摘要由CSDN通过智能技术生成

实验要求:串口输入语句控制LED灯亮灭

port.h

#ifndef __PORT_H__
#define __PORT_H__
#include "stm32mp1xx_uart.h"
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
extern void printf(const char *fmt, ...);

//LED灯
typedef enum{
	LED1 = 1,
	LED2,
	LED3,
}led_t;

//LED灯状态
typedef enum{
	LED_ON,
	LED_OFF,
}status_t;

//声明一个结构体
typedef struct{
	char* cmd_arr; //字符串
	led_t led;   //哪盏LED灯
	status_t status;  //LED灯状态
	void (*led_status_t)(led_t led,status_t status);  //函数指针
}cmd_t;

//LED等初始化
void hal_led_init();

//uart初始化
void hal_uart4_init();

//函数实现
void led_status(led_t led,status_t status);

//字符串比较函数
int my_strcmp(const char* src,const char* dest);

//查找命令字符串
cmd_t* find_command(const char* str);

//发送一个字符
void put_char(const char str);

//发送一个字符串
void put_string(const char* string);

//接收一个字符
char get_char();

//接收一个字符串
char* get_string();


#endif

port.c

#include "port.h"

extern void delay_ms(int ms);


//结构体初始化
cmd_t cmd_arr[6] = {
	[0] = {
		.cmd_arr = "led1on",
		.led = LED1,
		.status = LED_ON,
		.led_status_t = led_status,
	},
	[1] = {
		.cmd_arr = "led1off",
		.led = LED1,
		.status = LED_OFF,
		.led_status_t = led_status,
	},
	[2] =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值