打印
[ZLG-ARM]

LPC21XX采用11位格式与C51单片机通讯的程序

[复制链接]
1155|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mon51|  楼主 | 2009-6-23 09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
comx:选择哪个UART口;MOD=0-->n(MODE1),=1-->s(MODE3)
*******************************************************************************************/
void  UART_BPS_Init(unsigned char comx,unsigned int bps,unsigned char mod,unsigned char isr_en){

    if(comx==COM0){
        PINSEL0 |= (5<<0);                       // 设置I/O连接到UART0
        if(mod==MOD1){
            U0LCR = B1000_0011;//0x83;mod1         // DLAB = 1,可设置波特率
        }else{
            U0LCR = B1010_1011;//0xab;mod3         // DLAB = 1,可设置波特率
        }
        U0DLM= (Pclk / 16) / bps/256;            // 设置波特率                                                                            //
        U0DLL = ((Pclk / 16) / bps)%256;                                                                                //
        U0LCR &= 0x7f;                            //与51通讯方式3,d5d4=10必须要强制位1                                                                                            //
    }else{
        PINSEL0 |= (5<<16);                        // 设置I/O连接到UART1
        if(mod==MOD1){
            U1LCR = B1000_0011;//0x83;mod1         // DLAB = 1,可设置波特率
        }else{
            U1LCR = B1010_1011;//0xab;mod3         // DLAB = 1,可设置波特率
        }
        U1DLM= (Pclk / 16) / bps/256;            // 设置波特率                                                                            //
        U1DLL = ((Pclk / 16) / bps)%256;                                                                                //
        U1LCR &= 0x7f;                            //与51通讯方式3,d5d4=10必须要强制位1                                                                                            //
    }
    if(isr_en)    UART_ISR_Init(comx);
}

相关帖子

沙发
miclinux| | 2009-6-24 13:08 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

472

帖子

7

粉丝