找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1702|回复: 8

串口定时器通信问题

[复制链接]
发表于 2009-1-12 09:44:10 | 显示全部楼层 |阅读模式
通信端口成功打开后,我要向下位机发送询问当前状态并请求发送数据。
如果下位机在5秒有确认帧返回说明通信初始化成功,可以请求发送数据,采用一个时间间隔为2秒的定时器。
程序该怎么编写呢?
询问当前状态帧为={0xF5,0x01,0x00,0x00,0x01}
确认返回帧为={0xF5,0x02,0x00,0x00,0x02};
请求发送数据帧为={0xF5,0x03,0x00,0x00,0x03};
谢谢!
发表于 2009-1-12 23:56:51 | 显示全部楼层
在初始化的时候判断有没有成功,成功了才启动定时器!

可以在串口的回调事件函数中添加一些分支,比如收到什么内容进行什么处理!事件里面有多少字节才触发事件,或收到什么字符触发事件,这个挺方便的!
回复 顶

使用道具 举报

发表于 2009-1-13 09:42:23 | 显示全部楼层
你的问题让人无从回答:
1、通讯协议和通讯帧格式没说清楚,让人不得要领!
2、你是采用字符传送还是字节传送?
3、字符传送时加上帧结尾字符,可以利用串口回调函数正确接受!
4、如果采用字节传送,一个明显的问题是:怎样正确、完整地接受一帧数据(既不能少接受数据,也不能多接受:保持缓冲区数据的完整性!这一点和大家常用的串口助手是有本质区别的!!!)?
回复 顶

使用道具 举报

 楼主| 发表于 2009-1-13 11:08:36 | 显示全部楼层
能不能具体给个程序呢?
回复 顶

使用道具 举报

发表于 2009-1-13 21:38:32 | 显示全部楼层
兄弟啊,串口通信是最简单的.一般都有一个起始符和终止符,中间是数据.发送的时候是字符或是十六进制.如是用字符发送的:sData="~abc123*",~则表示是起始的标志符,*则表示的是终止的标志符.abc123则是要发送的数据,先配置下串口,现用ComWrt(1,sData,8);发送即可,表示是用串口1发送,数据的长度为8,一般是包括起始和终止符的,发送之后,下位机一般就会有反应的(即有数据返回的),其实说到底还是要搞清楚与下位机之间的通信协议,即数据表示的意思.

评分

参与人数 1经验 +6 收起 理由
netcreature + 6 我很赞同

查看全部评分

回复 顶

使用道具 举报

发表于 2009-1-14 09:22:48 | 显示全部楼层
多帧通讯时,还涉及帧类型,以及校验和等问题!
这关系数据的正确性和完整性。
回复 顶

使用道具 举报

发表于 2009-2-8 20:30:43 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2009-2-10 19:33:39 | 显示全部楼层
先从最简单的串口通信学起吧!上网查查看串口通信的有关资料.
回复 顶

使用道具 举报

发表于 2009-2-10 20:02:00 | 显示全部楼层
通信协议我这里倒有一个,不过是RS232转CAN通信的,比较复杂,你不一定看得明白,要的话我的上传给你!
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 01:41 , Processed in 0.046534 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表