
工业互联项目
文章平均质量分 96
stm32
sakabu
记录我的嵌入式学习路线,梦想成为嵌入式大牛
展开
-
IAP程序升级(源码+注释讲解)
IAP 是“In Application Programming”的简写,就是用户程序运行时对 Flash 的某些区域进行烧写,可以写入新版本的软件、用户数据等。IAP 主要包括 BootLoader 和应用程序两部分:在升级时运行的是 Bootloader,它接收新版本的应用程序,烧写在 Flash 上。要实现 OTA(就是通过网络升级软件),需要使用 IAP 技术。要使用 IAP,需要引入Bootloader。上电后,先运行的程序被称为 BootLoader。原创 2024-10-29 20:56:16 · 974 阅读 · 5 评论 -
低成本Modbus传感器的实现(传感器设计+上位机访问多个传感器+源码讲解)
看这篇博客之前,可以先去看看我前几个博客,了解相关知识点:1.UART开发基础2.USB设备编程(一)3.USB设备编程(二)4.Modbus通讯协议5.libmodbus编程应用。本文最终效果是:基于Modbus协议,借助 Modbus Poll(主站设备)软件实现上位机访问多个传感器。主要学习点表的设计;上位机、主控和传感器模块通过Modbus协议进行通信;传感器和主控代码编写;希望本篇博客能为你提供 Modbus 协议相关项目的设计思路。原创 2024-10-24 13:39:34 · 1044 阅读 · 1 评论 -
libmodbus编程应用(超详细源码讲解+移植到stm32)
之前介绍了Modbus协议,广泛应用于工业控制领域,协议内部有很多细节;比如报文的预处理、解析等等,所以我们需要移植别人的库,理解核心代码的主要逻辑,修改底层和硬件相关的代码就可以了,这就需要介绍libmodbus开发库。至此对于modbus协议和libmodbus库的原理讲解和移植就完成了,可以看到能讲的我就尽量讲了,代码的注释写的很详细,光是代码注释我就写了很久,还有哪里有疑问的欢迎大家评论留言,我能解决的都尽力给大家解答。原创 2024-10-13 00:02:42 · 3524 阅读 · 16 评论 -
Modbus通讯协议
Modbus 协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus 协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为 Modbus Master,从设备方使用的协议称为 Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如 PLC 可编程控制器等。有了它,不同厂商生产的控制设备就可以连接成工业网络,进行集中监控。原创 2024-10-03 01:46:28 · 1622 阅读 · 0 评论 -
USB设备编程(二)
对于硬件本身,它存储有这个设备的信息,这些信息我们称之为描述符:简单理解成描述这个设备的、具有固定格式的数据。USBX 分为三层。① 控制器层:最底层,USB 设备控制器的驱动程序,通常是 HAL 库② stack layer:实现 USB 设备的基本操作,比如描述符的操作、使用 endpoint 进行数据传输③ Class layer:实现各类 USB 设备的操作,比如 HID 设备、音频设备、虚拟串口,给 APP提供接口。使用 FreeRTOS 改造虚拟串口源码实现与PC互相发送接收数据。原创 2024-09-28 17:43:45 · 1420 阅读 · 0 评论 -
USB设备编程(一)
USB 本身是一个很庞大、复杂的体系。本文的目的在于:能理解 USB 的一些概念,能使用 USB 传输数据。由于知识点较多,所以分成两个博客讲,本文讲原理,后面会教大家移植USBX并改造成虚拟串口来使用。在学习之前,先记住几个术语,这在后面的代码会经常看到①HCD主机控制器驱动程序②DCD设备控制器驱动程序③PCD底层USB外设控制驱动程序④CDC通信设备类。使用"usbprotocolsuite"打开这些文件,体验 USB 数据传输.后面会讲USB描述符等相关知识,这是Host能识别不同USB硬件的核心。原创 2024-09-27 19:38:31 · 1146 阅读 · 1 评论 -
UART开发基础
本文介绍串口常用的三种编程方式、效率最高的编程方法,并将RTOS和串口的操作结合起来,同时锻炼面向对象的编程方式;在学习的时候,我见到了之前从未见过的函数封装方式,我相信这对我以后的工作有很大的帮助。IDLE,空闲的定义是:总线上在一个字节的时间内没有再接收到数据。回调函数是在中断里被调用的,是在中断退出前被调用的,后续改造回调函数的时候,用到的队列和信号量操作,如果是在中断里,需要加上FromISR后缀,否则会导致代码崩溃!!!把 UART 的操作封装为结构体。原创 2024-09-25 23:25:11 · 1282 阅读 · 1 评论