大家帮忙看看我4
void USART_Configure(AT91S_USART *usart,unsigned int mode,
unsigned int baudrate,
unsigned int masterClock)
{
PMC_EnablePeripheral(AT91C_ID_US0);
// Reset and disable receiver & transmitter
usart->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX
| AT91C_US_RXDIS | AT91C_US_TXDIS;
// Configure mode
usart->US_MR = mode;
// Configure baudrate
// Asynchronous, no oversampling
if (((mode & AT91C_US_SYNC) == 0)
&& ((mode & AT91C_US_OVER) == 0)) {
usart->US_BRGR = (masterClock / baudrate) / 16;
}
usart->US_CR = AT91C_US_TXEN;
usart->US_CR = AT91C_US_RXEN;
} 哎呀,名字还没有打完就点错了,点回车了
在下面补充吧 我用的是arm7 ,s64,的芯片,这是串口初始化部分,编译器用的是IAR5.1,然后
晶振用个是18.432Mhz的,
USART_Configure(
AT91C_BASE_US0,
AT91C_US_CHRL_8_BITS|AT91C_US_PAR_NONE|AT91C_US_NBSTOP_1_BIT,
dw_Baudrate,
18432000);
我在初始化中调用这个。出来的数据不对,刚接触ARM7,好多地方搞不清,帮忙看看,谢谢了 那个 master clock 的值给错了,应该是 PLL 输出时钟的频率,你这里用成 PLL 输入时钟的频率了。 哦,谢谢楼上了
页:
[1]