⑴ 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里面就能自动发送