打印

不知道如何将这两个初始化函数合并

[复制链接]
921|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lium|  楼主 | 2022-12-9 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是两个串口的初始化函数,单独都能使用,现在一个程序里需要两个串口,公用串口1波特率。不知道如何将这两个初始化函数合并,求大神赐教

使用特权

评论回复
沙发
lium|  楼主 | 2022-12-9 22:40 | 只看该作者

//串口0初始化
void uart0_init() //
{   
    SCON0 = 0x50;    /*串口模式为方式一,无奇偶校验位,允许串口接受数据*/
    PCON = 0x00;     /*波特率不加倍*/
    SFRPI = 0x01;  /*换1页*/
    S1BRT = 0xFA;  /*波特率为9600*/
    SFRPI = 0x00;  /*换0页*/

    SCFG = 0x90;  /*使用UART1的波特率发生器*/
    RCLK = 0;
    TCLK = 0;

    ES0 = 1;   /*开串口0中断*/
    EA = 1;    /*开总中断*/
}

//串口1初始化
void uart1_init() //
{   
    SFRPI = 0x01;      /*换1页*/
    SCON1 = 0x50;    /*串口模式为方式一,无奇偶校验位,允许串口接受数据*/
    S1BRT = 0xFA;    /*波特率为9600*/
    SFRPI = 0x00;     /*换0页*/

    SCFG = 0x10;  
    RCLK = 0;
    TCLK = 0;

    EIE1 = 0X10;      /*开串口1中断*/
    EA = 1;              /*开总中断*/
}

使用特权

评论回复
板凳
yszong| | 2022-12-9 22:41 | 只看该作者

SCON=0x50;                                         
                                //第一串口在模式1,3下 使用第二串口波特率
                                //使能第二串口波特率,时钟来源为SYSCLK
        SCFG=0x90;        //        (URTS SMOD2 URM0X6 S1TR S1MOD S1TX12 - -        )
        //                 1    0       0    1    0     0   
        //S1TR 开启
        SFRPI=0x01;                          //set SFR Page 1
                                                  //第二串口模式为3: 11位可变波特率
        SCON1=0xD0;
        S1BRT=0xE8;                          //波特率为2400Bps         时钟来源为SYSCLK/12
        SFRPI=0x00;                          //set SFR Page 0
    EIE1=0x10;                    //使能第二串口中断
    EA=1;                           //使能全局中断

使用特权

评论回复
地板
LLGTR| | 2022-12-25 09:54 | 只看该作者
如果操作同一个寄存器,第二操作的采用【|=】就可以了。

使用特权

评论回复
5
V853| | 2022-12-25 09:55 | 只看该作者
感觉好像合并不到一块。

使用特权

评论回复
6
朝生| | 2022-12-25 09:56 | 只看该作者
你直接合并,把重复的语句删了,试试。

使用特权

评论回复
7
软核硬核| | 2022-12-25 09:56 | 只看该作者
这感觉用的是同一个串口的样子。

使用特权

评论回复
8
Henryko| | 2022-12-26 10:23 | 只看该作者
查看数据手册改啊

使用特权

评论回复
9
Stahan| | 2022-12-26 11:20 | 只看该作者
相同的寄存器合并一下不就行了

使用特权

评论回复
10
MessageRing| | 2023-1-19 21:02 | 只看该作者
直接合并,把重复的语句改改

使用特权

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

本版积分规则

915

主题

9579

帖子

3

粉丝