LPC2378 晶振11.0592,波特率115200出错,57600对的。
1.如题
2.串口0 初始化
void Uart0_Init(unsigned int baudrate )
{
INT32 Fdiv;
//设置引脚链接模块
PINSEL0 = (PINSEL0 & 0xFFFFFF0F ) | 0x050; /* RxD0 and TxD0 */
//设置 波特率
//禁止小数分频
U0LCR = 0x83; //数据位8 无校验 1位停止位
Fdiv = ( Fpclk / 16 ) / baudrate ;//设置 波特率
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
//U0FDR &= ~0x0f; //FDR 禁止小数分频
//U0FDR |= ~0x10;
//设置通信帧 格式
U0LCR = 0x03;// DLAB = 0
/* 位功能 描述
1:0 字长度选择 00 5位字符长度
01 6
10 7
11 8个字符长度
2 停止位 0 1个停止位
1 2个停止位
3 奇偶使能 0 禁止奇偶产生和校验
1 使能
5:4 奇偶选择 00 奇数
01 偶数
10 强制为1
11 强制为0
6间隔控制 0 禁止间隔发送
1 使能间隔发送
7 除数锁存访问位 0 禁止
1 使能
*/
U0FCR |= 0x01; // 8个字符出发中断 FIFO使能
/*
位0 FIFO使能
位1 Rx FIFO复位
位2 Tx FIFO复位
位5:3 保留
位7:6Rx 出发选择 00:触发点0(1个字符)
01:触发点0(4个字符)
10:触发点0(8个字符)
11:触发点0(14个字符)
*/
install_irq( UART0_INT, (void *)UART0Handler, HIGHEST_PRIORITY );
U0IER=1; //打开接收中断
/*
位0 RBR中断使能 0:禁止RDA使能
1:使能RDA中断
UxIER.0使能Uart接收数据可用中断,还控制字符接收超时中断
位1 THRE中断使能 0:禁止THRE中断
1:使能THRE中断
UxIER.1使能Uart THRE中断。该中断的状态可从U0LSR.5读出
位2 Rx线状态中断使能 0:禁止Rx线状态中断
1:使能
UxIER.2使能Uart Rx线状态中断。该中断的状态可从UxLSR[4:1]读出
位7:3 保留
*/
}