C#串口对于1位起始位,8位数据位,1位校验位(偶),一位停止位的数据是如何发送的 10

C#中,设置了串口属性COM口,波特率9600,数据位8位,停止位1位,偶校验,与下位机协议匹配,但是总是提示通讯超时,而使用名为“串口调试程序-大傻”的串口调试助手相同... C#中,设置了串口属性COM口,波特率9600,数据位8位,停止位1位,偶校验,与下位机协议匹配,但是总是提示通讯超时,而使用名为“串口调试程序-大傻”的串口调试助手相同的设置就可以通讯,一直不明白为什么,C#中设置了串口的属性后还需要再根据设置项来做通讯程序的处理吗?比如设置了串口为偶校验,还需要在程序中收发数据的时候进行人为的数据校验吗?不是校验不是由底层硬件来执行的吗?如果需要人为校验,那么8位数据1位校验位这样的数据串口是怎样发送的?请懂C#串口操作的各位大侠解疑!

串口属性设置:

string sValue = (string)keyCom.GetValue(sName);
serialPort1.PortName = sValue;
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.Parity = Parity.Even;
serialPort1.StopBits = StopBits.One;
发送的数据:
public static byte[] TxBuf = new Byte{0x01,0x03,0x00,0x00,0x00,0x01,0x84, 0x0A};
展开
 我来答
碧血玉叶花
2015-06-14 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1730万
展开全部
用串口的模式1,是10位异步通信方式。
1起始位,8数据位,1停止位,没有奇偶校验位。
这种模式就是:8-n-1(8数据位,无奇偶校验位,1停止位)的模式。
完全符合你的要求。
--------------------
带奇偶校验位的,要用方式2或方式3。
把奇偶校验位,放到TB8上,就可以发送了,这就是偶校验。
接收的奇偶校验位,在RB8中。
--------------------
呵呵,你还用上了示波器!奢侈
你观察的很正确。
追问
你说的是51单片机串口的设置吧,我用的是计算机COM口
pc683547006
2018-12-19 · TA获得超过243个赞
知道小有建树答主
回答量:617
采纳率:59%
帮助的人:34.6万
展开全部
  1. 你要根据串口通讯协议来操作

  2. 你检查下你的SerialPort初始化的如何

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式