|
發布時間: 2019-2-12 19:19
正文摘要:就是輸入1的時候蜂鳴器響 2的時候led流水燈 但是什么反應都沒有 串口通信可以實現 但是不能時間額外的功能 #include "reg51.h" #define led P0 typedef unsigned char u8; typedef unsigned int u16; sbit ... |
| SBUF = Data; while(TI == 0); TI = 0;這些放到main()里面的while(1)最下面試試;中斷函數里面不能while(TI == 0);堵塞 |
笨笨兔 發表于 2019-2-13 08:14 其實是將數據保存在了Data這個變量了,我估計樓主重新發出去的操作是看看有沒有正確接收,調試用的吧。 |
|
1.串口接收到數據,然后根據數據內容進行蜂鳴器或者LED顯示處理后,是否需要將Data變量進行清零? 2.我們這種前后臺系統,在做延時的時候,不能直接調用DELAY這種函數的,這樣系統會死在這里很長時間的。如果此時有新的串口指令過來的話,你的MCU是無法進行處理的。 |
| 試著用字符串比較函數strcmp替代if判斷? |
| 查查波特率有無問題。 |
|
這個未必是單片機串口通信出了問題。 void tx() interrupt 4 { Data=SBUF; RI=0; SBUF=Data; while(TI==0); TI=0; } 中斷接收了數據,然后發送出去;什么時候按照你的想法處理這個數據呢? 這個中斷處理也不是很好。 |