⑴ c# 串口通信 多條字元串循環發送的問題
多線程自然是要用的,否則界面就死鎖。
原理很簡單,把要發的數據存成結構化數組,開一個線程發送;接收是用SerialPort的接收事件。
有一些優秀的串口軟體,像格西烽火等,你也可以參考一下。
⑵ 按鍵按一下發送一個數據,長按重復發送數據,這個怎麼寫哪個高手指點下,c語言。
我可能想法比較簡單:
while(key_value == 按下)
{
//發送串口命令
delay(幾十毫秒)
}
⑶ 單片機串口分別三次向VB上位機發送數組數據
第一,你要解決數據是否同步的問題。電腦的頻率比單片機的時鍾頻率快很多,所以串列通信選擇同步傳輸。當單片機發送完數組的第一個數據,上位機接收到這個數據後發送一個應答信號給單片機,然後單片機收到應答信號接著發送第二個數據給上位機,以此類推(應答信號的具體數值是你的通訊協議定義的)
第二,你的vb要添加MSComm控制項,參考文章
http://wenku..com/linkurl=gaBSjBHSDk9b_THl3f1XYPtpRZgpIt6wczgHWXe_h_1q8ICdfPRP_Q-Fq4JLsbT_r_D8gzTRs_-sa9956OHq0XD9ahbc6sa4d-_omQVAlXG
控制項MSComm的接收數據程序:
Private Sub MSComm1_OnComm()
Dim indata As Variant
Dim bte(0) As Byte
Select Case MSComm1.CommEvent
Case 2
indata = MSComm1.Input
bte(0) = AscB(indata)
If bte(0) = 數組的第一個數值
Then MSComm1.Output = 應答信號1
text1.text=bte(0)
end if
If bte(0) =數組的第二個數值 Then MSComm1.Output =應答信號2
text2.text=bte(0)
end if
If bte(0) =數組的第三個數值 Then MSComm1.Output =應答信號3
text3.text=bte(0)
end if
MSComm1.OutBufferCount = 0
End Select
End Sub
⑷ 怎麼樣通過51單片機串口一次發送3個16進制數據
配置好串口,然後寫到SBUF裡面就能自動發送