usart.c

来自「Bootloader for Atmel AT91SAM7S128 lload」· C语言 代码 · 共 37 行

C
37
字号

#include "common.h"
#include "usart.h"

uchar usart_getc(void) {
	while((*AT91C_US0_CSR & AT91C_US_RXRDY) == 0);
	return (*AT91C_US0_RHR & 0xFF);	
}

void usart_putc(uchar data) {		
	while((*AT91C_US0_CSR & AT91C_US_TXRDY) == 0);
	*AT91C_US0_THR = (data & 0xFF);
}

void usartInit(void) {
	//Enable Clock Source for USART
	*AT91C_PMC_PCER = 1<<AT91C_ID_US0;

	//Set baudrate (9600bps)
	*AT91C_US0_BRGR = 5; //62; //MCK / (16 * 19200);
	
	*AT91C_US0_IDR = (unsigned int) -1;
	
	//Set mode
	*AT91C_US0_MR = 0x000008C0;
	
	//Configure i/o ports
	*AT91C_PIOA_PPUDR = (1<<5 | 1<<6);
	*AT91C_PIOA_PDR = (1<<5 | 1<<6);
	*AT91C_PIOA_ASR = (1<<5 | 1<<6);
	
	//Enable transmitter/receiver
	*AT91C_US0_CR = AT91C_US_TXEN;
	*AT91C_US0_CR = AT91C_US_RXEN; 

}

⌨️ 快捷键说明

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