急救:让我疯掉的RS232通信

[复制链接]
10188|41
 楼主| voidzz 发表于 2009-11-3 19:46 | 显示全部楼层 |阅读模式
今天在做一个单片机系统(简称甲)读取买来的信号采集仪(简称乙)里面数据的232通信;问题如下:
1、乙规定的数据读取命令格式为014020006016(十六进制),在计算机上用串口调试助手发这一串数据到
采集仪,可以正常返回数据;但用单片机串口发送,收不到回应数据;
2、把单片机系统和计算机连起来,计算机用串口调试助手,在计算机上可以收到单片机发的这一串
数据,通过串口调试助手给的回应数据,单片机也能正常收到;
   但就是单片机和采集仪通信不成功,咋回事呢???
疑问:
1、难道串口调试助手的发送侦和单片机的发送有区别?不会吧?
2、我晕掉了,10年也没遇到这问题!
   求大侠指点!
OneMillion 发表于 2009-11-3 20:25 | 显示全部楼层
你通过什么观测单片机和仪器通讯的 ?
说不准通讯了,你没看到,
调试助手是可以看到结果的,直观,
许世霞 发表于 2009-11-3 20:52 | 显示全部楼层
最好,好好查下硬件连接上是不是有问题呢?如果程序没问题的话
itelectron 发表于 2009-11-3 22:05 | 显示全部楼层
偶也 基本 和许MM的感觉 一样 先查硬件 吧 .用示波器  看看
ejack 发表于 2009-11-4 07:52 | 显示全部楼层
10年了……请允许我称呼你一声:大葛格

1.上示波器,校验波形?
2.命令子串的间隔?采集仪的处理时间?
itelectron 发表于 2009-11-4 07:55 | 显示全部楼层
本帖最后由 itelectron 于 2009-11-4 07:58 编辑

我是说 用示波器 看有 波不  而不是用示波器看 具体的波形!!

用示波器  最起码  可以 看到  TX  和RX  是否 有波
zhaoyu2005 发表于 2009-11-4 08:21 | 显示全部楼层
既然都和PC能通讯,说明两者是终端,端口不能一一对应连接,需要首发交叉下,也就是得换线或者用跳线改变。
LZ是不是直接用一根线测得?要是得话,自己面壁去
xwj 发表于 2009-11-4 08:32 | 显示全部楼层
呵呵,这种情况我碰到过

原因是通讯的两个设备存在波特率误差和时序误差,而电脑对此不敏感,对方的设备却要求很严格,某些数据会出错

最后仔细调整时序后解决
救火车 发表于 2009-11-4 08:49 | 显示全部楼层
我认为硬件原因的可能性大。
1、RXD-TXD应交叉连接
2、确认232两侧都是标准的232芯片。如果是三极管搭的232电路可能会有问题。
与时俱进 发表于 2009-11-4 08:56 | 显示全部楼层
RS232公的和母的才能对上。
电脑是公的,甲和乙都能跟电脑对上,说明甲乙都是母的,那么甲乙之间就对不上了。哈哈哈!
与时俱进 发表于 2009-11-4 08:59 | 显示全部楼层
有时候是电平问题,有些设备要求得不严格;
有时候是速率的问题,有些设备要求得不严格。
alexqq 发表于 2009-11-4 09:06 | 显示全部楼层
这个问题太好解决了,使用我们开发的串口监视分析仪,把PC的收发数据和单片机的收发数据都抓下来,一对比马上知道结果.你用PC正常,那么你只要看看单片机的数据少些什么多些什么就OK了.不占用PC串口.先打开我们的软件再开串口助手.

串口监视分析仪comspy V0.8试用版
http://www.armecos.com/freedown/ ... good/comspy-v08.rar
desert_hawk 发表于 2009-11-4 09:12 | 显示全部楼层
1. TX与RX交叉连接。
2. 通讯双方要共地。
3. 排除波特率误差。
4. 确认通讯双方的232接口都是有源的,而不是从电脑串口取电的。
alexqq 发表于 2009-11-4 09:13 | 显示全部楼层
**设备协议专用,极其强大,工程师必备开发工具。
**串口协议。有些设备需要升级/降低成本,但是苦于厂商没有开放通信协议,比如:门禁、UPS和精密空调、PLC、手机烧写/读写操作、称重仪、液相色谱仪(分析三聚氰氨含量)、云台等等都是串口控制的,没有协议资料的情况下,就必须通过技术手段得到原始数据进行分析研究,有些设备的串口波特率是跳变的,大大增加了**难度,而使用本软件将易如反掌,不需要额外硬件连线,不需要特制插头,纯软件解决.
www.armecos.com
emailli 发表于 2009-11-4 09:28 | 显示全部楼层
XWJ说的情况我也遇到过

电脑对波特率误差不是很敏感。

而设备或者单片机就不一定了
emailli 发表于 2009-11-4 09:28 | 显示全部楼层
降低波特率先试试。这样可以提高容错度
huangqi412 发表于 2009-11-4 09:36 | 显示全部楼层
LS的这也卖钱?似乎偶有用免费的哦...
xlsbz 发表于 2009-11-4 09:39 | 显示全部楼层
串口也不容易啊!!!都没有容易的菜吃啊!!:P
暮然 发表于 2009-11-4 10:04 | 显示全部楼层
在单片机和计算机通信后,没有对调接收、发送,当然是不能通信的。
就是 与时俱进 所说的,两母的能通信吗?

如果不是上述情况,很大可能就是单片机的串口性能不好,同样的波形,不通的单片机,有的能通信,有的不能通信。这种情况估计很多人都遇到过。
5880527 发表于 2009-11-4 10:10 | 显示全部楼层
既然只是因为波特率有细微差距,那你就加一段小程序,波特率所使用的那个定时器初始值从00H开始,每过一固定时间就自动加1,这样到某个值它就肯定能正常接收,你把这个值用某种方式观察到记录下来就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部