tigeroser 发表于 2014-6-27 16:49:35

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

定义一个字符串RxBuf[]                       
                                                Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                                                Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);

                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
                          Print_Char(RxBuf);
给单片机发送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

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

dlmaowf 发表于 2014-6-27 17:19:28

Print_Char函数是什么样的?

tigeroser 发表于 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;               //开串口中断
}

yu_studio 发表于 2014-6-27 17:41:20

什么也不发,为什么会有接收?

tigeroser 发表于 2014-6-27 18:14:55

yu_studio 发表于 2014-6-27 17:41
什么也不发,为什么会有接收?

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

墨非 发表于 2014-6-27 18:42:34

1、PC是用什么串口工具啊? 有些工具有发送新行选项, 不小心勾上了吧 ?
2、 每次单片机接收之前 把buf 清零一下看看?

ibichao 发表于 2014-6-27 18:43:24

本帖最后由 ibichao 于 2014-6-27 18:44 编辑

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

LCRPN 发表于 2014-6-27 19:02:49

可能是你在发送框里面不小心按了一个回车,后来没有删掉,没有其他字符的话是看不出来的,你可以把光标下移,会发现有两行。

dlmaowf 发表于 2014-6-27 19:42:57

用的串口调试软件是什么样的?

dlmaowf 发表于 2014-6-27 19:43:28

先用两个串口连接起来呢,查看一下计算机发出来的到底是什么

tigeroser 发表于 2014-6-27 20:26:09

yu_studio 发表于 2014-6-27 17:41
什么也不发,为什么会有接收?

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

tigeroser 发表于 2014-6-27 20:28:31

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

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

tigeroser 发表于 2014-6-27 20:31:40

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

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

dlmaowf 发表于 2014-6-27 21:03:12

还有这么邪门的事情,用的是这个串口调试助手么?

xiaolaba 发表于 2014-6-28 09:47:59


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

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

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

xiaolaba 发表于 2014-6-28 09:48:46

dlmaowf 发表于 2014-6-27 21:03
还有这么邪门的事情,用的是这个串口调试助手么?

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

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

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

墨非 发表于 2014-6-28 10:36:38

dlmaowf 发表于 2014-6-27 21:03
还有这么邪门的事情,用的是这个串口调试助手么?

个人感觉是PC机工具的问题,换个串口工具试试,推荐SSCOM 记得取消“发送新行”,再不行就用串口抓包工具 抓包看看串口工具究竟发送了什么数据?
如果排除了PC机发送的问题,就得仔细看看单片机程序了,不介意的话,可以贴完整的程序出来给各位看看呗!
页: [1]
查看完整版本: 发现串口助手问题: 随意发送0D 0A回车换行 ???