📄 uart.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 + -