花落已飘
阿里云博客专家,优快云万粉博主,华为云享专家。擅长C语言单片机等技术智能小车带设计,单片机C语言设计。可以带徒弟学C语言,C加加,Linux,单片机,QT等嵌入式技术。也可承接项目。
展开
-
E22-xxxT22D lora模块配置
主要介绍了 E22-230T22D 模块的寄存器参数及其作用,适用于 230MHz 频段的 LoRa 模块。寄存器用于配置模块的地址、网络 ID、串口参数、空中速率、信道等功能。波特率默认9600bps/s。原创 2025-03-05 19:46:27 · 482 阅读 · 0 评论 -
STM32Cubemx配置E22-xxxT22D lora模块实现定点传输
定点传输(Fixed Transmission,也称为。原创 2025-03-05 21:28:42 · 1102 阅读 · 0 评论 -
E22-xxxT22D lora模块介绍
LoRa 模块是基于 LoRa 调制技术的无线通信模块,它可以在。:相比传统无线技术(如 Wi-Fi、蓝牙、Zigbee),LoRa 可在。(如 433MHz、868MHz、915MHz)工作,无需申请频率许可证。(成都亿佰特):支持 LoRa 扩频、22dBm 功率、5km 传输距离。(Ai-Thinker):低成本 LoRa 模块,适用于 DIY 开发。适用于点对点通信,比如单片机(MCU)与 LoRa 模块直接通信。,适用于物联网(IoT)应用,如智能农业、工业控制、智慧城市等。原创 2025-03-02 21:48:16 · 920 阅读 · 0 评论 -
STM32Cubemx配置RS485通信
RS485 协议是一种高效、可靠、适用于长距离传输的通信标准。通过差分信号传输、半双工通信、和多点支持等特性,RS485 成为工业自动化和其他嵌入式系统中重要的数据传输协议。TTL 到 RS485 的转换通过专用的转换芯片(如 MAX485、SN75176 等)实现。通过这些芯片,可以将单端的 TTL 信号转换为差分信号,并支持半双工通信。RS485 接口的优势在于长距离传输和高抗干扰能力,因此在工业控制、楼宇自动化等应用中非常常见。原创 2025-01-19 17:02:09 · 1848 阅读 · 0 评论 -
libmodbus从机回应
这个函数通过传入的参数来定义各个数据区的起始地址和数量,并为这些数据区分配内存。库中的一个重要函数,用于处理接收到的 Modbus 请求并发送相应的响应。该函数根据收到的请求数据构造一个响应,并通过 Modbus 协议将响应发送回客户端。例如,如果请求读取保持寄存器,但请求的地址超出了有效范围,那么响应的功能码将是原功能码(例如 0x03)加上 0x80,错误代码则会表示“非法地址”。函数的主要功能是根据接收到的 Modbus 请求,分析请求内容,构造响应并将其发送回请求方。:指向接收到的请求数据的指针,原创 2025-01-12 09:30:29 · 876 阅读 · 0 评论 -
libmodbus接收请求过程分析
对外接口,适配多种 Modbus 后端。通过调用后端的receive函数完成接收。具体实现 Modbus RTU 的接收逻辑。调用完成细节。核心接收和解析函数,包含完整的 Modbus 数据接收流程。支持分步骤接收和解析,便于应对复杂协议需求。原创 2025-01-05 14:56:28 · 730 阅读 · 0 评论 -
libmodbus主机通信主要函数分析
函数设置并打开 Modbus RTU 的串口设备,配置波特率、数据位、停止位、校验等参数,确保通信能够正常进行。函数用于检查 RTU 连接是否成功。函数调用了,后者负责构建请求并发送给从设备。在发送消息后,系统会等待并验证从设备的确认响应。如果发生错误(如设备断开连接),send_msg会尝试进行重连或错误恢复。整个流程实现了对 Modbus 从设备的单个线圈写操作。通过发送和接收 Modbus 消息,确保请求成功执行。原创 2025-01-01 20:55:49 · 1131 阅读 · 0 评论 -
libmodbus通信流程
中,作为从站(Slave)的实现主要是处理主站发送过来的请求,响应相应的数据或操作指令。中,主设备的通信流程包括多个关键步骤,涵盖从上下文创建到通信的初始化、数据读写和资源清理。可以实现 Modbus 协议的完整通信功能,无论是主站发起的读写操作还是从站的被动响应都能轻松完成。这些寄存器将存储从站的数据,并用于响应主站的读写操作。Modbus Client 是主动发起通信的一方,发送请求并等待从站的响应。可选,设置当前从站的地址(如果使用广播地址,可忽略此步骤)。创建 Modbus RTU 从站的上下文。原创 2024-12-29 16:35:15 · 606 阅读 · 0 评论 -
libmodbus源码中重要的两个结构体讲解
这个结构体描述了 Modbus 通信的上下文 (modbus_t类型的实际定义),包含了通信所需的参数和状态信息。定义了 Modbus 的通信后端接口,抽象了具体的通信实现(如 TCP 或 RTU)。通过这个结构体,libmodbus能够适配不同的传输协议。原创 2024-12-29 16:22:35 · 934 阅读 · 0 评论 -
libmodbus概述
libmodbus是一个开源的 C 库,用于实现Modbus 协议。它提供了简单易用的 API,支持 Modbus 主站(Master)和从站(Slave)模式,涵盖 Modbus 的多种通信方式(RTU、ASCII 和 TCP)。libmodbus被广泛应用于工业自动化、嵌入式系统和物联网(IoT)中。原创 2024-12-29 10:20:42 · 722 阅读 · 0 评论 -
Modbus概述
Modbus 概述Modbus是一种用于电子设备之间通信的开放式协议,最初由 Modicon(现为施耐德电气)在 1979 年为其可编程逻辑控制器(PLC)开发。它广泛用于工业自动化系统中,尤其是用于控制和监视设备之间的数据交换。Modbus 协议具有简洁、高效、易于实现的特点,是工业控制领域中最常用的通信协议之一。Modbus 的主要特点:Modbus 是开放的,意味着任何设备和系统都可以实现 Modbus 协议,制造商不受限制,设备之间可以互联互通。原创 2024-12-01 17:31:10 · 913 阅读 · 0 评论 -
Modbus功能码详细讲解
用户自定义功能码是指设备制造商或系统集成商为满足特定需求而定义的功能码。Modbus 协议本身允许用户扩展功能码,使用特定范围的功能码来实现自定义操作。这些功能码的范围通常在 0x80 到 0xFF 之间,因此它们被分配给特定的厂商或应用。功能:用户可以根据实际应用场景定义新的功能码,进行特殊的数据操作或控制功能。比如,某些设备可能需要一个特殊的读取或写入命令来进行设备配置或状态查询。格式:自定义功能码通常遵循与标准功能码相似的格式,但其具体的操作内容和响应格式由用户或厂商决定。公共功能码。原创 2024-12-01 20:12:09 · 1904 阅读 · 0 评论 -
STM32智能家居7天小项目(1)RTOS引入
文章目录前言一、裸机的开发方式轮询轮询的缺陷事件驱动二、中断优先级中断优先级简介轮询和事件驱动的结合三、RTOS的引入总结前言最近学习了百问网的7天智能家居项目,在此想要和大家分享一些智能家居开发经验。一、裸机的开发方式轮询轮询的缺陷事件驱动二、中断优先级中断优先级简介轮询和事件驱动的结合三、RTOS的引入总结...原创 2022-04-18 15:25:53 · 2977 阅读 · 1 评论 -
STM32智能家居7天小项目(2)串口的使用
文章目录前言一、常用的字符串函数strcat字符串拼接函数memset字符串清空函数strstr字符串判断函数二、串口的使用1.cubeMX的配置2.串口代码解析总结前言今天是学习百问网7天智能家居项目的第二天,本篇文章将带大家了解常用的字符串函数串口的一些使用方法。一、常用的字符串函数strcat字符串拼接函数memset字符串清空函数strstr字符串判断函数二、串口的使用1.cubeMX的配置2.串口代码解析总结...原创 2022-04-19 19:00:21 · 2740 阅读 · 2 评论 -
STM32智能家居项目(5)MQTT基础
文章目录前言一、MQTT基本原理二、MQTT协议中的方法MQTT的客户端MQTT服务器三.Connect的消息四.总结前言这是学习百问网智能家居项目的第5天,今天我们将会学到MQTT的基础知识。一、MQTT基本原理MQTT的基本原理就是一个发布者将信息发布到服务器,一个或者多个订阅者去服务器订阅发布者发布的信息。二、MQTT协议中的方法MQTT协议中的方法主要包括下面这些方法。MQTT的客户端一个使用MQTT协议的应用程序或者设备,总是建立到服务器的网络连接。发布其他客户端可能会原创 2022-05-06 20:13:28 · 2007 阅读 · 0 评论 -
STM32智能家居项目(6)MQTT的移植
文章目录前言一、下载MQTTx二、MQTTX源码下载三、MQTT的移植四、MQTT学习心得总结前言今天是学习百问网智能家居的第6天,今天将会讲到如何去移植MQTT。一、下载MQTTx在百度或者任何一个浏览器里面搜索MQTTX即可进行下载。二、MQTTX源码下载在浏览器里面搜索MQTT.org即可进入MQTT官网,按照下面的操作可以下载到MQTT基于FreeRTOS的源码。1.选择software2.选择C下面的嵌入式3.点击下载即可下载到MQTT的源码三、MQTT的移植这里的原创 2022-05-06 20:50:33 · 2746 阅读 · 0 评论 -
STM32智能家居项目(7)大总结
文章目录前言一、学习过程二、学习心得前言今天是学习百问网课程的最后一天,今天将对前面的学习进行一个总结。一、学习过程百问网的这套课程我个人感觉还是非常不错的,很适合新人去学习STM32,本套课程包括了基础班和提高班。基础班:基础班7天分别会讲到以下的知识:第一天:(1)嵌入式的学习路线、职业规划(2) ARM 、 MCU 、 MPU 、STM32等概念第二天:(1)单片机开发的几种模式(2)各种开发模块的优缺点(3)嵌入式开发流程第三天:(1)单片机外设资源概念和关系(2)如何操作控制原创 2022-05-06 21:10:16 · 3812 阅读 · 0 评论 -
STM32智能家居7天小项目(3)ESP8266和STM32的通信简单介绍
文章目录前言一、ESP8266AT指令集二、使用步骤1.引入库2.读入数据总结前言这是学习百问网7天智能家居的第3天,本篇文章将带大家了解ESP8266和STM之前的通信。一、ESP8266AT指令集二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarni原创 2022-05-01 09:51:09 · 3024 阅读 · 0 评论 -
STM32智能家居(4)ESP8266连接WIFI
文章目录前言一、ESP8266和WIFI的连接二、代码展示总结前言今天是学习百问网智能家居项目的第4天,本文我们将会介绍如何使用ESP8266进行连接WIFI一、ESP8266和WIFI的连接二、代码展示main.c USART3_StartRx();//开启串口3接收函数 esp8266_Init();串口代码static uint8_t rx_len;static uint8_t rx_data;static uint8_t usart_rx_buf[200];// 串原创 2022-05-06 19:47:42 · 10590 阅读 · 2 评论 -
stm32cubeMX配置ADC采样
文章目录前言一、cubeMX配置二、ADC库函数使用总结前言本文介绍如何使用cubeMX配置ADC采样一、cubeMX配置这里需要注意把时钟修改一下,配置ADC后需要重新修改时钟树二、ADC库函数使用u16 vol=0;//中断方式启动ADC转换HAL_ADC_Start_IT(&hadc1); //ADC转换完成中断回调函数,每次ADC转换完成触发中断调用本函数void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef*原创 2022-02-07 09:29:06 · 10789 阅读 · 0 评论 -
stm32使用HAL库函数使LED灯闪烁
文章目录前言一、cubeMX配置及代码说明前言本篇文章将带领大家使用HAL库函数让一个LED灯闪烁。一、cubeMX配置及代码说明这里和前面点亮LED灯的配置是一样的,:传送带while(1){ HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//对GPIO口的电平进行反转(低-高,高—低) HAL_Delay(500);}...原创 2022-02-02 15:39:47 · 4172 阅读 · 0 评论 -
keil5MDK 及cubeMX安装教程
本篇文章主要带大家安装keil5和cubeMX这两个软件安装完成后就可以开始STM32的开发了。原创 2022-10-19 20:45:13 · 2549 阅读 · 1 评论 -
STM32cubeMX配置us级延时函数
文章目录前言一、cubeMX配置二、代码解析总结前言本文带大家配置定时器写一个us级延时函数。一、cubeMX配置定时器配置二、代码解析//微秒延时void Delay_us(uint16_t us){ uint16_t differ = 0xffff-us-5; __HAL_TIM_SET_COUNTER(&htim1,differ); //设定TIM1计数器起始值 HAL_TIM_Base_Start(&htim1); //启动定时器原创 2022-02-22 12:51:11 · 4087 阅读 · 7 评论 -
stm32使用cubeMX配置TIM定时器让LED灯闪烁
文章目录前言一、定时器介绍二、使用步骤1.CubeMX配置2.读入数据总结前言本文将介绍stm32定时器的使用。一、定时器介绍定时器是单片机内部的特殊功能模块。在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的原创 2022-02-03 14:43:09 · 6746 阅读 · 0 评论 -
实战项目(2)STM32cubeMX配置蓝牙模块
文章目录前言一、蓝牙模块介绍二、cubeMX配置及代码解析1.cubeMX配置2.代码解析总结前言本篇文章带大家了解并学会使用蓝牙模块一、蓝牙模块介绍JDY31蓝牙模块JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过AT 命令修改设备名、波特率等指令,方便快捷使用灵活。蓝牙接线方式VCC-3.3VGND-GNDTX原创 2022-02-18 09:48:34 · 8704 阅读 · 18 评论 -
STM32框架式管理代码第一篇LED代码的管理
文章目录前言一、什么是框架式编程二、cubeMX配置三、代码展示总结前言这篇文章将正式开始带大家学习框架式编程。一、什么是框架式编程大多数人都是只在main.c里面编写代码这样会导致代码看起来非常的繁杂,不容易管理。框架式编写代码就是将各种外设写成.c和.h文件这样既方便管理又方便移植。二、cubeMX配置这里我会用到两个LED灯一个作为闪烁灯,一个作为呼吸灯。不太懂LED怎么配置的同学可以看看我之前的文章:配置LED灯闪烁三、代码展示led.c文件#include "led.h"原创 2022-04-02 20:43:20 · 1274 阅读 · 2 评论 -
protues仿真51单片机驱动继电器
文章目录一、原理图二、代码一、原理图二、代码原创 2021-12-01 18:59:13 · 4182 阅读 · 2 评论 -
stm32CubeMX点亮一个LED灯
文章目录一、CubeMX配置LED IO口二、使用HAL库函数点亮LED本篇文章将带大家使用CubeMX配置stm32点亮一个LED灯。一、CubeMX配置LED IO口1.单片机型号选择:这里我使用的是正点原子的精英版,大家可以根据自己的单片机选择相应的型号。2.IO口及其他配置:这里根据自己单片机LED IO口的位置将IO口配置为输出模式,当IO口输出低电平时LED灯被点亮。配置时钟树生成工程代码二、使用HAL库函数点亮LEDHAL_GPIO_WritePin(GPIO原创 2022-02-01 17:48:30 · 3723 阅读 · 1 评论 -
蓝桥杯之驱动代码解析
文章目录前言一、DS1302二、IIC1.IIC通信协议2.读写AT24C023.读取ADC总结前言本文主要带大家了解驱动代码,以及比赛官方在驱动代码下的套。一、DS1302官方下套点://单总线延时函数void Delay_OneWire(unsigned int t) //STC89C52RC{ t*=11; while(t--);}此函数官方会把t*=11删除,大家在比赛时记得把这个写上,忘记写上这个会导致数据读取错误。自己编写代码部分:float read_temp()原创 2022-02-17 12:00:45 · 1335 阅读 · 3 评论 -
蓝桥杯小技巧之电压值显示
文章目录前言一、赛题二、转换方法总结前言本篇文章主要带大家学习一下如何在数码管上面显示出电压的小数形式。一、赛题这里要求我们显示的电压是以小数形式出现,很多小伙伴就可能不懂了。这里给大家介绍一个小方法。二、转换方法我们知道蓝桥杯单片机的AD分辨率是8位的,所以他的量程就是0到255。但是我们的电压又是0-5V这就要有一个转化的过程了。数码管上显示的电压值为小数占了数码管的3个位置,这个时候我们就先把5V电压先写成5.00V。现在我用255x2发现结果是510在5后面加上一个小数点我们惊奇原创 2022-02-18 07:20:23 · 2521 阅读 · 4 评论 -
protues 51单片机仿真电路图及代码
文章目录一、原理图二、代码展示一、原理图二、代码展示原创 2021-11-28 09:00:23 · 3019 阅读 · 2 评论 -
stm32项目实战ST7735环境质量检测仪
文章目录前言一、使用到的模块二、效果总结前言我们主要带大家练习一个小项目让大家熟悉stm32的操作一、使用到的模块1.stm32正点原子精英版2.DH11湿温度传感器3.MQ135空气质量传感器4.ST7735LCD屏幕5.光敏电阻6.蓝牙模块二、效果总结此项目可以帮助我们检测周围环境,对于学完单片机的同学是一个很好的练习项目。...原创 2022-02-11 11:30:18 · 1275 阅读 · 0 评论 -
蓝桥杯之多界面切换处理(枚举加状态机法)
文章目录前言一、何为多界面切换二、代码展示总结前言本文我们主要介绍在蓝桥杯中如何处理多界面切换问题。一、何为多界面切换多界面切换就是题目中要求在特点的情况下显示特定的界面,这个时候就需要我们对界面进行切换操作了。二、代码展示#include <STC15F2K60S2.H>static void DIP_ser(void)//处理多界面static void key_scan(void);//按键进行界面切换typedef enum{ ID_NULL=0, ID_1,原创 2022-02-15 16:01:15 · 10359 阅读 · 5 评论 -
protues驱动一位数码管循环显示89C51
文章目录一、原理图二、代码一、原理图二、代码#include<reg52.h>unsigned char i=0;unsigned char tab[]={~0x7F,~0x6F,~0x39,~0x6D,~0x06};//延时函数void delayms(unsigned int x){ unsigned char i; while(x--) { for(i=0;i<113;i++); }}void main(){ while(1原创 2021-12-04 09:00:58 · 943 阅读 · 0 评论 -
蓝桥杯使用定时器代替延时控制按键
文章目录前言一、延时函数的优点和缺点二、代码详解总结前言本篇文章主要带领大家了解为什么要使用定时器代替延时函数。一、延时函数的优点和缺点优点:编写简单,容易理解。缺点:阻塞程序,让一直一直处于等待状态,工作效率低极大的浪费了CPU的资源。二、代码详解#include<STC15F2K60S2.H>//按键引脚声明sbit S7=P3^0;sbit S6=P3^1;sbit S5=P3^2;sbit S4=P3^3;//变量类型宏定义(定义变量多时可以减少代码的书写量原创 2022-02-16 19:45:18 · 1633 阅读 · 8 评论 -
esp8266串口的简单使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?总结前言本文带领大家使用esp8266的串口模块一、pandas是什么?void setup() { // put your setup code here, to run once: Serial.begin(115200);//设置波特率 Serial.printf("Hello\n");//开机发送Hello 此函数用法和C语言中的printf一样}void loop()原创 2022-02-19 08:51:20 · 1645 阅读 · 1 评论 -
stm32cubeMX配置人体感应器SR505
文章目录前言一、SR505人体感应模块二、cuebMX配置及代码讲解1.cuebMX配置2.代码讲解总结前言本篇文章带大家了解并使用人体感应模块。一、SR505人体感应模块HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。二、cuebMX配置及代码讲解1.cuebMX配置我们只需要配置一个GPIO口作为输入即可,其他配置和点灯是一样的 点灯。2.代原创 2022-02-21 06:59:01 · 2760 阅读 · 1 评论 -
STM32cubeMX配置PWM使LED灯闪烁
文章目录前言一、cuebMX配置二、代码解析总结前言本篇文章带大家学习使用cubemx配置PWM让LED闪烁。一、cuebMX配置二、代码解析总结使用cubeMX配置PWM的相关介绍就到这里了。原创 2022-02-22 07:08:39 · 2284 阅读 · 0 评论 -
STM32cubeMX详细教学及多个小项目合集(包含RTOS)
现在大家学习完STM32总是会感觉做不出什么实在的东西,现在我就给大家推荐我写的几篇关于智能小车的项目,及智能家居的项目,希望这些文章可以帮助大家更加深入的去理解STM32相关的知识点。在学习这些东西之前大家可以先去学习STM32的基本操作,以及C语言的基本知识点。还可以去学习关于RTOS的知识。大家以后有什么想学习的可以私信或者留言。.........原创 2022-09-01 10:31:51 · 3597 阅读 · 0 评论 -
stm32 CubeMX配置按键开关灯
文章目录前言一、CubeMX配置二、代码解析总结前言一、CubeMX配置cubeMX配置大家可以参考下面文章,这里我只讲需要添加的地方。传送门按键GPIO口设置为输入模式,由上面原理图可以知道按键在没有按下的时候电平状态不确定,所以我们应该给按键加一个上拉电阻,在按键没有按下时GPIO电平状态就为高电平,按键按下时GPIO电平状态就为低电平。二、代码解析void KEY_Scan(void){ if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))//读取按键原创 2022-02-04 11:30:49 · 3422 阅读 · 0 评论