首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

串口通讯怎么发送9位的数据位

2012-02-28 
串口通讯如何发送9位的数据位我要向单片机发送的数据,数据位包含9位的数据位应该如何发送,用户什么方式啊?

串口通讯如何发送9位的数据位
我要向单片机发送的数据,数据位包含9位的数据位应该如何发送,用户什么方式啊?
有没有什么控件可以做到?
9位数据位,不包括停止位,校验位的

[解决办法]
那就发 16 位吧,分两次发即可

自己处理一下协议
[解决办法]
这是不可能的,
UART协议只支持8位发送。
RS232接口的驱动都是硬件实现的,
软件改不了的。
[解决办法]
分两次发。

不然可以参考

http://www.cqvip.com/onlineread/onlineread.asp?ID=15314846#

好像是借用奇偶校验位
[解决办法]
发送数据是以字节为单位的。。你怎么可能一次发 9 个 bits 呢???
分两次发吧。。。
[解决办法]

探讨
发送数据是以字节为单位的。。你怎么可能一次发 9 个 bits 呢???
分两次发吧。。。

[解决办法]
可以发9位数据,8个数据为,第九位是校验位,校验位有4个状态可设置,基校验,偶校验,总为1,总为0,
你条件它总为1和总为0就可以实现9位数据了!
这个以前在做PC与MCU多机通讯中用过,用第9位来对应MCS-51的SM2位。

[解决办法]
用9个字节传送8个数据,前8个字节是8个低8位,最高位第9字节发,
或者反过来,先发最高位。
[解决办法]

根据楼主的这个情况建议用API来操作串口,具体API怎么操作串口可以自己上网查查

我把主要部分写出来

//第9位为0
m_dcb.Parity = MARK
SetCommState(hCom,&m_dcb);
WriteFile(hCom,buf,1,&SendLen,0);

//第9位为1
m_dcb.Parity = SPACE
SetCommState(hCom,&m_dcb);
WriteFile(hCom,buf,1,&SendLen,0);

接受同理

热点排行