自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 了解MQTT协议:全面解析及应用场景

MQTT(Message Queuing Telemetry Transport)协议由IBM于1999年首次提出,旨在为远程传感器和控制设备提供轻量级的通信机制。MQTT协议的设计目标是减少网络带宽的使用,优化数据传输效率,并确保在不稳定网络环境中的可靠性。它是基于发布/订阅模型的应用层协议,建立在TCP/IP协议之上。MQTT协议是一种轻量级、高效且可靠的消息传递协议,特别适合物联网和实时数据流应用。通过其发布/订阅模型和多种服务质量等级,MQTT能够在资源受限和低带宽环境中提供高效的通信服务。

2024-09-12 15:44:24 956

原创 TCP与UDP的区别详解

TCP和UDP是两种在传输层具有不同特性和适用场景的协议。TCP作为面向连接的协议,提供了可靠的数据传输保障,适用于需要确保数据准确性的应用。而UDP作为无连接的协议,具有较低的延迟和开销,适用于对实时性要求高的应用。理解这两种协议的区别和特点,有助于在实际应用中选择合适的协议,以满足不同的需求。

2024-09-09 09:01:17 1299

原创 LORA通信详解

LORA是一种无线通信技术,采用了扩频调制技术(Spread Spectrum),通过扩展信号的带宽来提高传输距离和抗干扰能力。LORA能够在低功耗的情况下实现长距离的数据传输,适合用于需要长期稳定运行的设备,如传感器和远程监控系统。LORA工作在ISM(工业、科学和医疗)频段,常见的频段包括868 MHz(欧洲)、915 MHz(美国)和433 MHz(中国)。其主要优势在于超长距离的通信能力、低功耗特性以及较强的信号抗干扰能力。

2024-08-21 13:40:15 5540 1

原创 STM32-SPI协议详解

SPI(Serial Peripheral Interface)是一种同步串行通信协议,用于在主设备和从设备之间进行高速的数据交换,广泛应用于各种嵌入式系统中。其设计目的是为了解决需要高速、全双工数据传输的应用场景,如传感器、存储器、显示器等。MOSI(主机输出数据,Master Out Slave In):主设备向从设备发送数据。MISO(主机输入数据,Master In Slave Out):从设备向主设备发送数据。SCLK。

2024-08-10 22:20:04 955

原创 STM32-IIC协议详解

I²C(Inter-Integrated Circuit)协议由飞利浦公司于1980年代开发,是一种用于集成电路间短距离通信的串行协议。它设计用于连接低速外围设备,特别适合于需要简单数据交换的场景。SCL(串行时钟线)和SDA(串行数据线)。这些线缆通过开漏(Open-Drain)输出结构与外接上拉电阻共同工作,以保证数据传输的稳定性和可靠性。I²C协议支持多主机和多从机的通信模式,设备通过唯一的地址进行识别。地址长度可以是7位或10位,使得I²C可以满足不同规模的系统需求。

2024-08-10 20:49:47 784

原创 STM32-USART时序与寄存器状态分析

数据寄存器(DR)既用于发送数据也用于接收数据。状态寄存器(SR)提供UART模块的状态信息和标志位,反映UART的当前状态,如接收和发送状态、中断标志等。在UART(通用异步收发传输)通信中,信号线上的状态分为两种:逻辑1(高电平)和逻辑0(低电平)。

2024-08-09 19:36:15 1011

原创 STM32-OTA升级

如果这个时候我想要更新产品的程序的话,可能就得要重新打开产品的外壳,然后通过下载器更新程序,更新完成之后再把外壳装上,这种做法显然是不太现实的。准备两个工程,一个是bootloader的程序,另外一个是应用程序的工程,并对工程进行设置。首先,我们要知道,在stm32中,flash的地址空间是从0x08000000开始的,在keil中也是默认的从这个位置开始的。在平常的项目开发和调试中,下载程序一般使用的是外部下载器或者串口的方式实现对单片机的程序下载和刷新,这种方法在项目的开发阶段是常用的方式。

2024-08-06 15:37:28 1834

原创 STM32-低功耗模式详解

低功耗模式(Low Power Mode)是为了减少电子设备的能耗而设计的操作模式,广泛应用于依赖电池供电的设备中,旨在延长电池寿命或减少能源消耗。在用户需要设备长时间工作或在电量极为有限的情况下非常实用,虽然牺牲了一定的性能和便利性,但却能有效延长设备的使用时间。

2024-08-05 23:02:42 1768 1

原创 C语言-常用的字符串操作和转换函数

目的: 在字符串 haystack 中查找子字符串 needle 的第一次出现。- 成功:返回 dest,指向连接后的目标字符串的指针。- 成功:返回 dest,指向连接后的目标字符串的指针。- 目的: 将字符串 src 连接到 dest 的末尾。- 目的: 将指向 src 的字符串复制到 dest。- dest:目标字符串,复制后的内容存放于此。- 成功:返回 dest,指向目标字符串的指针。- dest:目标字符串,复制后的内容存放于此。- 成功:返回 dest,指向目标字符串的指针。

2024-08-03 10:07:19 417

原创 C语言数据类型与宏:基础要点解析

在C语言中,数据类型的正确使用和理解对于编程至关重要。本文将深入探讨枚举类型(Enum)、结构体(Struct)以及宏的基础要点,这些都是C语言中常用的重要概念。

2024-08-02 22:46:48 252

原创 C语言-常见关键字详解

以上关键字在C语言中扮演重要角色,通过合理使用,能够提升代码的可读性、可维护性和执行效率。在实际编程中,理解它们的作用及使用场景,可以更好地设计和优化程序结构。

2024-08-02 22:31:55 517

原创 微信小程序连接阿里云IOT物联网平台:常见问题与解决方案

通过解决上述关键问题,可以优化微信小程序连接阿里云IOT物联网平台的稳定性、安全性和性能,确保项目顺利运行并符合预期要求。如有其他问题,欢迎随时提问。

2024-07-07 10:58:37 491 1

原创 微信小程序连接阿里云IOT物联网平台

至此STM32+ESP8266+智能家居实战demo项目完结!!!

2024-07-07 10:42:55 1257

原创 基于STM32F103的DMA+PWM实现WS2812B全彩灯

使用一个定时器(如TIM2或TIM3)来生成PWM信号,作为控制WS2812B的时钟信号。定时器的时钟频率应设置为WS2812B协议规定的时间要求(一般为800kHz)。配置DMA通道,将预先准备好的数据缓冲区发送到定时器的PWM输出。在DMA传输期间,定时器将根据DMA传输的数据生成精确的PWM序列,以控制WS2812B的每个彩灯。

2024-07-06 20:36:48 762

原创 CJOSN数据解析操作

在实际应用中,通过cJSON库可以实现对复杂JSON数据的解析和处理,例如逐级解析或递归解析以获取特定数据。解析过程中需要注意处理数据类型的匹配和错误处理,确保程序的稳定性和可靠性。

2024-07-05 20:54:12 415

原创 STM32+ESP8266连接阿里云

当使用STM32微控制器连接到阿里云时,通过宏定义可以显著提升代码的可读性和灵活性。在开始配置和编写代码之前,通常会定义一些初始宏来简化代码的编写和调试过程。//WIFI配置//阿里云证书配置//阿里云域名配置//数据下行//数据上行//上行数据。

2024-07-04 15:43:58 1063 1

原创 STM32+ESP8266连接阿里云:常见问题与解决方案

通过解决上述关键问题,可以优化STM32与ESP8266连接阿里云的稳定性、安全性和性能,确保项目顺利运行并符合预期要求。如有其他问题,欢迎随时提问。

2024-07-04 11:07:00 422

原创 STM32输出指定个数脉冲

通过以上步骤,我们完成了在STM32上利用TIM8定时器输出指定个数脉冲的PWM信号的设置和初始化。这种方法非常适合需要精确控制PWM输出的应用场景,例如需要精确调节电机速度或LED亮度的情况下。在实际应用中,可以根据具体的周期、占空比需求进行调整,以满足项目的具体要求。

2024-06-30 15:45:05 1901

原创 memcpy:结构体与字符数组间的数据传输

通过这个示例,我们展示了如何使用 memcpy 函数在结构体和字符数组之间进行数据传输。memcpy 是一个非常有用的函数,可以高效地在内存中复制数据,但使用时需要特别小心,以确保源和目标内存区域的布局一致,以避免潜在的问题。

2024-06-25 17:15:03 1347

原创 sscanf:串口数据与字符串解析操作

在编写程序时,字符串的处理是一项极为常见且至关重要的任务。尤其是在处理串口接收数据时,字符串操作的重要性更加凸显。通过解析和处理从串口接收到的数据,我们可以实现设备通信、数据记录、命令解析等功能。今天,我们将深入探讨 sscanf 函数,这是一种强大而灵活的工具,能够帮助我们高效地从格式化的字符串中提取所需的数据。掌握 sscanf 的用法和技巧,将大大提升你在处理串口数据和其他字符串操作中的效率和准确性。作用:从字符串 str 中按照格式字符串 format 解析数据,并将解析结果存储到对应的变量中。

2024-06-24 20:25:31 393

原创 MQTTX工具连接阿里云IoT平台

确保在阿里云配置完成后进行调试是至关重要的。可以使用网站进行测试,以验证配置是否正常,并观察数据的发送和接收情况。此外,通过阿里云物联网平台的物联网平台->监控运维->日志服务,可以更好地观察数据的收发情况,及时发现和解决问题。这样可以保证整个系统运行稳定和顺畅。物联网平台->文档与工具->产品文档(物联网平台)->快速入门/操作指南,可以了解有关调试的更多信息。​。

2024-05-05 20:02:23 965

原创 嵌入式系统中的ADC工作模式与多通道采集

在嵌入式系统中,ADC(模数转换器)是一个重要的组件,用于将模拟信号转换为数字数据,以便于微控制器单元(MCU)进行处理。ADC的工作模式对系统的性能和实时性都有重要影响,常见的包括阻塞模式、中断模式和DMA(直接存储器访问)模式。

2024-05-05 19:03:47 422

原创 STM32 HAL库中的DMA配置与ADC数据采集

针对多通道ADC采集,合理配置DMA和ADC参数至关重要,以确保数据采集的准确性和系统性能的最佳化。较大的采样数据长度可以减少 DMA 中断的触发次数,提高数据传输的效率。通过调整Length参数、ADC采样时间以及执行校准函数的位置,可以优化系统性能,提高数据采集的准确性和稳定性。通过增加 ADC 的采样时间延长每次转换的时间,减少 DMA 中断的频率,降低系统负载,提高系统的响应速度和稳定性。在实际应用中,应根据具体需求和系统特性,合理配置采样数据长度和采样周期,以满足系统的需求并优化性能。

2024-05-05 09:08:49 1805 2

原创 阿里云物联网平台配置

阿里云的配置就告一段落了,此处比较繁琐,如果不太明白的话就请多看几遍吧,熟悉之后就可以自己独自开发属于自己的项目啦。云产品流->转解析器->查看->数据源->关联数据源->数据目的->关联数据目的->解析器脚本->发布。数据源->创建数据源(分别为STM32D与APPD)->前往编辑->添加Topic。4.产品->查看->功能定义->编辑草稿->添加自定义功能。首次开通需要一定的时间,耐心等待一会。消息转发->云产品流转->创建解析器。3.设备管理->产品->创建产品。4.设备管理->设备->添加设备。

2024-05-02 22:52:28 969

原创 物联网简介

这些层级各自负责不同的功能,共同构成了一个完整的物联网系统。本项目是一个简单的Demo,目的在于介绍物联网项目开发中所涉及的关键技术。你可以轻松地在这个基础上添加更多的外设,以实现更复杂的功能。本项目利用ESP8266模块连接阿里云,通过MQTT协议进行数据的收发,实现设备之间的联网通信。ESP8266作为物联网设备的通信模块,负责将感知层采集到的数据传输到云端,同时接收来自云端的指令并执行相应的操作。微信小程序提供了一个方便的界面,用户可以随时随地通过手机进行智能家居设备的管理,实现智能家居系统的应用。

2024-05-02 21:29:31 404

原创 STM32串口数据接收及处理(ESP8266连接阿里云)

当我们成功连接阿里云物联网平台并实现数据上行,就可以开始接收和处理阿里云物联网平台下行的数据了。通过阿里云物联网平台的云产品流转,也可以在阿里云物联网平台接收来自微信小程序中的指令或参数,然后将其传输给STM32进行相应的控制操作。这样,就能够实现远程控制和管理硬件设备,使其按照预定的指令运行。

2024-03-13 22:57:09 1832 5

原创 STM32串口发送数据至阿里云(ESP8266连接阿里云)

续STM32串口发送数据(不定参数版),当我们在成功发送完数据之后当然就是数据的接收与处理了。当我们使用STM32与ESP8266通信时,通常我们需要等待ESP8266返回'OK'时再进行下一次数据的发送,如果返回'ERROR'则说明配置错误,因此不能一味的发送数据。

2024-03-10 20:56:41 929 2

原创 STM32串口发送数据(不定参数版)

vsnprintf() 是一个 C 语言函数,用于将可变数量的参数按照指定格式写入字符串中,类似于 sprintf() 函数。不同之处在于 vsnprintf()接受一个可变参数列表 va_list`来代替可变数量的参数。STM32等嵌入式系统中使用不定参数函数发送串口数据,可以提高代码复用性和灵活性,简化代码结构,更方便的处理不同串口的通信,使得函数在处理不同数量参数的情况下更加灵活,适应不同的输入需求。和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。

2024-03-08 11:55:30 261

原创 当用于开关电路时,继电器和MOS管区别和特点

MOS管:MOS管是一种电子开关,通过控制栅极电压来调节通道的导电能力。- 继电器:由于继电器使用机械触点,长时间的频繁开关操作可能会导致触点的磨损和接触不良,从而影响其寿命和可靠性。- 继电器:由于其机械触点的特性,继电器适用于一些对高电流和高电压要求较高的应用场景,如电力系统、高功率设备等。- MOS管:MOS管的控制电流或电压相对较小,通常只需要微安级别的电流或几伏的电压即可实现开关操作。- 继电器:继电器通常需要较大的控制电流或电压来激活电磁线圈,以使触点进行开关操作。

2024-03-07 11:53:21 2161

原创 微信小程序连接蓝牙模块实现数据发送

蓝牙设备是使用蓝牙通讯技术来实现特定功能的设备。蓝牙设备内部包含蓝牙服务,其中包括服务、特性和属性。每个服务和特性都有唯一的UUID标识,而每个特性又具备read、write、notify等属性。在使用蓝牙服务时,实际上是针对不同属性的特性进行操作。操作步骤为:通过蓝牙通讯建立设备连接,找到相应的服务,确定该服务下的特定特性,并根据特性的属性执行具体操作。蓝牙设备通常包括两个主要角色:蓝牙主设备和蓝牙从设备。蓝牙主设备(Bluetooth Master):负责发起蓝牙连接,并控制连接过程。

2023-11-28 19:16:41 4694

原创 ESP8266+阿里云(AT指令版)

AT+MQTTPUB=0,"/sys/${ProductKey}/${deviceName}/thing/event/property/post","JSON数据",1,0。4. 配置 MQTT "clientId","username","passwd",注意最后两个""6.订阅主题,"产品-查看-Topic类列表-物模型通信Topic-设备属性设置"7.发布主题,"产品-查看-Topic类列表-物模型通信Topic-设备属性上报""WIFI名称,"WIFI密码"2.设置为STA模式。

2023-11-25 11:55:29 1473 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除