⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 自己写的一个基于kb9202开发板的bootloader
💻 C
字号:
#include "at91rm9200.h"inline void dbgu_init(){	int value;	pio_reg_p pioa  = (pio_reg_s  *)PIOA_BASE;	dbgu_reg_p dbgu = (dbgu_reg_s *)DBGU_BASE;/* pin multiplexing */		value = DRXD | DTXD;	pioa->pio_asr = value;	pioa->pio_bsr = 0;	pioa->pio_pdr |= value;	pioa->pio_per &= ~value;/* setup configuration */	dbgu->dbgu_cr = (1<<UART_RSTRX) | (1<<UART_RSTTX) | (1<<UART_RXDIS) | (1<<UART_TXDIS) | (1<<UART_RSTSTA);	dbgu->dbgu_mr = (0x4<<9) | (0x3<<6);		//8bit, no parity, 1 stop-bit	dbgu->dbgu_idr = (unsigned) -1;	dbgu->dbgu_brgr = 0x14;				//cd=20, baudrate=36M/(16*20)=115200	dbgu->pdc.periph_ptcr = (1<<1) | (1<<9);		//disable the pdc channel	dbgu->dbgu_cr = (1<<UART_RXEN) | (1<<UART_TXEN);}void put_char(char c){	dbgu_reg_p dbgu = (dbgu_reg_s *)DBGU_BASE;	while( !(dbgu->dbgu_sr & (USART_TXRDY)) );	dbgu->dbgu_thr = c;}void put_s(char *s){	int i=0;	while(s[i]!='\0')		put_char(s[i++]);}char get_char(){	char c;	dbgu_reg_p dbgu = (dbgu_reg_s *)DBGU_BASE;	while( !(dbgu->dbgu_sr & (USART_RXRDY)) );	c = (char)(dbgu->dbgu_rhr & 0xff);	return c;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -