![]() |
發布時間: 2023-8-30 09:40
正文摘要:①我用的是STC8G1K08單片機; ②目的:按下并松開按鍵(完成一次完整的按鍵動作)后,向電腦屏幕發送準備好的數組; ③數組:0x01~07 和 0x07~01 兩個數組 ④出現的問題:發送的數據不全,屏幕顯示 01 06 05 04 0 ... |
lkc8210 發表于 2023-8-30 16:58 竟然還有這中情況嗎?給SBUF賦值完8位數據后,TI并不會馬上置1是嗎?while(F_T1_OK)就是限制程序將Ce_Arry1( );全部賦值給SBUF后,才執行Ce_Arry2( );嗎? |
謝謝,這行while語句直接救命!我是這樣理解這段代碼的,SBUF = T1BUF[0]這行代碼就是開啟串口1發送中斷-->TI = 1,既然進入了串口中斷,不應該是把剩下的0x2-6逐一賦值給SBUF嗎?可是現實執行效果是直接跳出了中斷,執行了第二個S1OUT( ),請問可以告訴我哪里考慮有誤嗎?還有while(F_T1_OK)沒有語句塊,為啥可以跳出循環呀,可以解釋一下嗎嗎? |
Hephaestus 發表于 2023-8-30 14:30 我的理解是S1OUT( );中,F_T1_OK=1,之后進入串口1發送中斷,直到將測試數組1全部發完,如果不是這樣考慮的話,請問該往哪個方向想? |
邏輯時序混亂。 |
我想要的效果是按下按鍵后,顯示屏顯示:01 02 03 04 05 06 07 07 06 05 04 03 02 01 ,但是現實效果卻是01 06 05 04 03 02 01,而且開頭的01還是測試數組1的 0x01,不知道哪里出錯了。。。 |