vb.net 用serialport发送8位的二进制码,像01010101
如题,我用pc向单片机发控制指令,单片机的寄存器存一位,0或1,用来调节输出高低电平。但是我用
write = &H8D
SerialPort1.Write(write)
想输出10001101这8位给单片机。单片机没有反应啊 --------------------编程问答-------------------- 传输协议呢?没有握手直接发送? --------------------编程问答-------------------- 握手是什么?我是菜鸟,还请大哥指教。
就是要发字节数组,但是那个原理不是很清楚。。
我试了个这个
Dim send_(8) As Byte
send_(0) = 0
send_(0) = 1
send_(0) = 0
send_(0) = 0
send_(0) = 0
send_(0) = 1
send_(0) = 0
send_(0) = 0
SerialPort1.Write(send_, 0, 8)
那单片机分别接收到的就是01000100这8位吗? --------------------编程问答-------------------- 想输出10001101这8位给单片机
write = &H8D
SerialPort1.Write(write)
这个方法的对的。
下面的方法是错的:
Dim send_(8) As Byte
send_(0) = 0
send_(0) = 1
send_(0) = 0
send_(0) = 0
send_(0) = 0
send_(0) = 1
send_(0) = 0
send_(0) = 0
SerialPort1.Write(send_, 0, 8)
握手协议的意思是:在保证硬件连接正确,串口打开的情况下,你先向单片机发送一个请求命令(例如:你的8
d,或许就是干这个的),单片机向你回复一个状态,表示收到,这个就是基本的握手协议了。
如果你的单片机有握手协议的话,必须经过握手命令,达成协议后,才能传送数据。 --------------------编程问答-------------------- 另外,VB的帖子为什么发到C#区了。
试试下面的办法。VB已经不熟了。
Dim send_(1) As Byte
send_(0) = &H8D
SerialPort1.Write(send_, 0, 1)
补充:.NET技术 , C#