找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4123|回复: 0
收起左侧

串口调试助手发出信号接收不到反馈会怎么样

[复制链接]
ID:51089 发表于 2014-9-2 16:50 | 显示全部楼层 |阅读模式


    也许用过串口调试助手的人都会觉得,它发出去了就发出去了,不管有没有回复都不影响。那你有试过只插上一根USB-串口线到电脑上,另一头让它空着么?

    助手版本:v2.2

    问题发现:本人在学习C51单片机(别说什么已经过时的废话,我就是在学),到串口这一节,试着让单片机接到指定的结尾符号时才回发反馈,否则默认为继续接收字符,然而奇怪的事情发生了,当发送了一次不带结尾符的语句之后,不管调试助手再发什么,包括带不带结束符,都不再进行消息回发,甚至看不到开发板串口接收消息的指示灯闪烁(测试后接收中断应该也是没有进入),调试很久没有发现问题到底在哪里。开始的时候以为单片机串口的机制是接收一个消息回发一个,但很快就被否定了:在发送有结尾符的正常字符串时是分开一个个字符接收的,它们最后接收到一个结束符才回送消息,却没有出现这个问题,这说明单片机收到字符不一定需要返回。

     后来又发现出问题的时候CPU的占用率非常高,甚至达到90%-100%之间居高不下,其中调试助手持续占用CPU(要知道正常情况下调试助手发送完消息后就会闲置下来的)。因此把注意力转移到助手上来。我做了个实验:把连接单片机那头串口线拔掉(可能因为驱动的关系,此时系统仍然是可以打开串口的),然后打开串口再发送字符,这时候不管发什么都会出现前述的问题。看来,跟单片机没关系,应该是调试助手发送消息后会等待反馈,至于为什么会这样,我不知道这么做有什么目的。

     证实单片机通信方式不需要反馈:用超级终端尝试验证之前的编程思路发现是可行的,(编程思路是接到字符以;号为结尾符,否则视为指令的一部分,继续等待命令传输直到接到结尾符后把收到的字符拼接成一个字符串返回),结果显示它把接到的几组字符串做了拼接才回发(即前几组字符接收后并未做回发但是不影响后续的接收,不存在问题),更证实了本次试验遇到的问题不在于单片机,而在于调试助手。




回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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