嗨,朋友们好
现在遇到一个难题,就是如何向串口写入数据?
如下图所示:
当我点击启动按钮的时候,要向serialport1 写入一下数据:
05H30H30H46H46H42H57H30H4DH30H
这个问题,我一直想了很久,确实不知该怎么写了。
朋友们会的,就进来聊聊,这个数据怎么通过serialport发送出去。
你每次都不给园豆,还好每次都遇到我。写个循环把“05H30H30H46H46H42H57H30H4DH30H”转换成byte[],然后直接Send就行了啊。就是每两个字符比如"05"+"H3"...把“05”转换成byte就是5吧,...
Hex有4位的也有2位的,先搞清楚是几位先
今天感冒了,快冷死我了。
你直接把代码写出来吧,我参考下,我选你为最佳答案,就是5个园豆。下次多给你一些。
@数据酷软件: 全部都是2位2位的发送,比如05H 比如30H ,这些数据全部得发给串口。
@绿绿山水:
string[] hexData = "05H30H30H46H46H42H57H30H4DH30H".Split("H".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
byte[] buffer = new byte[hexData.Length];
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = Convert.ToByte(hexData[i]);
}
H是Hex的意思,在这里是个分隔符。
@数据酷软件: 好的,谢谢你。现在发高烧了,我去,实在太难受了。
现在也是带病上班了。
1) StringSplitOptions.RemoveEmptyEntries); 这句是什么意思?
2) byte[] buffer = new byte[hexData.Length];
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = Convert.ToByte(hexData[i]);
}
这句又是什么意思?
这2句的大概意思可否给我说下,我看不懂。
@绿绿山水:
1) StringSplitOptions.RemoveEmptyEntries);
这句如果拆分完之后的数组里有空字符则丢弃。
2) byte[] buffer = new byte[hexData.Length];
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = Convert.ToByte(hexData[i]);
}
这就是把"05"、"30"这些十六进制字符转换成byte啊,然后buffer直接send给串口。
身体要紧,能缓一下就缓一下吧
@数据酷软件: 现在吃了药好多了。不像昨天难受的要死。是的缓一缓,等身体好了,再来研究下。
给了你Write有Stream得嘛,该怎么操作就怎么操作三。
还是得具体点,因为我知道串口有Write 方法,但怎么Write 我是真不知道。