搜索
bottom↓
回复: 16

发现串口助手问题: 随意发送0D 0A回车换行 ???

[复制链接]

出0入0汤圆

发表于 2014-6-27 16:49:35 | 显示全部楼层 |阅读模式
定义一个字符串RxBuf[]                       
                                                  Print_Char(RxBuf[0]);
                          Print_Char(RxBuf[1]);
                          Print_Char(RxBuf[2]);
                          Print_Char(RxBuf[3]);
                          Print_Char(RxBuf[4]);
                          Print_Char(RxBuf[5]);
                          Print_Char(RxBuf[6]);
                                                  Print_Char(RxBuf[7]);
                          Print_Char(RxBuf[8]);
                          Print_Char(RxBuf[9]);

                          Print_Char(RxBuf[10]);
                          Print_Char(RxBuf[11]);
                          Print_Char(RxBuf[12]);
                          Print_Char(RxBuf[13]);
                          Print_Char(RxBuf[14]);
                          Print_Char(RxBuf[15]);
给单片机发送ABC不加回车,单片机接收:41 42 43 0D 0A 0D 0A 0D 0A 0D 0A 00 00 00 00 00
。。。。。。。。加回车    单片机接收:  41 42 43 0D 0A 0D 0A 0D 0A 0D 0A 00 00 00 00 00
什么也不发送               单片机接收:0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 00 00

神马个情况???虽然不影响接收的有用数据

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-6-27 17:19:28 | 显示全部楼层
Print_Char函数是什么样的?

出0入0汤圆

 楼主| 发表于 2014-6-27 17:34:47 | 显示全部楼层
dlmaowf 发表于 2014-6-27 17:19
Print_Char函数是什么样的?

void Print_Char(unsigned char ch)         
{
    ES = 0;               //关串口中断
    SBUF = ch;
    while(TI!=1);         //等待发送完成
    TI = 0;                       ES = 1;               //开串口中断
}

出0入0汤圆

发表于 2014-6-27 17:41:20 | 显示全部楼层
什么也不发,为什么会有接收?

出0入0汤圆

 楼主| 发表于 2014-6-27 18:14:55 | 显示全部楼层
yu_studio 发表于 2014-6-27 17:41
什么也不发,为什么会有接收?

接按一下发送按键,就能接收到2个回车,搞不懂什么情况

出0入25汤圆

发表于 2014-6-27 18:42:34 | 显示全部楼层
1、PC是用什么串口工具啊? 有些工具有发送新行选项, 不小心勾上了吧 ?
2、 每次单片机接收之前 把buf 清零一下看看?

出0入4汤圆

发表于 2014-6-27 18:43:24 | 显示全部楼层
本帖最后由 ibichao 于 2014-6-27 18:44 编辑

可能上位机自动加了0d,0a

出0入0汤圆

发表于 2014-6-27 19:02:49 | 显示全部楼层
可能是你在发送框里面不小心按了一个回车,后来没有删掉,没有其他字符的话是看不出来的,你可以把光标下移,会发现有两行。

出0入0汤圆

发表于 2014-6-27 19:42:57 | 显示全部楼层
用的串口调试软件是什么样的?

出0入0汤圆

发表于 2014-6-27 19:43:28 | 显示全部楼层
先用两个串口连接起来呢,查看一下计算机发出来的到底是什么

出0入0汤圆

 楼主| 发表于 2014-6-27 20:26:09 | 显示全部楼层
yu_studio 发表于 2014-6-27 17:41
什么也不发,为什么会有接收?

是的,在上位机的发送框内点回车 和不点回车只会多接收个0D 0A

出0入0汤圆

 楼主| 发表于 2014-6-27 20:28:31 | 显示全部楼层
LCRPN 发表于 2014-6-27 19:02
可能是你在发送框里面不小心按了一个回车,后来没有删掉,没有其他字符的话是看不出来的,你可以把光标下移 ...

我试过了,打开串口调试助手,发送框内有个网址,
1----把这些内容删掉,什么也不发
2---把这些内容删掉,按一下回车
这两种情况下,都能接收到0D 0A只是按回车的多接收了一个0D 0A而已

出0入0汤圆

 楼主| 发表于 2014-6-27 20:31:40 | 显示全部楼层
墨非 发表于 2014-6-27 18:42
1、PC是用什么串口工具啊? 有些工具有发送新行选项, 不小心勾上了吧 ?
2、 每次单片机接收之前 把buf 清 ...

1---用的是常用的,图标是串口正面(9针)的那个
2---每次都清零,发送区内各种情况都试过了

出0入0汤圆

发表于 2014-6-27 21:03:12 | 显示全部楼层
还有这么邪门的事情,用的是这个串口调试助手么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-28 09:47:59 | 显示全部楼层

那是默認發送 ASCII 給你看, 自動換行的結果

選用16進制發送會解決嗎 ?

不行就換另外的 傳口調試軟件
俺用這個純軟件的, 不用 硬件的邏輯分析儀
http://www.sudt.com/cn/index.html

出0入0汤圆

发表于 2014-6-28 09:48:46 | 显示全部楼层
dlmaowf 发表于 2014-6-27 21:03
还有这么邪门的事情,用的是这个串口调试助手么?

那是默認發送 ASCII 給你看, 自動換行的結果

選用16進制發送會解決嗎 ?

不行就換另外的 傳口調試軟件
俺用這個純軟件的, 不用 硬件的邏輯分析儀
http://www.sudt.com/cn/index.html

出0入25汤圆

发表于 2014-6-28 10:36:38 | 显示全部楼层
dlmaowf 发表于 2014-6-27 21:03
还有这么邪门的事情,用的是这个串口调试助手么?

个人感觉是PC机工具的问题,换个串口工具试试,推荐SSCOM 记得取消“发送新行”,再不行就用串口抓包工具 抓包看看串口工具究竟发送了什么数据?
如果排除了PC机发送的问题,就得仔细看看单片机程序了,不介意的话,可以贴完整的程序出来给各位看看呗!  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 02:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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