標(biāo)題: 串口通信 [打印本頁]

作者: djtpaopao    時間: 2011-10-2 17:59
標(biāo)題: 串口通信

我想用成品的ic卡刷卡器 通過串口線向單片機中送入數(shù)據(jù)(10位十進(jìn)制數(shù),以asicc碼發(fā)送) 但是送入數(shù)據(jù)后單片機無反應(yīng)(我已經(jīng)寫好一個小的程序 ,當(dāng)單片機的串口有數(shù)據(jù)送入的時候蜂鳴器會報警,并且之前已經(jīng)用串口調(diào)試工具調(diào)試成功,即用串口調(diào)試工具向單片機發(fā)送數(shù)據(jù),單片機會成功報警)
注:當(dāng)刷卡器連接超級終端 刷卡的時候會有數(shù)據(jù)送入(用串口調(diào)試工具,有相同的數(shù)據(jù)送入)

  測試程序見附件

請高手解答

test.rar (434 Bytes, 下載次數(shù): 3767)

作者: tianxy18    時間: 2011-11-6 14:24
 你的程序有問題

void interrupt_uart() interrupt 4
{
    if(RI)
    {
        RI = 0;
        num = SBUF;
        if(!num==0)
        {
            while(1)
            {
                delay(100);
                BUZZ=~BUZZ;
            }
        }
        //{P0=0;}
        REN=0;
       
    }
}

上面這段是你寫的吧,你看看num變量是個無符號整型數(shù)據(jù),而你的if判斷語句中用了位變量操作,顯然你所接收的數(shù)據(jù)既不是0也不是1,肯定大于1,所以你的蜂鳴器不會響是肯定了的,除非你的接受的數(shù)據(jù)就等于1,否則蜂鳴器是不會響的。





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