自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【星闪】从零开始学星闪开发栏目目录 | Hi2821 & Hi3863

华为星闪技术突破蓝牙局限,展现三大优势:12Mbps高吞吐(蓝牙的6倍)、微秒级低时延(蓝牙1/30)及7dB更强抗干扰(采用5G Polar码)。该技术适用于手写笔、游戏手柄等低时延场景,以及数字车钥匙等抗干扰场景(成本优势显著,定位精度分米级)。开发者可选Hi2812E(终端设备)或Hi3863(网关)芯片,配套HiSpark Studio(基于VSCode)开发环境。目前小熊派开发板已支持,提供SDK及外设/星闪开发教程。

2025-06-29 16:05:39 811

原创 【ESP32】从零开始学ESP32单片机栏目目录

对于了解过WiFi、蓝牙开发的同学应该听说过或这两款芯片,它们是由上海乐鑫半导体推出的WiFi芯片。在之前如果个人开发者要开发WiFi功能,只能购买像德州仪器、瑞昱这些国外公司的芯片,价格昂贵不说,开发、学习门槛相对较高。ESP32和ESP8266的出现可以说完美解决了这一困局,而且乐鑫的芯片大多以模组的方式进行售卖,更加大大降低了开发者的开发成本,提高了开发效率,像ESP8266的模组,在网上几块钱就能拿下,更高性能的ESP32模组也是十块钱就能拿下。开发方面,乐鑫官方推出了。

2024-09-08 15:58:46 2426

原创 【GD32】从零开始学GD32单片机栏目目录 | 兆易创新32位微处理器

兆易创新32位微处理器教程,分为初级、中级、高级,3个部分。

2022-09-05 15:24:13 9380 3

原创 【星闪】Hi2821 | TCXO温补晶振定时器

TCXO温度补偿晶体振荡器通过内置温度传感器和补偿电路提供稳定的32MHz时钟信号。Hi2821芯片集成了TCXO模块,包含计数单元和2个32位计数寄存器。该模块提供初始化、获取计数值(tick/ms/us)、精确延时(ms/us)以及低功耗模式管理等功能接口。示例代码展示了如何直接调用API获取三种时间计数格式,无需手动初始化(系统已自动完成)。开发者可通过配置选项启用双寄存器计数功能,适用于需要高精度时间测量的应用场景。

2025-08-17 16:38:04 330

原创 【星闪】Hi2821 | SysTick系统定时器

摘要:hi2821芯片的系统定时器(SysTick)支持外部32.768kHz晶振或内部32kHz时钟,包含2个32位计数寄存器,可单独或串联使用。系统提供初始化、计数清除、时间获取(秒/毫秒/微秒)及延时等接口函数,其中延时功能已集成至LiteOS系统。示例代码展示了如何获取当前计数值,但需注意微秒级计数的精度限制。SysTick初始化由系统自动完成,用户可直接调用相关函数获取时间值。

2025-08-16 15:35:45 499

原创 【星闪】Hi2821 | UART通用异步收发器 + 串口中断收发例程

本文介绍了UART(通用异步收发器)的工作原理及其在Hi2821芯片上的实现。UART是一种串行、异步、全双工的通信协议,数据包由起始位、数据位、校验位和停止位组成。文章详细说明了Hi2821芯片的3个UART接口配置,其中UART0为默认调试接口,其余可自由配置。通过示例代码展示了如何初始化GPIO和UART,设置115200bps波特率、8位数据位、无校验位等参数,并实现中断模式下的数据收发。测试结果表明,该方案能稳定实现设备间的串口通信。

2025-08-10 14:59:32 575

原创 【星闪】Hi2821 | 硬件中断 + 按键输入中断例程

该代码示例展示了GPIO中断的实现过程:使用GPIO15作为按键输入,配置为上拉输入模式,设置下降沿触发中断。代码中注册了中断回调函数gpio_isr_callback,当检测到下降沿时会打印"key pressed"信息。文中还列出了其他可配置的中断触发方式(上升沿、高低电平等)。测试时需用杜邦线短接GPIO15与地来模拟按键,由于未加入防抖处理,单次操作可能触发多次中断。

2025-07-27 16:37:41 296

原创 【星闪】Hi2821 | SDK开发入门,应用启动流程,创建自己的应用

该文介绍了基于HiSparkStudio SDK的自定义应用开发流程。首先说明SDK文件结构,开发时只需复制src目录,重点介绍了application目录用于存放应用代码。接着详细讲解开发步骤:1)创建应用目录和CMakeLists.txt构建脚本;2)编写Kconfig配置文件;3)创建应用代码文件;4)修改父级构建配置。文中还分析了SDK独特的启动流程,通过app_run()宏注册应用入口函数,由系统内核自动调用。文章最后展示了如何通过修改配置文件将应用集成到SDK中编译运行。整个开发过程采用组件化方

2025-07-13 15:51:33 957

原创 【星闪】Hi2821 | Pinctrl、GPIO + LED灯和按键输入例程

摘要:本文介绍了一款32位芯片的GPIO硬件特性及软件接口实现,包括Pinctrl和GPIO模块的初始化、配置、中断管理等API函数。硬件方面支持32个可独立配置的GPIO口,具有4档驱动能力(1-18mA)和可编程上下拉电阻(80k-100k)。软件部分提供了LED闪烁和按键检测两个示例:LED例程通过GPIO翻转实现周期性亮灭;按键例程采用上拉输入模式,配合软件消抖检测低电平触发。开发时需通过Kconfig配置具体管脚号,文中示例分别使用GPIO31控制LED、GPIO11检测按键。

2025-07-06 16:47:02 725

原创 【星闪】Hi2821&Hi3863 | 开发环境搭建、SDK编译及例程烧录

本文介绍了星闪开发环境的搭建流程。首先需要安装魔改版VSCode的HiSparkStudio IDE,从Gitee获取SDK并注意存放路径。创建工程时需根据芯片型号选择对应选项。编译例程时需配置Python 3.11.4环境并安装必要库,以LED灯例程演示了Kconfig配置方法。最后介绍了固件烧录步骤,包括串口驱动安装、参数设置和烧录操作。整个过程涵盖了从环境配置到程序烧录的完整开发流程,成功烧录后可通过串口助手查看系统日志。

2025-07-05 16:23:51 933

原创 【ESP32】Arduino开发 | 低功耗蓝牙开发 | 蓝牙串口 + 客户端和服务端例程

本文介绍了基于Arduino的ESP32低功耗蓝牙(BLE)开发示例,包含服务端和客户端的实现方法。服务端教程详细说明了BLE初始化、服务器创建、特性设置及数据传输流程,重点讲解了回调机制的使用。客户端部分则涵盖设备扫描、服务发现、特性订阅和数据交互的实现步骤。文中提供了完整的代码示例,并建议使用手机BLE测试助手进行功能验证。两个示例都实现了双向数据通信功能,服务端定时发送"Hello from ESP32"消息,客户端可接收并响应。开发时需注意主循环必须包含延时以避免看门狗超时问题。

2025-06-22 14:14:42 890

原创 【ESP32】ESP-IDF开发 | 低功耗蓝牙开发 | 蓝牙空中串口 + 服务端和客户端例程

本文介绍了如何通过低功耗蓝牙(BLE)实现类似经典蓝牙串口协议(SPP)的功能。由于BLE不支持SPP协议,开发者可以使用自定义GATT服务来模拟串口通信。文章详细讲解了服务端和客户端的实现方法:服务端通过自定义UUID注册GATT服务,处理读写请求;客户端通过扫描、连接目标设备并发现特定服务进行通信。代码示例展示了如何配置蓝牙参数、注册服务、处理连接事件以及数据传输。测试时需使用手机蓝牙调试工具,验证数据收发功能。该方案为BLE设备间串口通信提供了可行方案,可应用于物联网等场景。

2025-06-08 16:45:31 1089

原创 【ESP32】ESP-IDF开发 | 低功耗蓝牙开发 | GATT规范和ATT属性协议 + 电池电量服务例程

GATT(通用属性配置文件)是低功耗蓝牙(BLE)中的核心部分,建立在ATT协议(属性协议)之上,定义了数据的存储和传输框架。GATT包含服务器和客户端两种角色,服务器存储数据并响应客户端请求,客户端则发起请求并接收数据。ATT协议通过属性(Attribute)来组织数据,每个属性包含句柄、类型、值和许可。GATT规范进一步定义了如何用特性(Characteristic)和描述符(Descriptor)表示数据,并将相关数据聚合为服务(Service)。本文还提供了一个基于ESP32的例程,展示了如何实现G

2025-05-17 16:30:35 827

原创 【ESP32】ESP-IDF开发 | 低功耗蓝牙开发 | GAP协议 + 设备扫描例程

GAP(General Access Protocol),全称通用访问协议,它定义了低功耗蓝牙设备的发现流程,设备管理和设备连接的建立。低功耗蓝牙设备定义了4种角色:广播者(:处于这种角色的设备通过发送广播让接收者发现自己。这种角色只能发广播,不能被连接。观察者(Observer):处于这种角色的设备通过接收广播事件并发送扫描(Scan)请求。这种角色只能发送扫描请求,不能被连接。外围设备(Peripheral):当广播者接受了观察者发来的连接请求后就会进入这种角色。

2025-04-19 16:59:35 1218 1

原创 【ESP32】ESP-IDF开发 | 经典蓝牙开发 | HID设备 + 蓝牙键盘例程

HID(Human Input Device),全称人体输入设备。字如其名,它能够提供人体数据的输入输出,如鼠标、键盘、摇杆等等。这种设备最早是在USB协议中被引入的,在我之前的文章()中有对HID设备类详细的讲解,对底层协议感兴趣的可以回看。ESP-IDF框架对HID设备的API进行了封装,使用时基本不需要了解底层协议的逻辑。当然,因为这个HID是基于蓝牙实现的,所以仍然会涉及GAP协议等蓝牙协议,也可以在中找到相关的介绍文章。

2025-03-29 17:14:35 1763

原创 【ESP32】ESP-IDF开发 | 经典蓝牙开发 | 蓝牙串口协议(SPP) + 客户端和服务端例程

相信我们最早接触蓝牙,就是在某宝上买一个小巧的蓝牙模块,接到单片机上,通过AT指令进行简单配置,就可以用手机连接该模块,然后远程发送信息给单片机。这里面用到的就是SPP协议(Serial Port Protocol),全称蓝牙串口协议。

2025-03-15 15:20:15 1369

原创 【ESP32】ESP-IDF开发 | 经典蓝牙开发 | 协议栈基础(L2CAP、SDP、CAP) + 设备发现例程

蓝牙技术是由,于1998年5月联合宣布的一种无线通信新技术。蓝牙设备是蓝牙技术应用的主要载体,常见蓝牙设备比如电脑、手机等。蓝牙产品容纳蓝牙模块,支持蓝牙无线电连接与软件应用。蓝牙设备连接必须在一定范围内进行配对。这种配对搜索被称之为短程临时网络模式,也被称之为微微,可以容纳设备最多不超过8台。蓝牙设备连接成功,主设备只有一台,从设备可以多台。蓝牙技术具备射频特性。采用了与,在技术上应用了跳频技术、无线技术等,具有传输效率高、安全性高等优势,所以被各行各业所应用。蓝牙工作在全球通用的。

2025-03-08 15:00:11 1612 1

原创 【ESP32】ESP-IDF开发 | WiFi开发 | HTTPS服务器 + 搭建例程

HTTPS(HyperText Transfer Protocol over Secure Socket Layer),全称安全套接字层超文本传输协议,一般理解为,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。该协议使用443端口进行通信。它解决的是HTTP协议,HTTPS协议在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息仍然是安全的。

2025-02-16 16:53:25 1476

原创 【ESP32】ESP-IDF开发 | WiFi开发 | HTTP服务器

HTTP(Hyper Text Transfer Protocol),全称超文本传输协议,用于从网络服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还能确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本、图形等)。HTTP是一个应用层协议,由构成,是一个标准的。HTTP是一个,基于传输数据,默认使用。

2025-02-09 15:36:30 2272

原创 【ESP32】ESP-IDF开发 | WiFi开发 | UDP用户数据报协议 + UDP客户端和服务器例程

UDP协议(User Datagram Protocol),全称,它是一种,面向非连接指的是在正式通信前不必与对方先建立连接, 不管对方状态就直接发送。至于对方是否可以接收到这些数据内容,UDP协议无法控制,因此说UDP协议是一种不可靠的协议。UDP协议适用于一次只传送少量数据、对可靠性要求不高的应用环境。因为UDP的数据传输不一定是一对一的,所以也衍生出单播、组播和广播的概念。单播(unicast),是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。

2025-01-27 15:03:36 2195

原创 【ESP32】ESP-IDF开发 | WiFi开发 | TCP传输控制协议 + TCP服务器和客户端例程

TCP(Transmission Control Protocol),全称。,每一个TCP连接只能是点对点的(一对一);提供;提供;。

2025-01-25 17:38:36 2120

原创 【ESP32】Arduino开发 | WiFi开发 | AP模式 + 基站连接例程

关于AP模式的详细讲解放在了对应的ESP-IDF开发文章中,点击即可跳转找到。

2025-01-19 14:51:12 502

原创 【ESP32】ESP-IDF开发 | WiFi开发 | AP模式 + 基站连接例程

前面一篇讲了WiFi的基站模式,演示了怎么编程连接AP,所以这一篇讲一讲AP模式,ESP32作AP,让其他的设备连接自己。

2025-01-18 17:05:41 1822

原创 【ESP32】Arduino开发 | WiFi开发 | 基站模式 + AP扫描和AP连接例程

WiFi基站模式的详细讲解放在了ESP-IDF开发系列当中,点击即可跳转找到。

2025-01-18 14:14:35 810

原创 【ESP32】ESP-IDF开发 | WiFi开发 | 基站模式 + AP扫描和AP连接例程

ESP32带有一个2.4GHz的射频发射器和接收器;内部带有WiFi MAC协议栈,支持IEEE 802.11b/g/n标准,即现在所说的WiFi1/2/3标准;数据速率最高可达150MHz。

2025-01-12 15:46:22 1504

原创 【ESP32】Arduino开发 | 红外遥控RMT + WS2812灯驱动例程

有关RMT外设的详细介绍放在了ESP-IDF开发的文章中,跳转即可找到。

2025-01-01 16:23:18 803

原创 【ESP32】ESP-IDF开发 | 红外遥控RMT + WS2812灯驱动例程

字如其名,RMT是一个,可通过软件加解密多种红外协议。RMT模块可以实现将模块内置RAM中的脉冲编码转换为信号输出,或将模块的输入信号转换为脉冲编码存入RAM中。此外,RMT模块可以选择是否对输出信号进行,也可以选择是否对输入信号进行。RMT有,前4个为发送通道,后4个为接收通道。通道3和7支持。

2024-12-29 15:34:50 2258 1

原创 【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程

上一篇讲解了ADC的使用,所以这一篇讲DAC的使用,两者其实就是互补的关系,ADC将模拟信号转为数字信号,而DAC将数字信号转为模拟信号。具体的使用上DAC就要比ADC要简单地多。下面是DAC的结构框图。

2024-12-21 15:29:35 1782 1

原创 【ESP32】Arduino开发 | DAC数模转换器 + DAC输出例程

这个例程每2秒改变一次DAC的输出电压,使用ADC对输出的电压进行采集,每1秒采集一次。ADC我设置的是12位分辨率和11db的衰减。

2024-12-14 15:36:33 502

原创 【ESP32】Arduino开发 | ADC模数转换器 + 单次转换例程

关于ESP32的ADC外设的详细介绍放在了ESP-IDF开发的对应文章中,通过可以找到。

2024-12-14 15:26:02 551

原创 【ESP32】ESP-IDF开发 | DAC数模转换器+余弦波输出例程

ESP32上的数字模拟转换器 (DAC) 带有 2 个 8 位通道,因此可输出。在低功耗模式下也可由 ULP 协处理器通过控制寄存器来实现完全控制。内部自带,可用于生成余弦波形/正弦波形,用户可调整。2. 例程。2.1 余弦波生成这个例程使用DAC生成一个余弦波,然后连接ADC进行捕获,捕获的数据发到上位机中。ADC我使用单次采集模式,配置ADC1,通道0,12db衰减。主循环中不断读取ADC值,并发送到串口。最后加一个delay防止看门狗超时。需要注意的是,

2024-12-07 16:33:27 1088

原创 【ESP32】ESP-IDF开发 | ADC模数转换器+ADC连续采集例程

ESP32带有,配置有5个控制器进行控制;其中2个支持高性能多通道扫描、2个支持深度睡眠模式下的低功耗运行,另外1个专门用于PWDET / PKDET(功率检测和峰值监测)。PWDET/PKDET控制器仅供Wi-Fi内部使用。如果Wi-Fi正在使用SAR ADC2,则用户无法使用 SAR ADC2 测量管脚的模拟信号。

2024-11-10 16:38:52 1885

原创 【ESP32】ESP-IDF开发 | 低功耗管理+RTC唤醒和按键唤醒例程

ESP32支持5种低功耗模式,低功耗管理单元包括调压器、功耗控制器、电源开关单元、电源域隔离单元 (Isolation Cell) 等部分。1.1 RTC单元RTC单元是ESP32低功耗管理的核心,可用于管理低功耗模式的进入和退出,控制时钟源、PLL、电源开关和隔离单元以产生电源门控、时钟门控和复位信号。RTC单元主要包含以下几个模块:RTC主状态机:记录电源状态;数字和模拟电源控制器:可用于为RTC的数字模块和模拟模块生成电源门控/时钟门控信号;

2024-11-09 16:17:10 3212

原创 【ESP32】ESP-IDF开发 | I2C控制器+I2C主从收发例程

I2C(),是由Philips公司在1980年代初开发的一种半双工的同步串行总线,它利用一根时钟线和一根数据线在连接总线的两个器件之间进行信息的传递,为设备之间数据交换提供了一种简单高效的方法。每个连接到总线上的器件都有唯一的地址,任何器件既可以作为主机也可以作为从机,但同一时刻只允许有一个主机。I2C在硬件上是采用了开漏输出,在这种模式下GPIO没有输出负载的能力,因此总线上的每根管脚都需要接上拉电阻才能正常通信。I2C每次通信都由主机发起,

2024-11-03 15:38:06 3085 3

原创 【ESP32】ESP-IDF开发 | I2C从机接收i2c_slave_receive函数的BUG导致程序崩溃解决(idf-v5.3.1版本)

在调试I2C外设的demo时,按照官方文档的描述调用相关API,烧录程序后发现程序会不断崩溃,系统log如下。初步分析log,原因是访问到了不存在的地址。一开始我以为是自己的代码问题,反反复复改了几次都会出现同样的问题。后面使用backtrace追踪出现问题的代码位置,代码在执行到i2c_slave.c的77行的时候崩溃了。这是I2C中断服务函数内调用的,仔细观察发现,这个函数的处理就有问题。

2024-11-03 14:49:51 840

原创 【ESP32】ESP-IDF开发 | PWM脉宽调制器+PWM波形输出和捕获例程

脉宽调制器 (PWM) 广泛用于电机和电源的控制。在ESP32的PWM模块如下图所示。PWM外设中包含。定时器和操作器之间是可以相互绑定的,不仅能一对一,也可以一对多,多对多地绑定,这使得ESP32可以适应各种各样的应用需求。

2024-11-02 17:13:41 2791

原创 【ESP32】Arduino开发 | LED PWM控制器+呼吸灯例程

有关ESP32的LED PWM控制器的介绍放在了ESP-IDF的对应开发文章中,跳转可以找到。

2024-10-19 16:17:01 771

原创 【ESP32】ESP-IDF开发 | LED PWM控制器+呼吸灯例程

把函数放到内部RAM中,提高执行速度。回调函数里面就是设置渐变参数,并启动下一轮的渐变。通过cnt变量判断是从灭到亮还是从亮到灭渐变;因为cnt是全局变量,所以这里用了一个互斥量。这个函数返回是否有更高优先级的任务需要唤醒。最后就是配置渐变参数并启动渐变功能了。烧录程序到开发板,就能看到呼吸灯了。

2024-10-13 17:08:42 2307

原创 【ESP32】ESP-IDF开发 | Timer硬件定时器+定时器闹钟例程

ESP32内置。每个定时器包含一个16-bit预分频器和一个64-bit可自动重新加载向上/向下计数器。ESP32的定时器分为2组,每组2个。定时器具有闹钟功能,闹钟事件会引发重新加载和触发中断。硬件定时器的时钟是由APB时钟提供的,;定时器时钟经过预分频器的分频后,才是定时器计数的频率。2. API。

2024-10-07 16:44:27 2010 1

原创 【ESP32】Arduino开发 | Timer定时器+定时器闹钟例程

有关定时器外设的详细介绍在ESP-IDF的对应文章中,跳转可以找到。

2024-10-07 15:08:31 1942

【项目】环境监测 | 可燃气体传感器+温湿度传感器+雨滴传感器+OLED屏幕

备赛广东省电赛的时候,队长给我布置了这个小项目,说有可能会用在比赛的作品中,但实际就不知道了,所以在这里分享一下代码。 总的来说,这个项目还是蛮适合对STM32已经入门然后想进阶的小伙伴。 项目包含了对各种常见模块的代码撰写,每种模块对应的通信协议、用到的外设也不尽相同;项目还涉及了对FreeRTOS系统的基本移植和使用,对于想进阶STM32的小伙伴是非常好的。

2022-09-02

空空如也

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

TA关注的人

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