51單片機的SBUF怎麼一次性寫入兩個位元組?
你可能遇到了"臨界區"的問題。X
再詳細描述一下應用場景。
@0零妖1,你怎麼把添加的說明寫到評論上了?
可以發多個字元啊!不是多個位元組!
如
char *px="hello";//定義五個字元,最後自動添加一個 , 是ascii表中第一個值,真實內存中的值是0b00000000。
Send_Str1(px);//發送"hello"五個ascii碼值,
你這個Send_Str1(px)永遠是不會發送 的,它是用於最後while判斷結束條件的。
!!串口有文本模式和二進位模式。!!
C語言定義的字元串中的每個字元不能是 ,因 已經作為結束標誌。
可以修改Send_Str1()函數中利用判斷數組長度來表示發送結束,就可以什麼都可以發送了。
SBUF在設計上只允許一次性寫入一個位元組,不可能寫入兩個位元組。如果要傳輸多個位元組的數據,可以在發送完成中斷裡面寫一些業務邏輯,參考下面代碼。