清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#include<stdio.h> unsigned int UART0_ADDR = 0x20080000; unsigned int retu=0; int i=0; void delay_x(unsigned short cycles) { unsigned short t; t = cycles; while ( --t != 0 ); } int main() { ///////////初始化部分//////////////////////////////////////////////////// retu = *(unsigned int *)(UART0_ADDR + 0X30);//uart_cr *(unsigned int *)(UART0_ADDR + 0X30) = 0x300; // retu = *(unsigned int *)(UART0_ADDR + 0X24);//ibrd // retu = *(unsigned int *)(UART0_ADDR + 0X28);//fbrd *(unsigned int *)(UART0_ADDR + 0X24) = 1; *(unsigned int *)(UART0_ADDR + 0X28) = 40; *(unsigned int *)(UART0_ADDR + 0X30) = 0x300; *(unsigned int *)(UART0_ADDR + 0X2c) = 0x60;//UART_LCR_H *(unsigned int *)(UART0_ADDR + 0X34) = 0x12; //UART_IFLS *(unsigned int *)(UART0_ADDR + 0X38) = 0x0;//UART_IMSC retu = *(unsigned int *)(UART0_ADDR + 0X30);//uart_cr *(unsigned int *)(UART0_ADDR + 0X30) = retu | 0x01;//使能串口 ////////////////////////////////////////////////////////// while(1) { // retu = *(unsigned int *)(UART0_ADDR + 0X18); // retu = retu&0x40; if(((*(unsigned int *)(UART0_ADDR + 0X18))&0x40)==0x40) { retu = *(unsigned int *)(UART0_ADDR + 0X00); retu = retu&0xff; *(unsigned int *)(UART0_ADDR + 0X00) = retu; } retu = 0; delay_x(0X7000); } return 0; }