Modbus、USB
文章平均质量分 96
主要记录了在学习韦东山老师工业互联项目的心得体会以及相关知识总结
嵌入式JunG
一个热爱嵌入式的小学生
展开
-
全场景——(七)libmodbus 使用
在libmodbus开发库中,为了方便数据处理在 modbus.h 文件中定义了一系列数据处理宏。>>80xFF0xFF当然,可以参照 float 类型的处理方法,继续定义其他多字节类型的数据例如int32_t、uint32_t、 int64_t、uint64_t 以及 double 类型的读写函数。原创 2024-08-30 00:30:00 · 723 阅读 · 0 评论 -
全场景——(六)Moubus 功能码详解
以主设备(左边)为例,发送(Tx)数据中第一个字节01为设备地址,第二个字节01表示功能码,第三、四个字节00 00表示起始地址,第五、六个字节00 0A表示要读取多少个位寄存器,第七、八个字节BC 0D为校验码。需要特别注意的是,Modbus的保持寄存器和输入寄存器是以字 (Word) 为基本单位的(1Word=2Byte),所以如果读取保持寄存器地址为40001开始的一个16位 (bit) 的无符号数,那么返回2字节,并可以从40002开始读取下一个16位的无符号数。数据字段中为逻辑1的位对应ON;原创 2024-08-30 00:00:00 · 715 阅读 · 0 评论 -
全场景——(五)Modbus 协议细节
简而言之,Modbus 协议是一种单主/多从的通信协议,其特点是在同一时间总线上只能有一个主设备,但可以有一个或者多个(最多 247 个)从设备。Modbus通信总是由主设备发起,当从设备没有收到来自主设备的请求时,从设备不会主动发送数据。从设备之间不能相互通信,主设备只能同时启动一个 Modbus 访回事务处理。主设备可以采用两种方式向从设备发送 Modbus 请求报文,即主设备可以对指定的单个从设备或者线路上所有的从设备发送请求报文,而从设备只能在被被动接收请求报文后给出响应报文,即应答。原创 2024-08-29 20:15:00 · 706 阅读 · 0 评论 -
全场景——(四)Modbus 通讯协议
Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。有了它,不同厂商生产的控制设备就可以连接成工业网络,进行集中监控。原创 2024-08-20 10:09:34 · 486 阅读 · 0 评论 -
全场景——(三)USB开发基础(2)
Azure RTOS 平台是运行时解决方案的集合,包括 Azure RTOS ThreadX、Azure RTOS NetX 和 NetX Duo、Azure RTOS FileX、Azure RTOS GUIX 和 Azure RTOS USBX。Azure RTOS ThreadX 是专用于深度嵌入式应用程序的高级实时操作系统 (RTOS)。Azure RTOS ThreadX 具有多种优势,其中包括高级调度设施、消息传递、中断管理和消息服务。原创 2024-08-20 00:00:00 · 1065 阅读 · 0 评论 -
全场景——(三)USB开发基础(1)
需要注意的是令牌包是IN,当发送完令牌包后,Device会发送数据包给Host,但此时里面是没有数据的,发送的只是与前面的DATA1对应(前面是DATA1 这里也是DATA1)的数据号,这里只是要表示一个前面发送成功的状态,当其返回的data数据长度为0时,说明发送成功,最后Host返回一个握手包给Device,表示接收成功。全速设备内部的 D+有 1.5K 的上拉电阻, 低速设备内部的 D-有 1.5K 的上拉电阻,连接到 Hub 后会导致 Hub 的 D+或 D-电。批量传输还有特殊包:Ping包。原创 2024-08-14 21:45:00 · 673 阅读 · 0 评论 -
全场景——(二)UART 开发基础
UART 使用标准的 TTL/CMOS 逻辑电平(0~5V、0~3.3V、0~2.5V 或 0~1.8V 四种)来表 示数据,高电平表示 1,低电平表示 0。进行长距离传输时,为了增强数据的抗干扰能力、 提高传输长度, 通常将 TTL/CMOS 逻辑电平转换为 RS-232 逻辑电平, 3~12V 表示 0,-3~- 12V 表示 1。当我们使能 IDLE 中断后,它并不会立刻产生,而是: 至少收到 1 个数据后, 发现 在一个字节的时间里,都没有接收到新数据,才会产生 IDLE 中断。原创 2024-08-05 21:45:00 · 854 阅读 · 0 评论 -
全场景——(一)创建工程
注意: 使用“Draw_ChineseFont”函数时, 它所在的文件编码格式必须是“UTF-8”, “font_chinese.c”文件的编码格式也必须是“UTF-8”。Draw_ChineseFont”函数里第 3 个参数里只能有汉字, 不能有其他字符,并且这些汉 字必须在“font_chinese.c”的索引里。除了“LCD_Init”在“spi_lcd.h”里声明外,其他函数都在“draw.h”里声明。编译、烧写、运行, 可以看到开发板的 LED 不断闪烁, LCD 上不断显示变化的数值。原创 2024-08-01 01:00:00 · 951 阅读 · 1 评论