打印
[其它应用]

求sh79f084 串口demo

[复制链接]
662|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxrs|  楼主 | 2021-4-8 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求sh79f084 串口demo,sh79f084 串口用T2定时器,没成功。哪里不对?

void Init_Timer2(void)
{        
        EA=0;
        //Enter_Bank1;                                                                        
        T2CON        =        Bin(00110000);
                 
        TL2 = (65536-16600000/32/2400) & 0x00ff;
    TH2 = ((65536-16600000/32/2400)>>8)&0x00ff;
        TF2          =         0;                                                //
        TR2        =         1;                                                // 开启定时器2        
                                                                                   
         //IEN0        |=        Bin(00010000);         //EUART
         //IEN1        =        Bin(00000000);         
         //Enter_Bank0;
         ET2 = 0;

         EA        =        1;                                                        //开启全中断
}
void EUART_Init(void)
{
         EA=0;  
         //Enter_Bank0;
                                             
          PCON =Bin(00000000);               
          SCON        =        Bin(01010000);                        //        方式1                  
          RI=0;                                       
        
          TI=0;                                                                                                  
          REN=1;                           //打开串口0接收中断
      ES0 =1;                           //使能UART0中断

        EA        =        1;
}

使用特权

评论回复
沙发
便携手到老| | 2021-4-8 22:25 | 只看该作者
感谢楼主的分享, 不错的代码,楼主是高手。

使用特权

评论回复
板凳
llljh| | 2021-4-8 22:28 | 只看该作者
void Uart_Config(u16 baud)
{
    u32 tmp;
    u8 T2RH = 0;    //T2重载值的高字节
    u8 T2RL = 0;    //T2重载值的低字节
        
    tmp = SYS_MCLK / 32 / baud;
    tmp = 65536 - tmp;
    T2RH = (u8)(tmp >> 8);
    T2RL = (u8)tmp;

    PCON &= 0xBF;        //X0XX XXXX D6 = 0,SCON[7:5]工作方式SM0 SM1 SM2
    SCON = 0x50;        //0101 0000 方式1,波特率为系统时钟的1/12
    RCAP2L = T2RL;
    RCAP2H = T2RH;
    T2MOD &= 0x00;
    T2MOD |= 0x01;
    T2CON |= 0x34;  //0011 0000 使用T2溢出率作为波特率发生器 开始T2
    ES0 = 1;
}

使用特权

评论回复
地板
xxrs|  楼主 | 2021-4-8 22:30 | 只看该作者
试了一下,没成功,不知道是哪里的问题?

使用特权

评论回复
5
jiajs| | 2021-4-8 22:33 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
6
xxrs|  楼主 | 2021-4-8 22:35 | 只看该作者
代码增加了        
    RCAP2L = TL2;
    RCAP2H = TH2;
通讯中断进去了,只中断3次,因该中断15次进去。

使用特权

评论回复
7
xxrs|  楼主 | 2021-4-8 22:38 | 只看该作者

搞定了,呵呵,犯了低级错误……

使用特权

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

本版积分规则

405

主题

7415

帖子

1

粉丝