欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機串口接收異常 [打印本頁]

作者: 3051165301    時間: 2025-3-8 14:31
標題: 單片機串口接收異常
我給單片機發送:abc
但是單片機只能接收到:a然后后面兩個是亂碼,就是:a()()a()()



void UART0_Init(void)
{
    EA_Disable(); // 關閉總中斷,防止在配置過程中意外觸發
        
        T2MOD |= 0x91;//1001 0001//Fosc 2分頻
        TCLK=1;
        RCLK=1;
        RCAP2H = BAUD_RATE_RCAP2H;
        RCAP2L = BAUD_RATE_RCAP2L;
    PCON |= PWR_SMOD;
//        SCON = 0x50; // 模式1,8位UART,REN=1
        // 模式1,8位UART
        SM0=0;
        SM1=1;
        SM2=0;
        //初始化接收
        REN=1;
        RI=0;
        TR2 = 1;   
    ES = 1;// 啟用UART0中斷
        ET1 = 0;//關閉定時器中斷
//   EA_Enable();// 開啟總中斷

}



// UART0中斷服務程序
void UART0_ISR(void) interrupt 4 using 1
{
        static u8 data ReceiveCount=0;
        static char data rx_data[3]={0};
        if(RI){
                RI = 0 ;
                rx_data[ReceiveCount] = SBUF;
                if(ReceiveCount<3)ReceiveCount++;
                else ReceiveCount=0;
        }
        else if (TI)
    {
        TI = 0; // 清除發送中斷標志
        SendCompleteFlag = 1;
    }
}


作者: rundstedt    時間: 2025-3-8 17:22
把'b'、'c'和亂碼的二進制寫出來,看看有沒有什么規律。
作者: 明日之星8    時間: 2025-3-8 20:06
先從單片機發數據到電腦,如果電腦收到的數據正常,再從電腦發數據到單片機。
作者: WL0123    時間: 2025-3-9 10:39
static char data rx_data[3]={0};???
中斷函數收到的數據保存在緩存數組 rx_data[ ]中,受限于 rx_data[ ]作用域僅限于中斷函數內,顯示函數無法調用 rx_data[ ]中數據。
作者: johnhk97    時間: 2025-3-9 18:56
static char data rx_data[3]={0};
if(ReceiveCount<3)ReceiveCount++; else ReceiveCount=0;

當ReceiveCount=2, 就會加1, 變成ReceiveCount=3
下次中斷 (RI==1),  rx_data[ReceiveCount] 超出數組范圍






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1