打印
[STM8]

windows自带的超级终端与Comdebug的差异

[复制链接]
2030|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oldpig|  楼主 | 2015-4-12 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同样的STM8 UART1练习程序(如果STM8从UART1接受到字符1或2,则LED灯分别按不同的频率闪烁,且发送某个字符串;如果接受到其他字符则什么也不做),用Comdebug调试一切正常,但用WinXP自带的超级终端则无任何反应。超级终端的波特率,数据位,停止位,校验位,数据流控制方式等已设置无误,请帮忙看看会有哪些原因导致这个问题?
沙发
mmuuss586| | 2015-4-12 22:22 | 只看该作者

用串口监控或者示波器看下,有啥差异;

使用特权

评论回复
板凳
oldpig|  楼主 | 2015-4-14 15:51 | 只看该作者
谢谢。我又试了下,让STM8不停地发字符8,结果Comdebug收到的是字符8,但WinXP超级终端收到的一直是笑脸字符(我打不出来,抱歉)。由此我怀疑是超级终端的字符编码集设置问题,可是我把超级终端提供的编码集都试了也没解决...

使用特权

评论回复
地板
lei129210| | 2015-4-14 16:12 | 只看该作者
oldpig 发表于 2015-4-14 15:51
谢谢。我又试了下,让STM8不停地发字符8,结果Comdebug收到的是字符8,但WinXP超级终端收到的一直是笑脸字 ...

超级中断显示的ascii码。

使用特权

评论回复
5
oldpig|  楼主 | 2015-4-15 19:05 | 只看该作者
对。可是我应该怎样才能在超级终端里看到发送的字符'8'呢?

使用特权

评论回复
6
后会无期1| | 2015-4-15 19:22 | 只看该作者
还真没有设置过超级终端的字符编码集,同问

使用特权

评论回复
7
oldpig|  楼主 | 2015-6-4 19:22 | 只看该作者
这两天用FT232RL做了个USB转虚拟串口,上述问题居然解决了...可还是不知道问题的原因,郁闷

使用特权

评论回复
8
icecut| | 2015-6-4 20:16 | 只看该作者
你助手发的是hex?

使用特权

评论回复
9
oldpig|  楼主 | 2015-6-7 20:23 | 只看该作者
对,hex。而且为了简化问题,避免数制转化出错因素,我用COMDEBUG发的都是9以内的数...

使用特权

评论回复
10
oldpig|  楼主 | 2015-6-7 20:45 | 只看该作者
我觉得我对USB的虚拟串口掌握得还是太浅,所以不知从哪个方向去查找问题。我STM8S003的程序功能是:如果接收到数字1,则点亮板上的LED;如果接收到的是除1以外的其他字符(比如2),则把这个字符(2)连续不间断地发送出去,同时LED闪烁。目前碰到的问题是:
1)用COMDEBUG能调试成功;
2)用Windows(XP)超级终端有时成功,有时失败,目前感觉是否成功与代码的不同的代码表达方式有关(我知道这很奇怪);
3)我用VC++6.0写了个小程序,用的是Win32Port类(从一本书上弄来的串口类),理论上,向STM8写入2,则VC++程序应该收到连续不断的2。测试结果是循环用readbyte方式能正常地持续获得数字2(稍有滞后但总体正常),但用readbuffer读缓冲区就一直为空。这个缓冲区是Win32Port类的成员,应该与硬件无关。

我有点头大了,不知道从哪里下手查找问题...

使用特权

评论回复
11
oldpig|  楼主 | 2015-6-7 20:48 | 只看该作者
补充一下,那个Win32Port类没有问题,因为之前公司一直在用这个类,没有问题,而且就是我写的VC++程序,只不过那时硬件不是我做的

使用特权

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

本版积分规则

15

主题

47

帖子

1

粉丝