串口设置9600,N,8,1中的N表示什么意思(10分),若是“M”又代表什么意思(如果有知道的并详细说明的,我宁愿给200分),O和E代表什么意思(30分)...串行数据的第9位为1还是0能认为设定吗,如何才能读出一个第9位为1的数据帧,谁能回答这个问题,不胜感激!
解决方案 »
- 关于字符串截取的思路
- 用ActiveX控件所编写程序的移植性问题
- 请问父窗口由非激活变成激活状态会向子窗口发送消息吗
- 怎样知道鼠标移动到了菜单上?有这个消息么?
- _declspec (dllexport) int UnPacketTCPData(LPCTSTR pStrValue, UPMSG &outUpMsg)传出参数的问题吗?
- 窗口间函数调用的问题(100分,分不够再加,在线等待,谢谢!)
- 请问怎么设置LINUX中X-window的刷新频率
- _beginThread新建的线程调用MessageBox没有任何反应为什么?
- 简单问题!
- 通过代理服务器,VC怎么连接数据库
- 请问在vc中有没有知道现在正在使用哪个版本的vc的方法,是不是在vc定义有某一个宏用来判断是哪个版本的
- mci_seek如何用,请大家给个例子.
简写:"96,N,8,1"
szSettings 的有效值
baud:
11 or 110 = 110 bps
15 or 150 = 150 bps
30 or 300 = 300 bps
60 or 600 = 600 bps
12 or 1200 = 1200 bps
24 or 2400 = 2400 bps
48 or 4800 = 4800 bps
96 or 9600 = 9600 bps
19 or 19200= 19200bps
parity:
n=none
e=even
o=odd
m=
s=space
data:
5,6,7,8
StopBit
1,1.5,2
第9位不能人为设定,由串口自己算出。但可以根据这一点来组装你发送的数据,如果是偶校验,这时你传输的一字节数据中有奇数个1,如只用低七位传数据(更低也可以),根据你发送的是命令还是数据来判断置1还是0来决定第九位校验的值是0或1,从而知道你发的事什么类型的数据了
9600为串口的传输速率,一般可以为300,600,1200,2400,4800,9600,19200 ...
N代表无奇偶校验,O代表奇校验,E代表偶校验,应该没有M的选项,
8代表8个数据位;
1代表1个停止位;
你后面一个问题我也不太明白是什么意思,看看别人是否明白?
发送A1类指令,计算机串口奇偶校验位设置为高电平发送。
这个协议不是我订的,我想定协议的人一定不懂什么是奇偶校验。
TO jasonloo(师爷) :M是Mask的缩写,我不知道M设定的意义,还有一个S,Space的缩写,有谁知道是什么意思呢,分不是问题,我现在有接近4000分,一直苦于不能分给大家!
N 代表奇偶校验
值 意义
EVENPARITY Even(偶校验)//E代表偶校验
MARKPARITY Mark(标记) //Mark 指高电平
NOPARITY 无奇偶校验//0
ODDPARITY 奇
SPACEPARITY 空如果数据位为8位,串行数据第9位则是第二个字节的第一位,串行数据第9位为1还是0能认为设定吗,如果指写串口;WORD w=510; WriteFile( hComDev, &w, 2, &dwread, NULL );//设为0
b=511,WriteFile( hComDev, &w, 2, &dwread, NULL );//第9位设为1
读时
ReadFile( hComDev, &w, 2, &dwread, NULL );
if(w&128)
//第9位是1
else
//第9位是0
dcb.BaudRate =9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 0;
谢谢上面几位的回答,如果解决了问题,定有重谢!
如果校验位设为s,那么它在为没有重新设置之前第九位始终为0
如果校验位设为o,那么第九位的值是当前传送字节的奇校验值。
如果校验位设为e,那么第九位的值是当前传送字节的偶校验值。
你直接根据中断消息读取数据即可。
dcb.BaudRate =9600;
dcb.ByteSize = 8;
dcb.Parity = 0;//奇偶校验位=0
dcb.StopBits = 0;
O代表奇校验,E代表偶校验
...串行数据的第9位不能设定,它是最多8位,表示数据位.
最后一个是停止位.