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

標題: 單片機定時計數器T2做波特率發生器程序問題 [打印本頁]

作者: hululu2333    時間: 2020-6-19 22:31
標題: 單片機定時計數器T2做波特率發生器程序問題
在89c52上用T2給AS608指紋模塊做波特率發生器,T1已經調試好了,但是T2一直有問題。
在串口助手上發送數據,可以接收到數據,但是發送和接收的數據不一樣。不知道是什么問題,請各位幫忙看看
晶振是11.0592MHz,波特率9600
void Uart_Init(void)
{   
    SCON=0x50;
    T2CON=0x34;
    TH2=0xFF;
    TL2=0xDC;        
    RCAP2H=TH2;
    RCAP2L=TL2;
    EA=1;
}


作者: angmall    時間: 2020-6-20 01:25
這程序沒錯,估計其他地方錯了, 取決于你的串行中斷處理程序。
是因為你的定時器設置太小,已經等于小于機器周期。而定時器中斷優先級高于串口中斷,所以不能執行串口中斷。解決方法1定時器時間改長一點2把串口優先級設高于定時器。


作者: hululu2333    時間: 2020-6-20 09:18
angmall 發表于 2020-6-20 01:25
這程序沒錯,估計其他地方錯了, 取決于你的串行中斷處理程序。
是因為你的定時器設置太小,已經等于小于 ...

我這里沒有用串口中斷,只用t2做波特率發生器,問題已經解決,謝謝
作者: SKYLAR123    時間: 2020-6-24 11:54
對比數據手冊這這里缺少ES=1;(串口中斷),但是樓主說沒有用到中斷,那難道你接收程序用的是查詢方式嗎
作者: hululu2333    時間: 2020-7-7 16:33
SKYLAR123 發表于 2020-6-24 11:54
對比數據手冊這這里缺少ES=1;(串口中斷),但是樓主說沒有用到中斷,那難道你接收程序用的是查詢方式嗎

我是把T2用作波特率發生器,接收發送函數沒寫在中斷里,寫在循環里了。




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