打印

双串口的初始化

[复制链接]
614|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2016-12-9 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教大家一个问题,MA805-64单片机双串口的初始化要怎么设置,串口0波特率是1200,串口1的波特率是4800.
沙发
llia| | 2016-12-9 22:13 | 只看该作者
串口0可以用定时器1作为波特率发生器。串口1有专用的波特率发生器,下面的波特率都是9600的

使用特权

评论回复
板凳
yufe|  楼主 | 2016-12-9 22:15 | 只看该作者
哦,啥意思

使用特权

评论回复
地板
wangpe| | 2016-12-9 22:18 | 只看该作者

void serial_port_one_initial(void) //9600bps,8,n,1@11.0592MHz:TH1=TL1=0xB8;@22.1184MHz:TH1=TL1=0x70;
{
/*    AUXR2 |= 0x40;                //定时器1时钟1T模式
   TMOD=0x20;                                  //Set Timer1 Mode 2
    SCON=0x50;                                  //Set UART Mode 1
    PCON |=0x80;                                  //Set SMOD = 1 (Double Baud rate)
    TH1=0x70;                                   //Set Timer1 overflow rate
    TL1=0x70;  
    ET1 = 0;                //禁止定时器1中断
    TR1 = 1;                //启动定时器1
    ES = 1;    //允许串口中断*/


            //设置串口
          SCON=0x50;                                         
        //第一串口在模式1,3下 使用第二串口波特率
        //使能第二串口波特率,时钟来源为SYSCLK
        SCFG=0x94;
     //-------------------------------------------        
        SFRPI=0x01;                  //set SFR Page 1
          //第二串口模式为1: 10位可变波特率
        SCON1=0x50;
        //S1BRT=0xDC;                  //波特率为19200Bps--->22.1184Mhz
        S1BRT=0xB8;                  //波特率为9600Bps--->22.1184Mhz
    //----------------------------------------------------        
        SFRPI=0x00;                  //set SFR Page 0
        
       EIE1=0x10;    //使能第二串口中断
        ES = 1; //使能第一串口中断
        
}        
//-----------------------------------------------------------------------------------*/

使用特权

评论回复
5
langgq| | 2016-12-9 22:20 | 只看该作者
看看DATASHEET和参考例程,里面应该有

使用特权

评论回复
6
yufe|  楼主 | 2016-12-9 22:22 | 只看该作者
嗯,那我按大家的说法挨个排查一下,先结贴啦,谢谢哈

使用特权

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

本版积分规则

983

主题

10170

帖子

1

粉丝