1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 串口通讯调试-串口调试助手

串口通讯调试-串口调试助手

时间:2023-01-22 17:45:08

相关推荐

串口通讯调试-串口调试助手

文章是以如何使用串口调试软件为主题

虽然关于这个的文章很多,但很多都是关于C语言的,本人小白,也不会。因为工作原因需要调试仪器通讯,查了很多,三天时间,但其实内容整合后十分简单,想和大家分享,希望对大家有帮助。

通讯协议

**

首先,关于通信,应该都有看到过通信协议之类的.我经常接触到的就是RS485/RS232, MODBUS, PROFIBUUS,TCP等。想了解的盆友也可以简单看下我分享的链接,我觉得挺适合小白的哈哈 - 常见的工业通讯协议有哪些

在对通讯协议了个基本概念后,我们就开始查看你所需要通讯的设备的***通讯协议说明书***了,这个很重要,没有就想办法搞来。需要查看它的通讯方式是啥样的,什么线代表着什么。

例如:FineTek的流量计

这是它的接线说明,可以找到我们需要的线,RS485+/-线。在连接通讯调试助手前,要准备一个R485转USB的转换器,如果是232/422,就买相对应的。淘宝很便宜20块一个。

推荐大家去买个232/485可以都可以转的哈哈哈,淘宝上有的而且只要30:再就是把线接入对应的端子,打开串口通讯软件,我用的是ComMonitor4.5,你会看见这样的一个界面。

端口:需要设置为你所插入的转换器,可以右击我的电脑-设备管理-端口中看见,如果没找到端口你就需要装驱动,可向淘宝店家需要。

波特率:输入通讯协议说明书上的指数

数据位:一般皆为8位(有要求就按说明书)

校验位:一般无(同上)

停止位:一般为1位(同上)

设置好后,打开串口,发送指令

指令格式如下:

可能不是很标准,但是哈哈哈对我而言觉得这样比较能明白。

对照上面这串命令

01 模块地址

03 功能码 (03-读保持寄存器)

1023 起始地址 (你所要读的位址)

0002 寄存器个数 (两个)

31 01 为自动生成的校验码

对于功能码,大家可以自己去查看下Modbus规定的通用指令,还有一些是仪器厂家自己规定的。

常用 03 读单个/多个寄存器

06 写单个寄存器

10 写多个寄存器

要注意的一点是这里都为16进制。一般设备的位址都为十进制,所以你需要将十进制转为16进制。

校验位点击图中的校验就可以自动生成

发送区3中的就是写的命令,大家也可以自己对照一下。

因为自己是无知小白,所以之前对寄存器都不是很了解哈哈哈哈,所以再唠叨下。现在的寄存器一般都为16位寄存器,很早以前的寄存器为8位,现在已经很少见了。16位的寄存器又由两个8位寄存器组成。

在写的命令中,寄存器的个数,和字节的个数就是这样得来的,1个寄存器,2个字节(1字节=8位),那怎么判断需要的字节数,这就要看你所连接的设备说明书了。

上图是流量计的通讯协定表。

发送区123的命令对应的是显示体积流率设定体积流率单位(读和写)

注意它的资料形式,有的是FLOAT32/有的是UNIT16,因为它是16位所以我们在写的命令,需要2个字节也就是16位。

你换算显示体积流率的发现和我的不一样是对,4130=1022 但我加了1,这个仪器的流率其实是在1023的位址,什么原因致使加了一位我现在也不是很明白。

(有的仪器是从1位开始,所以加1?,但图中的滤波参数和流率单位为何不用加?)

如果文中有写的不对的地方,多多指教,刚接触的小白白。

如果有谁知道最后这问题的,多多指教。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。