发新帖我要提问
12
返回列表
打印

菜农拣菜不用刀---很暴力很强大的HotComm即将发布

[复制链接]
楼主: hotpower
手机看帖
扫描二维码
随时随地手机跟帖
21
wswh2o| | 2008-7-13 12:08 | 只看该作者 回帖奖励 |倒序浏览

大叔

我的串口丢数,别人的没事,是怎么回事?
是控件出问题了吗

使用特权

评论回复
22
djyos| | 2008-7-13 21:22 | 只看该作者

请教一下

    想起以前写过的一个小程序,内含串口功能,遇到一个一直没有解决的问题,菜大叔指点一二。
    当单片机以57600连续发送数据时,计算机总是会丢数据,做了很大努力都没有解决,直至用低级IO直接操作com文件也不行。计算机是P4 1.7G,win2000操作系统。

使用特权

评论回复
23
awey| | 2008-7-13 21:23 | 只看该作者

老Hot要成精了~~~~

使用特权

评论回复
24
hotpower|  楼主 | 2008-7-13 22:34 | 只看该作者

关于串口数据丢失的问题

俺家网管在线回帖不能发送太多文字.

当单片机以57600连续发送数据时,计算机总是会丢数据.

问题1: MCU真发送出去了???

使用特权

评论回复
25
jerkoh| | 2008-7-13 22:38 | 只看该作者

RE

看看顶顶

使用特权

评论回复
26
hotpower|  楼主 | 2008-7-13 23:20 | 只看该作者

网管让线了~~~正式解答串口数据丢失的问题

常用的通讯方式肯定是我们MCU人的MCU<->PC.

而数据丢失看着好象总是PC的问题,实际不能单凭感觉判断.

应该首先检查各自多能出现的错误,最简单而有效的方法是各自自环测试.

即将PC的2,3脚短路(当然MCU要脱机了,废话一下~~~),再用常用的串口

调试工具在一定的波特率下自发自收.

俺喜欢汽车电子的串口通V3.20,下载地址: http://blog.**/hotpower/66284/message.aspx

如果自环测试通过,在不考虑长线通讯带来的时延,则认为MCU可能有错.

再将MCU上的DB9的2,3脚短路,再MCU上编一个很小的自发自收程序.

在接收程序里进行比较,结果可以用LED/LCD等输出.

若不通过,肯定是MCU的问题.

若通过则问题就复杂了~~~

一般可能也肯定是MCU的错误,不妨再与PC联机,并将停止位改为2位

或MCU发送程序在发送一块数据包后加点停顿, 这样处理后应该不会出大问题.

若再出现问题,且PC侧的串口软件采用常用控件如MSComm,SPComm等,

这就带来了控件的正确应用的问题了~~~

再谈控件的正确应用的问题:

俺看过很多MCU编写的上位机应用程序,包括汽车电子的串口通~~~

哈哈~~~小小的批评一下汽车电子~~~

MCU人编写的串口控件有时很倒塌~~~思路全是MCU的裸奔或OS奔,和PC的Windows事件驱动机制有很大的冲突~~~

所以大家可以看出串口通的CPU占有率大的毛病所在~~~

所以它只能作为调试而不能应用到用户真正的程序中...

大家有没注意到---俺的帖图几乎全是串口通????哈哈~~~因为它很美~~~

可惜它不如HotComm很黄很暴力~~~

因为它是用CVI自带的串口函数编的,而HotComm是用API函数重新用多线程封装的~~~

所以即使一样的PC端程序,结果相差可谓**~~~

PC端正确的编程:

接收端:
1.一定要在控件的事件或回调函数中编写.

2.每次在事件或回调函数中编写的代码停留时间不要过长.

  最好在下次引发事件或回调前退出.

3.应该正确选择或适当调整每次引发事件或回调的接收字节数目.

4.应该正确选择或适当调整接收缓冲区的大小.


总之,MCU人只要把PC的事件触发看成中断来编程即可~~~


结论: 一个巴掌拍不响~~~

使用特权

评论回复
27
hotpower|  楼主 | 2008-7-14 01:13 | 只看该作者

HotComm裸照~~~

使用特权

评论回复
28
xwj| | 2008-7-14 03:15 | 只看该作者

老Hot,

 HotComm先发一份给俺试试啊,
让俺学习学习啊~~~~

xwjfile@21cn.com

使用特权

评论回复
29
hotpower|  楼主 | 2008-7-14 03:24 | 只看该作者

这是围棋的急所问题~~~容我"长考""长考"~~~

使用特权

评论回复
30
tyw| | 2008-7-14 07:06 | 只看该作者

使用特权

评论回复
31
djyos| | 2008-7-14 11:27 | 只看该作者

回大叔

1、确认mcu是发出来了的,因为我在PC的DB9上挂了另一个mcu监听,该mcu听到了全部数据。
2、我测试了所能找到的所有串口工具,没有一个不丢数据的。
3、不知大叔的控件测过突发大量数据没有。
4、我是这样编的:打开“com”文件---设置参数----建立线程,该线程由com收发事件触发----线程收到消息----读串口缓冲区。
5、运行时没感觉它很占资源,丢数据情况比其他串口监听工具好些,但总不能杜绝。
6、当然,这只是极限测试,实际应用时是有应答的,不会出错。

使用特权

评论回复
32
hotpower|  楼主 | 2008-7-16 00:04 | 只看该作者

HotComm控件绑定及实时监测技术的再次展示



使用特权

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

本版积分规则