首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

LPC2378 晶振11.0592,波特率115200失误,57600对的

2013-06-25 
LPC2378 晶振11.0592,波特率115200出错,57600对的。1.如题2.串口0 初始化void Uart0_Init(unsigned int bau

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    保留
*/


   
}


[解决办法]
用示波器看一下晶振的实际频率呢,是不是差太多了
[解决办法]
配置完串口后往外发0xaa, 然后用示波器量发引脚,看有没有信号,有信号的话,看数据的电平间隔是否是1/115200s左右
[解决办法]
1. 有无配错;
2. 晶阵精度是否足够高;
3. 波特率为115200时候,测量下具体波形,看波特率实际为多少
4. 在57600上,可继续往上调,看最高能调试到多少
[解决办法]
http://blog.csdn.net/yfz000/article/details/8516621

看了一下这个贴子


[解决办法]
这么高的波特率需要硬件支持
[解决办法]
波特率不正确,115200波特率大约是8.68us一个比特,你测量出来的信号下面显示时299.517K,所以应该是Fpclk不对,与实际你倍频上去的时钟不同,因此应该首先修改这个,因为11059200可以被16*115200整除,所以按说倍频后的时钟也可以被整除,应该是没有误差的。
[解决办法]
看看你的 Fpclk 是否设置成 13MHz 了。

[解决办法]
很可能是硬件不支持 
[解决办法]
引用:
这么高的波特率需要硬件支持


之前查的资料

理论上这货支持的速率到5M去~~~
[解决办法]
引用:
Quote: 引用:

这么高的波特率需要硬件支持


之前查的资料

理论上这货支持的速率到5M去~~~

反正感觉不太可靠,误码率太高了、、、
[解决办法]
你这倍频参数怎么也算不成50MHz吧,回去看看datasheet吧

热点排行