📄 at91_usart.c
字号:
/* * at91_usart.c * * author: Kexin (kexin28@126.com) Tel:+8613714451195 * date: 2007-11-27 */#include "at91_usart.h"static volatile struct at91_usarts *usarts[AT91_USART_CNT] = { (volatile struct at91_usarts *) AT91_USART0_BASE, (volatile struct at91_usarts *) AT91_USART1_BASE};/*static unsigned long calc_CD(unsigned long baudrate){ return (UART_CLOCK / baudrate);}*/static void usart_init(volatile struct at91_usarts *uart){ /* Reset the USART */ uart->cr = US_TXDIS | US_RXDIS | US_RSTTX | US_RSTRX; uart->rcr = 0; uart->tcr = 0; /* Set the serial port into a safe sane state */ uart->mr = US_USMODE(0) | US_USCLKS(0) | US_CHRL(3) | US_NBSTOP(0) | US_PAR(5) | US_SYNC(0) | US_CLKO | US_CHMODE(0); uart->brgr = 213;//calc_CD(9600);//baudrate=MCK/(16*brgr) (mr over=0) OR baudrate=MCK/(8*brgr) (mr over=1) uart->rtor = 20; // timeout = value * 4 *bit period uart->ttgr = 0; // no guard time uart->rcr = 0; uart->rpr = 0; uart->tcr = 0; uart->tpr = 0;}void at91_init_usart(void){ usart_init(usarts[0]);}static void usart_printf(volatile struct at91_usarts *uart, char p){ uart->thr = p;}int printf(char *p){ if(*p=='\0') return -1; while(*p!='\0') usart_printf(usarts[0],*p++); return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -