当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,