社区
VB基础类
帖子详情
求助:使用MSCOMM控件进行串口通信,如何更改奇偶位?
lanyeyu
2004-05-04 10:10:12
使用VB的MSCOMM控件实现与单片机串口通信,初始的SETTING属性要将奇偶位设定为1,以传送地址码,应怎样设置?
其后,若回应地址正确,要将奇偶位设为0,以传送数据码,又应如何设置?
请各位高手不吝指教,万分感谢!
...全文
367
5
打赏
收藏
求助:使用MSCOMM控件进行串口通信,如何更改奇偶位?
使用VB的MSCOMM控件实现与单片机串口通信,初始的SETTING属性要将奇偶位设定为1,以传送地址码,应怎样设置? 其后,若回应地址正确,要将奇偶位设为0,以传送数据码,又应如何设置? 请各位高手不吝指教,万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Wenking003
2004-05-05
打赏
举报
回复
谢谢lanyeyu (阑夜雨)的说明,这使我了解到大家在解决问题时所采用的各种各样的方法,真是多姿多彩!
你这里所采用的方式,对于设备的寻址是有很高的效率,可以最多驱动达256个设备。
我们在实际工作中,也需要通过串口对很多的设备进行控制,包括有级联的,所以我们采用数据包的方式进行通讯,包中包括:地址码+数据体+校验。这种做法不如你采用的方法的效率高,但采用的方法比较标准,容易扩展,(在软件方面)对设备的数量没有太多的限制,推荐你参考。
在上述的问题中,通过更改setting,只是更改了校验位,其它并没有改变,这不是你所需要的吗?
在我的试验中,我并不需要关闭串口,就可以实现setting的改变,而且接收的结果随之而变(由于条件所限我只能做接收的调整),希望大家指点,我也在学习中......
lanyeyu
2004-05-05
打赏
举报
回复
明白了~非常感谢各位的指教~
以后有问题我还需要向大家多多请教的:)
再次感谢!
jautomn
2004-05-04
打赏
举报
回复
如果MSCOMM1打开的情况下更改会出错。
在MSCOMM关闭的情况下可以进行更改
偶校验:
MSCOMM1.PORTOPEN=FALSE
mscomm1.setting="9600,e,8,1"
MSCOMM1.PORTOPEN=TRUE
奇校验:
MSCOMM1.PORTOPEN=FALSE
mscomm1.setting="9600,O,8,1"
MSCOMM1.PORTOPEN=TRUE
Wenking003
2004-05-04
打赏
举报
回复
1、MSCOMM的奇偶校验值包括如下:
设置值 描述
E 偶数 (Even)
M 标记 (Mark)
N 缺省 (Default)
None
O 奇数 (Odd)
S 空格 (Space)
例子:偶校验:mscomm1.setting="9600,E,8,1"
奇校验:mscomm1.setting="9600,O,8,1"
可以随时更改。
2、我想请教的是:为何在一个通讯过程中,要变换通讯的属性?是什么原因?
lanyeyu
2004-05-04
打赏
举报
回复
谢谢楼上两位:)
回文君:通信过程中需要更改通信属性的原因引用如下:
“我们要进行单片机的多机通讯,可以使用奇偶校验位来模拟设置数据帧中的第9位。因为Settings中的“P”可以设为5种值:E(偶校验),M(标记),N(无校验),O(奇校验),S(空格),一般PC机作为多机通讯系统的命令发起者,只需要模拟实现多机通讯地址位bit8的发送,而不需要考虑该位的接收,这样我们可以使用奇校验(O)或偶校验(E)来模拟设置数据帧中的第9位,我们只要使用校验位是1的数值作为地址帧,而校验位是0的数值作为数据帧,这样能使用的从机地址有限,只有128个,而且数据位(控制指令)也有限,且不能和地址码重复,所以这种方法只适用于从机个数少,控制指令少的情况。使用这种方法的好处是在程序中不用变换MSCOMM控件属性的设置。”
所以需要更改奇偶位,以求使单片机判定发送的是地址码还是数据码。可是我还有一点不明白的是,上文最后一句说明“不用变换MSCOMM控件属性的设置”,但按照两位提供的方法却是已将其SETTING属性更改。有没有更简便的方法把奇偶位从“0”改成“1”呢?我听说VC中使用MSCOMM的话,是有一个办法可以直接将奇偶位置1或置0,而不需要重新设定SETTING的。请问VB里有没有这个功能呢?
MS
Com
m
控件
使用
详情
MS
Com
m
控件
使用
说明及参数定义 2.MS
Com
m
控件
的常用属性 MS
Com
m
控件
有很多重要的属性,但首先必须熟悉几个属性。
Com
mPort 设置并返回通讯端口号。 Settings 以字符串的形式设置并返回波特率、
奇偶
校验、数据
位
、...
visual C++_Turbo C
串口通信
编程实践
3.2.7 在MS
Com
m
控件
串口编程时遇到的其它问题说明 3.3在基于单文档(SDI)程序中应用MS
Com
m
控件
3.4应用MS
Com
m
控件
控制多个串口实例 第4章 Windows API串口编程 4.1 Windows API串口编程概述 4.2 API串口...
Visual C++
串口通信
技术详解.(机械工业.李景峰.杨丽娜.潘恒)
书中精选来自工程实践的应用范例,主要涵盖
串口通信
的理论基础、Visual c++集成开发环境简介、MS
Com
m
控件
串口编程、Windows API串口编程、TAPI通信编程、串口实现双机互连、串口调试精灵、串口控制Modem设备、串口...
Visual C++/Turbo C
串口通信
编程实践及源代码-3
3.2.6 在ms
com
m
控件
串口编程时遇到的其他问题 63 3.3 在基于单文档(sdi)程序中应用ms
com
m
控件
63 3.4 应用ms
com
m
控件
控制多个串口实例 69 3.5 串口与modem拨号应用简例 76 3.5.1 创建工程 76 3.5.2 代码分析 ...
Visual C++_Turbo C
串口通信
编程实践.(电子工业.龚建伟.熊光明) 第二版 电子版
3.2.6 在MS
Com
m
控件
串口编程时遇到的其他问题 63 3.3 在基于单文档(SDI)程序中应用MS
Com
m
控件
63 3.4 应用MS
Com
m
控件
控制多个串口实例 69 3.5 串口与MODEM拨号应用简例 76 3.5.1 创建工程 76 3.5.2 代码分析 78 ...
VB基础类
7,759
社区成员
197,606
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章