uart4.h
#ifndef __UART4_H__
#define __UART4_H__
#include "stm32mp1xx_uart.h"
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
//uart初始化
void hal_uart4_init();
//发送一个字符
void put_char(const char str);
//发送一个字符串
void put_string(const char* string);
//接收一个字符
char get_char();
//接收一个字符串
char* get_string();
#endif
uart4.c
#include "uart4.h"
//extern void delay_ms(int ms);
//uart初始化
void hal_uart4_init()
{
//使GPIOG与GPIOB时钟使能
RCC->MP_AHB4ENSETR |= (0x1 << 1);
RCC->MP_AHB4ENSETR |= (0x1 << 6);
//使UART4时钟使能
RCC->MP_APB1ENSETR |= (0x1 << 16);
//GPIOx_MODER寄存器功能:设置PB2和PG11引脚为复用功能
GPIOB->MODER &= ~(0x3 << 4);
GPIOB->MODER |= (0x1 << 5);
GPIOG->MODER &= ~(0x3 << 22);
GPIOG->MODER |= (0x1 << 23);
//GPIOx_AFRL寄存器功