?? uart.c
字號:
/************************************************************/
/* UART Code for AT91SAM7S64 */
/* By pasyong */
/* 2006-5 */
/* Base IAR 4.30A */
/************************************************************/
#include "ioat91sam7s64.h"
#define Bautrate 38400 //在這里設置波特率
void uartinit(void)
{
*AT91C_PMC_PCER=1<<AT91C_ID_US0;
//PIO外設功能時鐘始能USART0的時鐘
*AT91C_PIOA_PDR=(AT91C_PA5_RXD0|AT91C_PA6_TXD0);
//PIO使能USART0對應的引腳的外設功能
*AT91C_PIOA_ASR=(AT91C_PA5_RXD0|AT91C_PA6_TXD0);
//外設A分配給USART0外設A功能
*AT91C_US0_CR=(AT91C_US_RXEN |AT91C_US_TXEN);
//允許接收和發送
*AT91C_US0_MR=AT91C_US_USMODE_NORMAL | /* Normal Mode */
AT91C_US_CLKS_CLOCK | /* Clock = MCK */
AT91C_US_CHRL_8_BITS | /* 8-bit Data */
AT91C_US_PAR_NONE | /* No Parity */
AT91C_US_NBSTOP_1_BIT; /* 1 Stop Bit */
//普通USART模式,主時鐘,8字節數據,無效驗
//*AT91C_US0_BRGR=30; //BARD RATE:38400(CD=30)
*AT91C_US0_BRGR=48054850/(16*Bautrate);
//設置波特率
}
unsigned char putchar (unsigned char ch)
{
while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY)); // Wait for Empty Tx Buffer
return (*AT91C_US0_THR = ch); // Transmit Character
}
void printf( unsigned char *s)
{
while (*s)
{
putchar(*s);
s++;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -