VB2010串口 发送一个字节数据

VB2010串口 发送一个字节数据,第1张

1)问题的原因:你用的发送方法有问题。

由于SerialPort.Encoding默认值为System.Text.ASCIIEncoding,即发送和接收都按ASCII码处理,而方法 SerialPort.Write(String strData)发送的字符串中的每个字符都被当成ASCII码处理了。ASCII是一种七位的编码,所以你收到的值 00~7F。

2)解决方法:

使用SerialPort.Write(Byte[], Int32, Int32)发送数据

使用SerialPort.Read Method (Byte[], Int32, Int32) 或者 ReadByte() 接收数据

当往 SBUF写入1个八位数据时,启动发送 *** 作,数据从TXD端实现异步发送。发送完一帧数据后自动置TI=1,请求中断。要继续发送时,TI清零便可。

你可以自己写一个连续发送的函数:只要发送前9个数据后,TI清零就成。

或者写一个一次之功能发送一个字节的函数,然后利用循环调用前面的函数,实现10个数据的发送。。。

大多数情况都用后者吧。。。

传输过程是一位一位的二进制进行传输,传输完一个字节才会产生中断或者事件。

所以从编程角度上看,是一整个字符进行传输的。

从物理信号层面看,还是一位一位传输的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10001322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存