![]() |
發(fā)布時間: 2021-12-28 09:02
正文摘要:有大佬知道為什么我這接收端接收到的數(shù)據(jù)在為什么在1602上不顯示嗎?這是部分程序,我自己寫的感覺問題很大,lcd驅(qū)動程序就不放上來了,下面有仿真圖 單片機源程序如下: #include <reg51.h> #include "lcd.h ... |
最容易看懂的處理方法如下 自定義通信協(xié)議 0xAA'2' '1' '1' '2' '2' '8' '2' '1' '2' '2' '4' '0' '2'0x55 表示21年12月28日21點22分40秒星期二 unsigned char rec_buf[15];//接收緩存 void UARTInterrupt() interrupt 4 { static uchar i=0; //靜態(tài)計數(shù)變量 RI=0; //接收中斷請求標志位清0 rec_buf[num]=SBUF; //接收到的數(shù)據(jù)串保存在緩存數(shù)組 if(rec_buf[0]==0xAA) //驗證數(shù)據(jù)頭(起始位) { i++; if(i>=15) { flag=1; //一幀數(shù)據(jù)接收完成標志置1 i=0; //計數(shù)變量清0 } } } 在主函數(shù)中驗證數(shù)據(jù)尾無誤,再把收到的字符顯示在LCD相應(yīng)位置 |
AUG 發(fā)表于 2021-12-28 14:19 我加了個蜂鳴器在里面,只有把蜂鳴器響的條件改為數(shù)據(jù)為0的時候才會響,這是表示沒有收到數(shù)據(jù)嗎? |
確定是否收到數(shù)據(jù)了,收到了再去顯示肯定就沒問題 |
lkc8210 發(fā)表于 2021-12-28 11:22 沒用啊,我是在做電子鐘,要求是要通過串口通信將單片機實物與仿真環(huán)境里的電子鐘時間同步顯示,數(shù)據(jù)不能只發(fā)一段,要實時不停發(fā)送,但是數(shù)據(jù)能發(fā)送出去,但是接收端這邊有問題,LCD能正常顯示,但沒法顯示我發(fā)送過去的數(shù)據(jù),我就是這里不知道問題出在哪。還有這上面就是我接收端的整個代碼了(除了LCD的驅(qū)動程序)。 |
因為代碼不全 只能推測 第27行串口代碼有點問題 試改為
然后輸入59 19 06 07 05 07 30 44 |
我自己已經(jīng)搞了兩天了沒有什么頭緒 |
Powered by 單片機教程網(wǎng)