作者:彩红症-患者 | 来源:互联网 | 2023-05-19 04:38
使用SerialPort.Write()发送16进制数,总是会被当做ASCII字符发送,比如发送0xFA,实际发送F和A的ASCII代码,如何能发送1111,1010,求高手路过给予指点
使用SerialPort.Write()发送16进制数,总是会被当做ASCII字符发送,比如发送0xFA,实际发送F和A的ASCII代码,如何能发送1111,1010,求高手路过给予指点
10 个解决方案
串口的模式有binary和ASCII,在哪里找,取决于你用的什么方法。是API还是控件之类的,搜一下你用的技术加上关键字binary。
u8 data = 0xFA;
串口发送data即可;
硬件并不知道你加载的是什么。实际上是你的软件对数据的处理造成的。
byte[] txBuf = new byte[8];
txBuf[0] = 0x01;
txBuf[1] = 0x03;
txBuf[2] = 0x00;
txBuf[3] = 0x01;
txBuf[4] = 0x00;
txBuf[5] = 0x08;
txBuf[6] = 0x15;
txBuf[7] = 0xCC;
this.SerialPort.Write(txBuf, txBuf.Length);