#include "/home/ubuntu/23071/ARM/includem32mp1xx_gpio.h"
#include "/home/ubuntu/23071/ARM/includem32mp1xx_rcc.h"
#include "/home/ubuntu/23071/ARM/includem32mp1xx_uart.h"
#include "/usr/include/myhead.h"
void uart_init();
char getchar_one();
void putchar_one(char a);
int main(int argc, const char *argv[])
{
uart_init();
while(1)
{
getchar_one();
char a;
scanf("%c",&a);
putchar_one(a);
}
return 0;
}
void uart_init()
{
RCC->MP_AHB4ENSETR |= 0x42;
RCC->MP_APB1ENSETR |= (0x1<<16);
GPIOG->MODER &=(~(0x3<<22));
GPIOB->MODER &=(~(0x3<<4));
GPIOG->MODER |= (0x2<<22);
GPIOB->MODER |= (0x2<<22);
GPIOG->AFRH |= (0x6<<12);
GPIOB->AFRL |=(0x8<<8);
USART4->CR1 &=(~(0x1<<28));
USART4->CR1 &=(~(0x1<<12));
USART4->CR1 &=(~(0x1<<15));
USART4->CR1 &=(~(0x1<<10));
USART4->CR2 &=(~(0x3<<12));
USART4->BRR |=0x22B;
USART4->CR1 |= (0x1<<3);
USART4->CR1 |= (0x1<<2);
USART4->CR1 |= 0x1;
}
char getchar_one()
{
char c;
while(!(USART4->ISR & (0x1<<5)));
//2.如果准备好就读取 USART_RDR
c = USART4->RDR;
//3.返回
return c;
}
void putchar_one(char a)
{
while(!(USART4->ISR & (0x1<<7)));
USART4->TDR = a;
while(!(USART4->ISR & (0x1<<6)));
}
ARMday2
最新推荐文章于 2024-07-19 21:44:35 发布