Armboot在EV40评估板上的移植
异步模式
CD=选择的时钟/16×波特率(结果四舍五入)
同步模式
CD=选择的时候/波特率(CD必须为偶数)
CD将作US_BRGR(波特率发生寄存器)的值。
②设置PS_PCER(省电模块的外围时钟使能寄存器),它的各位和中断源对应。首先使能外围的时钟:
#define PS_PCER_US0 0x04
PS_PCER=PS_PCER_US0;
③设置PIO_PDR(PIO禁止寄存器)。此寄存器用于禁止PIO控制器控制单个引脚,而用作外围引脚。并行I/O口线中一些为复用口线,可以由PIO控制器控制或作为其它外围引脚。如P13(SCK0,SUART0时钟信号)、P14(TXD0,USART0数据发送端)、P15(RXD0,USART0数据接收端)。
#define PIO_PDR_RXD0 0x8000
#define PIO_PDR_TXD0 0x4000
#define PIO_PDR_TXD0 0x2000
如果使用MCK(主时钟),
PIO_PDR=PIO_PDR_RXD0|PIO_PDR_TXD0;
如果使用SCK(外部时钟),
PIO_PDR=PIO_PDR_RXD0|PIO_PDR_TXD0|PIO_PDR_SCK0。
④复位接收器和发送器。这是通过设置US_CR(USART控制寄存器)。
#define US_RSTRX 0x0004
#define US_RSTRX 0x0008
#define US_RXDIS 0x0020
#define US_TXDIS 0x0080
US_CR=US_RSTRX|US_RSTTX|US_RXDIS|US_TXDIS
⑤清除发送和接收计数寄存器。
US_TCR=0
US_RCR=0
⑥设置波特率产生寄存器US_BRGR。
US_BRGR=CD
⑦设置USART模式寄存器US_MR。
#define US_CHMODE_NORMAL 0x0000 /*普通模式*/
#define US_NBSTOP_1 0x0000 /*停止位1*/
#define US_PAR_NO 0x800 /*无奇偶校验*/
#define US_CHRL_8 0xC0 /*数据位8*/
#define US_CLKS_MCK 0x00 /*主时钟*/
#define US_ASYNC_MODE(US_CHMODE_NORMAL
+US_NBSTOP_1+US
《Armboot在EV40评估板上的移植(第2页)》