打印

急救:让我疯掉的RS232通信

[复制链接]
8722|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的感觉 一样 先查硬件 吧 .用示波器  看看

使用特权

评论回复
5
ejack| | 2009-11-4 07:52 | 只看该作者
10年了……请允许我称呼你一声:大葛格

1.上示波器,校验波形?
2.命令子串的间隔?采集仪的处理时间?

使用特权

评论回复
6
itelectron| | 2009-11-4 07:55 | 只看该作者
本帖最后由 itelectron 于 2009-11-4 07:58 编辑

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

用示波器  最起码  可以 看到  TX  和RX  是否 有波

使用特权

评论回复
7
zhaoyu2005| | 2009-11-4 08:21 | 只看该作者
既然都和PC能通讯,说明两者是终端,端口不能一一对应连接,需要首发交叉下,也就是得换线或者用跳线改变。
LZ是不是直接用一根线测得?要是得话,自己面壁去

使用特权

评论回复
8
xwj| | 2009-11-4 08:32 | 只看该作者
呵呵,这种情况我碰到过

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

最后仔细调整时序后解决

使用特权

评论回复
9
救火车| | 2009-11-4 08:49 | 只看该作者
我认为硬件原因的可能性大。
1、RXD-TXD应交叉连接
2、确认232两侧都是标准的232芯片。如果是三极管搭的232电路可能会有问题。

使用特权

评论回复
10
与时俱进| | 2009-11-4 08:56 | 只看该作者
RS232公的和母的才能对上。
电脑是公的,甲和乙都能跟电脑对上,说明甲乙都是母的,那么甲乙之间就对不上了。哈哈哈!

使用特权

评论回复
11
与时俱进| | 2009-11-4 08:59 | 只看该作者
有时候是电平问题,有些设备要求得不严格;
有时候是速率的问题,有些设备要求得不严格。

使用特权

评论回复
12
alexqq| | 2009-11-4 09:06 | 只看该作者
这个问题太好解决了,使用我们开发的串口监视分析仪,把PC的收发数据和单片机的收发数据都抓下来,一对比马上知道结果.你用PC正常,那么你只要看看单片机的数据少些什么多些什么就OK了.不占用PC串口.先打开我们的软件再开串口助手.

串口监视分析仪comspy V0.8试用版
http://www.armecos.com/freedown/ ... good/comspy-v08.rar

使用特权

评论回复
13
desert_hawk| | 2009-11-4 09:12 | 只看该作者
1. TX与RX交叉连接。
2. 通讯双方要共地。
3. 排除波特率误差。
4. 确认通讯双方的232接口都是有源的,而不是从电脑串口取电的。

使用特权

评论回复
14
alexqq| | 2009-11-4 09:13 | 只看该作者
**设备协议专用,极其强大,工程师必备开发工具。
**串口协议。有些设备需要升级/降低成本,但是苦于厂商没有开放通信协议,比如:门禁、UPS和精密空调、PLC、手机烧写/读写操作、称重仪、液相色谱仪(分析三聚氰氨含量)、云台等等都是串口控制的,没有协议资料的情况下,就必须通过技术手段得到原始数据进行分析研究,有些设备的串口波特率是跳变的,大大增加了**难度,而使用本软件将易如反掌,不需要额外硬件连线,不需要特制插头,纯软件解决.
www.armecos.com

使用特权

评论回复
15
emailli| | 2009-11-4 09:28 | 只看该作者
XWJ说的情况我也遇到过

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

而设备或者单片机就不一定了

使用特权

评论回复
16
emailli| | 2009-11-4 09:28 | 只看该作者
降低波特率先试试。这样可以提高容错度

使用特权

评论回复
17
huangqi412| | 2009-11-4 09:36 | 只看该作者
LS的这也卖钱?似乎偶有用免费的哦...

使用特权

评论回复
18
xlsbz| | 2009-11-4 09:39 | 只看该作者
串口也不容易啊!!!都没有容易的菜吃啊!!:P

使用特权

评论回复
19
暮然| | 2009-11-4 10:04 | 只看该作者
在单片机和计算机通信后,没有对调接收、发送,当然是不能通信的。
就是 与时俱进 所说的,两母的能通信吗?

如果不是上述情况,很大可能就是单片机的串口性能不好,同样的波形,不通的单片机,有的能通信,有的不能通信。这种情况估计很多人都遇到过。

使用特权

评论回复
20
5880527| | 2009-11-4 10:10 | 只看该作者
既然只是因为波特率有细微差距,那你就加一段小程序,波特率所使用的那个定时器初始值从00H开始,每过一固定时间就自动加1,这样到某个值它就肯定能正常接收,你把这个值用某种方式观察到记录下来就可以了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝