社区
API
帖子详情
如何提高串口通信速度
bts2003
2009-12-13 09:54:29
硬件工程师开发了一块单片机板,只要按通信协议上位机发数据给下位机,下位机立即回数据,我用串口调试助手试过了,1分钟约可以收发最大6000,可是我用VB的MSCOMM编程,计时,1分钟约2400次,如何提高速度?要求是3600次以内。除出代码,计算机高速运行?
...全文
978
21
打赏
收藏
如何提高串口通信速度
硬件工程师开发了一块单片机板,只要按通信协议上位机发数据给下位机,下位机立即回数据,我用串口调试助手试过了,1分钟约可以收发最大6000,可是我用VB的MSCOMM编程,计时,1分钟约2400次,如何提高速度?要求是3600次以内。除出代码,计算机高速运行?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xmyxjw
2010-10-21
打赏
举报
回复
用API做的串口通讯比控件要快!
flfq
2010-10-20
打赏
举报
回复
如果对速度要求很高的话,可以下位机主动发送,上位机被动接收,单片机定时器的精度比pc要高很多。
Gujianda
2010-10-19
打赏
举报
回复
of123真是高手,说到点子上了。
我经常玩和单片机通信的事,你那点代码也不要保密了,贴出来,我帮必改。
tongfeng1981
2010-10-17
打赏
举报
回复
学习了
熊孩子开学喽
2010-09-28
打赏
举报
回复
[Quote=引用 4 楼 bts2003 的回复:]
大哥,不要玩我呀?只是个EXE,哪有源程序?而且好像很慢????
字节到缓冲区,到串口,不通过控件,直接从API走?
用readfile
和writefile等函数!
[/Quote]
既然没源码,那要么你自己重新写一个,要么反编译去改EXE
of123
2010-09-01
打赏
举报
回复
1 应该不是波特率的问题。要改波特率,必须和底层一起改。现在的情况是,串口助手可以满足你的速率要求,而自己写的程序比较慢。
2 不要用 Timer 这类方式去查询串口的接收状态。用 OnComm 事件或循环查询都可以。注意一下你接收到数据后再发命令是如何衔接的。
3 对于串口这种低速接口,如果没有特殊的连续设置改变,我认为控件和 API 的差别不大。
综上所述,关键点在于你的程序架构。
efengxu
2010-08-31
打赏
举报
回复
我觉得有几种因素决定
1:波特率
2:你电脑的cpu
3:软件处理能力
carefire
2010-08-28
打赏
举报
回复
1. 更改到更高的波特率
2. 如果用VB的MSCOMM,可以:
1)不要用查询方式,而应事件方式,使用OnComm事件,并且不要在里面使用界面处理代码,如不要用类似这样的代码:Text1.Text = Text1.Text & Recv_Char
2)因为每次都收4个字节,所以可以设置Rthreshold=4,至少收到4个字符才触发一次OnComm事件,节省三次事件调用时间。
3)收到数据后,立即发送,利用对方发送时间内做数据处理。
心若冰清自然开心
2010-08-23
打赏
举报
回复
怎么我的串口还没通啊,谁给个完整的源码瞧瞧啊?
unsv29mj
2009-12-19
打赏
举报
回复
给你找到1个
comdebug.exe 这个我用过 logo是个黄色的 纸飞机 很强大!!!
在CSDN里面有下载
http://download.csdn.net/down/467118/huhonggong
还有那个单片机波特率和助手的要设置一样的!
如果这个助手都搞不定 那么很抱歉!让那个写单片机程序的回家抱孩子去!
unsv29mj
2009-12-19
打赏
举报
回复
你的问题我看的有点糊涂!!
你的意思是说:每分钟串口助手发送3600个字符给单片机。
是这个意思吧??
一分钟 = 60秒 = 60000毫秒
9600的话 一个字符是1.04毫秒
那么波特率9600的话 就是能发6万个字符 跑去乱七八糟的时间 如果单片机程序写得再烂,发3600个字符没啥问题。
所以你的问题应该出现在串口助手编写的有点对付不了这种高速发数的情况
所以建议你换个串口助手
一般来说 用C++编写的处理速度要好很多
所以你的任务是要找到一个好的串口助手
用户 昵称
2009-12-19
打赏
举报
回复
6000 * 9 = 54000
54000 / 60 = 900字节/秒
所以你这块板通信速率应该是9600以上。
估计是19200之类的,速度限制应该是软件的。
langchen456
2009-12-18
打赏
举报
回复
qqq
贝隆
2009-12-13
打赏
举报
回复
[Quote=引用 4 楼 bts2003 的回复:]
大哥,不要玩我呀?只是个EXE,哪有源程序?而且好像很慢????
字节到缓冲区,到串口,不通过控件,直接从API走?
用readfile
和writefile等函数!
[/Quote]
你说的很对
贝隆
2009-12-13
打赏
举报
回复
抱歉,是这个:
http://download.csdn.net/source/1339593
bts2003
2009-12-13
打赏
举报
回复
大哥,不要玩我呀?只是个EXE,哪有源程序?而且好像很慢????
字节到缓冲区,到串口,不通过控件,直接从API走?
用readfile
和writefile等函数!
贝隆
2009-12-13
打赏
举报
回复
这是一个使用API写得串口通信控件,包括代码,你可以看看:
http://download.csdn.net/source/1887318
比较一下到底是MSComm快,还是API快
我个人认为API快
bts2003
2009-12-13
打赏
举报
回复
发5个字节,收4个字节,串口调试助手1分钟最大约6000次,VB的MSCOMM编程2400次,
是否API会快些?
字节到缓冲区,出去串口?直接用底层的API快些?
咸清
2009-12-13
打赏
举报
回复
你试的数据有多大啊?就一次一个字符那肯定快了~~~
计算机高速运行,仅仅是消息处理的速度快了~~~
速度也是受波特率限制的,你把波特率提高一点不就相对快很多了吗?
完整
串口通信
程序(发送和接受)源代码.zip_串口发送_
串口通信
_
串口通信
代码_串口通讯_通信接受程序
完整
串口通信
程序Vc++源代码,实现通过串口发送和接收数据的功能
MATLAB/Simulink
串口通信
的实现
1. 介绍两款
串口通信
用的软件操作,方便串口代码的调试; 2. 以STM32单片机为例,讲解Simulink如何通过串口与其建立通信。
C++
串口通信
的例子(实现
串口通信
的类)
C++实现
串口通信
的类,做成了动态库。 有兴趣的朋友可以看一下
Visual C++实践与
提高
——
串口通信
与工程应用篇(源码)
Visual C++实践与
提高
——
串口通信
与工程应用篇(源码)
C51单片机的串口异步通信和同步通信的区别
在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信。并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。
API
1,488
社区成员
23,270
社区内容
发帖
与我相关
我的任务
API
VB API
复制链接
扫一扫
分享
社区描述
VB API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章