专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

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

发布时间:2011-06-28 14:05:12 文章来源:www.iduyao.cn 采编人员:星星草
串口通讯如何发送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);

接受同理
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: