如何提高串口通信速度

如何提高串口通信速度,第1张

在delphi下的串口通信有很多控件可以用,但都发明一个问题当向计算机一向发数据就无法接收。
比如Mscom或者com32它们的事宜都触发不了(最多每秒钟接收10次数据)。
如今想要一个能一向接法术据的控件不知道那儿有。

很奇怪的问题。
对于串口来说,数据接收的速度完全取决于对方的发送速度。
如果接收部分有阻塞,那么数据有可能会丢失、不完整,但不会慢。
因为发送方不会“配合”你降低发送速度的。
除非是问答式的通讯协议,那么速度取决于询问的频率,你应该查那部分的代码。

针对性调优过的汇编速度是最快的。所有的语言最终都到汇编 汇编再到机器语言。 语言编译的时候都有优化,所以好的汇编是最快的。但是差的汇编也不少 MSP430上的程序都有一个判断执行15秒的。
程序设计语言中汇编语言速度最快,c语言效率最高,执行效率高。程序设计语言(Programming Language):是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。
一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。程序设计语言特点不同,适用领域也不同。对于串口读写速度,主要是串口发送函数 fwrite(obj2, sendbuff, ‘uint8’)消耗了太多的时间,运行时这里耗费的时间有20ms+,这对于整个项目时不可接受的,笔者在思考和尝试的时候发现了一个方法可以让这个时间缩小到07ms左右。那就是用一个新的my_fwritem文件代替原来的内部函数fwritem(新的fwritem代码如下)。并将上述的代码改为my_fwrite(obj2, sendbuff, ‘uint8’)。除此之外,在进行数据的处理的时候,应尽量对数据进行乘除取整取余等数学运算而不是调用一些强制转换的函数或者移位函数。笔者考虑可能是在寻找和调用matlab系统内部函数花费了较多的时间。
同时,这个运算速度和matlab版本以及电脑的CPU性能有关,同样的程序i5跑起来是2ms,i7跑起来08ms。
通过以上方法将原来数十微妙的运行速度降到了运行一次在一微妙以内。所以还是有些效果的。

计算机的串行端口,所使用的通讯速率(波特率),在和下位机通讯时,要取决于下位机的通讯速率,因为一般下位机的通讯速率都是固定的,所以提升没有太大必要而且看情况,你使用中速度慢,并不是简单地串口通讯速率造成的
另外,串口的通讯速率有上限,也不能无限提高


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13068987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存