<th id="alkcr"><pre id="alkcr"></pre></th>

  • 打印

    [家電應用] 求sh79f084 串口demo

    [復制鏈接]
    266|3
    跳轉到指定樓層
    樓主
    本帖最后由 laorenshen123 于 2019-9-15 11:55 編輯

    求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;
    }

    使用特權

    評論回復
    沙發
     樓主 | 2019-9-15 17:32 | 只看該作者
    沒有官方的FAE工程師給支持一下么?

    使用特權

    評論回復
    板凳
    | 2019-9-17 16:35 | 只看該作者
    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;
    }

    有問題歡迎指出,或者私信交流


    使用特權

    評論回復
    地板
     樓主 | 2019-9-17 19:29 | 只看該作者
    本帖最后由 laorenshen123 于 2019-9-17 19:46 編輯
    黑夜之狼 發表于 2019-9-17 16:35
    void Uart_Config(u16 baud)
    {
        u32 tmp;

    我試了一下,沒成功,不知道是哪里的問題?  
    我的代碼增加了       
        RCAP2L = TL2;
        RCAP2H = TH2;
    通訊中斷進去了,只中斷3次,因該中斷15次進去。

    使用特權

    評論回復
    掃描二維碼,隨時隨地手機跟帖
    您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規則

    我要發帖 投訴建議 創建版塊 申請版主

    快速回復

    您需要登錄后才可以回帖
    登錄 | 注冊
    高級模式

    論壇熱帖

    在線客服 快速回復 返回頂部 返回列表
    成人短片线上看