社区
硬件/系统
帖子详情
RS232 串口编程 如何得到RB8的值啊
jiangkeredgirl
2008-12-09 10:46:03
现在我需要得到RB8的值 来判断收到的数据的用途
可是我能用readfile()收到数据
却不知道如何得到RB8的值啊
是标准的串口3模式,怎么设置commstate呢 以及如何得到这个RB8
谢谢
...全文
154
16
打赏
收藏
RS232 串口编程 如何得到RB8的值啊
现在我需要得到RB8的值 来判断收到的数据的用途 可是我能用readfile()收到数据 却不知道如何得到RB8的值啊 是标准的串口3模式,怎么设置commstate呢 以及如何得到这个RB8 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiangkeredgirl
2008-12-11
打赏
举报
回复
谢谢了 楼上的热心解答
我避开了 直接和间接求RB8值
目前用不上RB8值了
在windows操作系统上想得到RB8值 我目前还没找到如何得到RB8值的方法
已经结贴,并再次表示感谢
CA_HA_M
2008-12-10
打赏
举报
回复
你需要用rb8来判断数据的用途,这在单片机通讯中可能成,在上位机中是很难的,上位机通讯需要拟定通讯规约,根据接收到的字符串来判断用途,比如
FE FE 68 99 99 99 99 99 99 68 01 04
43 C3 17 35
BD
16 其中:
FE FE:用于唤醒接收
68 99 ... 99 68:帧头,其中的6个字节的99代表从站的地址
01:控制码,这个字节的8个位中,利用其中的几个位分别置1或0来表示不同的信息,如代表发送数据的是主站还是从站,数据是否是正常响应,是否有后续帧等
04:数据长度,带下划线的数据
43 C3:命令码,表示数据帧的类别或用途
17 35:响应数据
BD:校验和,从第一个68到35的累加
16:结束码
接收与发送方都按照同样的规约处理数据即可
CA_HA_M
2008-12-10
打赏
举报
回复
[Quote=引用 13 楼 jiangkeredgirl 的回复:]
1, 你需要判断的是帧数据的效验和(一个字节),以验证接收到的整帧数据是否正确.
-------------------------------------------
如何判读校验和啊 怎么知道一帧是否完整,希望从这个判断值 推出RB8值
[/Quote]
数据帧的效验和是指:发送出的一帧数据中(n个字节),其中一个字节是之前几个字节的相加或者是异或的结果,接收后,用同样的方法(相加或是异或)进行计算,计算的结果与接收到的那个字节如相符,说明接收的数据帧正确.
jiangkeredgirl
2008-12-10
打赏
举报
回复
我想的那个方式 没办法实现
现在我把希望寄托在 2个方向
1, 你需要判断的是帧数据的效验和(一个字节),以验证接收到的整帧数据是否正确.
-------------------------------------------
如何判读校验和啊 怎么知道一帧是否完整,希望从这个判断值 推出RB8值
2,按楼上朋友说的 写驱动,这对我来说 挑战性太高, 不知道如何下手
qap22
2008-12-09
打赏
举报
回复
不懂,up
zaodt
2008-12-09
打赏
举报
回复
那些驱动程序都给你做好了,你收到的就是对方发出的数据,对方发什么,你收什么。
这个,你最好自己发一些数据测试一下,以验证 WriteFile 和 ReadFile 函数的功能。
开始时,最好用 阻塞 方式,简单明了。
上边那篇文章正合适,最好认真读并做实验。
zhoujianhei
2008-12-09
打赏
举报
回复
似乎得不到校验位的值,对上层应用来说 readfile 已经够底层啦,如果想得到校验位的值估计得到驱动层中取。
jiangkeredgirl
2008-12-09
打赏
举报
回复
我以前用VC写应用程序没接触过串口编程
现在的问题是
我用readfile 收到的数据是只包含数据位吗
可不可以包含RB8(校验位)的值呢
zaodt
2008-12-09
打赏
举报
回复
楼主你以前是不是做单片机的?
在 VC++ 中读写串行口没有那么复杂,可能你还不习惯。
liviatt
2008-12-09
打赏
举报
回复
友情up 我也想知道
一条晚起的虫
2008-12-09
打赏
举报
回复
看看怎么实现的
不走驱动层好像没法得到parity bit
jiangkeredgirl
2008-12-09
打赏
举报
回复
谢谢
已经看过 而且在网上搜索了许多
死活找不到 如何判断RB8值 或是得到R8B值的代码
jiangkeredgirl
2008-12-09
打赏
举报
回复
找到了一个方法 实现了 贴出来
zaodt
2008-12-09
打赏
举报
回复
这里有一篇相关的文章,你可以先参考一下:
【使用Win32创建串口通讯程序】
http://www.vckbase.com/document/viewdoc/?id=1114
CA_HA_M
2008-12-09
打赏
举报
回复
其实你想干的工作,windows底层已经替你干了,效验位及停止位的判断均由windows完成,你需要判断的是帧数据的效验和(一个字节),以验证接收到的整帧数据是否正确.
ilovedrv
2008-12-09
打赏
举报
回复
这个r8不是51的端口寄存器吗? windows应用层得不到吧
要不你用winio试试,直接读写端口
C51单片机
RS232
通讯代码
// SM0=1, SM1=1, SM2=0,REN=1, TB8=0,
RB8
=0 TMOD = 0x20; // T1工作在模式2 TH1 = (unsigned char)(256 - (SYS_CLOCK / 16 / BAUD_RATE) / 2); TL1 = TH1; TR1 = 1; // 开启T1 ``` 3. **数据收发**:C51中...
WF-103Rb视频小车使用说明(V1.5)
- **
串口
跳线组JP5、JP6**:灵活选择MCU、
RS232
、Wi-Fi模块之间的
串口
连接。 - **8舵机接口JP3**:提供舵机控制信号,特别设计用于云台控制。 - **电机接口JP1、JP2**:分别对应不同底盘配置下的电机连接。 - **固定...
JDM PIC
编程
器的原理及应用1
综上所述,JDM PIC
编程
器的创新之处在于其巧妙地利用了
RS232
C
串口
的非典型应用,实现了无外接电源的
编程
功能,这对于嵌入式开发和产品制造提供了极大的便利。通过理解
编程
器的电路设计原理,用户可以更好地掌握其...
stm32
串口
通讯案例
STM32
串口
通讯是嵌入式开发中的基础部分,特别是在使用STM32F103RB这样的微控制器时,其强大的性能使得
串口
通信变得简单而高效。本案例主要探讨如何在STM32F103RB上实现232
串口
的发送和接收功能。 首先,我们要了解...
单片机C51
串口
程序
1. **初始化波特率**:通过设置单片机的晶振频率和波特率寄存器(如UART的Baud Rate Control Register,即SCON中的TB8和
RB8
位),来确定数据传输的速度。 2. **设置数据格式**:包括数据位数(通常5、6、7或8位)、...
硬件/系统
2,644
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章