- 博客(36)
- 收藏
- 关注
原创 esptools烧录bin地址怎么查看
本文介绍了ESP-IDF固件烧录的关键文件及其地址配置方法。主要涉及:1) bootloader.bin文件(Xtensa架构0x1000,RISC-V架构0x0);2) partition-table.bin文件(地址可通过menuconfig或flash_args文件查看);3) 项目程序bin文件(地址查看分区表中app分区的Offset值);4) OTA场景下的ota_data_initial.bin文件(地址查看otadata-flash_args或分区表OTA分区的Offset值)。这些文件均位
2025-09-27 11:42:21
301
原创 ESP-NOW详解(esp-idf)
ESP-NOW支持单播和广播通信,广播地址为ff:ff:ff:ff:ff:ff。单播需注意目标设备在AP模式下MAC地址会改变,发送端需匹配。测试显示不同网络模式组合(STA/AP/STA+AP)下的通信结果。发送端必须调用esp_now_add_peer()函数。官方文档、问答和SDK例程提供了详细说明和参考实现。
2025-08-23 14:44:02
437
原创 二值信号量和互斥信号量,同步与互斥
关于优先级,在freertos中,任务优先级数值越大优先级越高,中断优先级数值越大优先级越低。二值信号量用于同步初始值要为0,如果初始值为1不能先释放。互斥信号量其实就是一个拥有优先级继承的二值信号量。二值信号量既可以在任务中使用也可以在中断中使用。二值信号量是用于同步,互斥信号量是用于互斥。二值信号量先释放再获取。互斥信号量先获取后释放。
2025-08-09 16:58:19
90
原创 这里说一下优先级反转和优先级继承
优先级继承出现在互斥信号量中,还是abc三个任务,优先级从高到低排列,先运行c,会获取一个互斥信号量,此时运行b发现无法运行,因为此时c已经发生了优先级继承,任务优先级和a一样了(注意:优先级继承不能完全避免优先级反转)优先级反转一般出现在二值信号量中,比如abc三个任务,优先级从高到低排列,先运行c,会获取一个二值信号量,此时运行b打断c,然后运行a(但是a运行不了了,因为c没有释放信号量,b能运行是没有用到信号量,直接靠任务优先级抢占的。以及如果在使用多个互斥信号量的时候一定要避免死锁。
2025-08-09 11:01:37
133
原创 ubuntu下esp的jtag(使用esp-prog)调试
摘要:本文介绍了如何使用ESP-Prog调试器对不带JTAG功能的ESP32进行调试。首先确保ESP-IDF环境已配置,将ESP32开发板与ESP-Prog正确连接并选择正确的串口。通过OpenOCD命令启动调试,常见错误可参考相关文档解决。若遇到端口占用,需终止对应进程。具体调试方法可查阅VSCode ESP-IDF扩展文档。适用于早期无JTAG功能的ESP系列芯片调试。
2025-08-07 15:22:01
216
原创 esp-idf4.4.2升迁至5.4.1指南
摘要:本文介绍了从ESP-IDF 4.4升级到5.4.1版本的关键步骤和注意事项。主要包括:移除旧版组件目录、正确配置EXTRA_COMPONENT_DIRS、处理数据类型判断警告、添加必要组件(如mbedtls、esp_adc)等编译配置调整;根据迁移指南修改废弃API;解决编译过程中出现的格式字符串等问题;处理与esp-adf的FreeRTOS冲突;烧录后需重点检查内存配置,包括启用ESPPSRAM、外部内存静态分配等。特别强调要参照旧版配置,并注意某些配置项需要引入特定组件才会显示。
2025-06-24 19:01:33
1090
原创 esp-idf的freertos的俩个配置项
FREERTOS_TASK_CREATE_ALLOW_EXT_MEMconfigENABLE_BACKWARD_COMPATIBILITY
2025-06-22 20:09:37
217
原创 在esp-idf中发现找不到头文件
其次执行了还是不行的话,就看看自己的menuconfig是否开启了对应的功能,以及main组件的CMakeLiist是否引入了对应组件,比如wifi,一般都能过,如果编译不通过的话,直接显式添加组件esp_wifi。首先是你没有添加到vs的文件夹。
2025-06-22 19:41:45
554
原创 esp-idf中增加部分代码或者调试日志(尤其是这个)编译后没效果
这个问题一般都是因为改动过少,编译器自动忽略了,有时你的语法错误编译器都直接忽略了,对于该问题的解决办法为clean后重新编译。
2025-06-22 16:08:26
124
原创 ESP32查看tcp和udp底层报文方法
TCP是一种全双工通信协议,支持同时发送和接收数据,并具备超时重传机制。如果TCP自身的重传机制无法确保数据到达对端,应用层的重发机制更难以实现。因此,在应用层实现重发和超时重传机制通常没有意义。文章还提到一个补丁文件,需要手动将其移植到esp-idf/components/esp_netif/lwip/netif/wlanif.c文件中。补丁文件包含对TCP和UDP数据包的日志输出功能,记录数据包长度、序列号、确认号、源端口、目标端口和标志字段等信息。补丁无法直接通过patch命令应用,原因不明。
2025-05-22 22:01:56
250
原创 双系统ubuntu与windows
联想thinkbook16以及之前的使用ubuntu慎用,目前已知问题,充电充到95或99就不再显示充电图标,但电量也不会掉,电源按钮软件功能无法使用,以及触摸板失效,蓝牙可以使用,但有时候会莫名其妙断开,并且切回windows还得重新配“魔法介绍有部分缺漏哟”
2025-05-22 11:09:09
1125
原创 定时器介绍
/设置时钟源为HCLK,启动定时器。//设置定时器重装值。滴答计时器内部通过控制寄存器,重装载寄存器,校准计时器。定时器基本分为三类,通用,高级,基本。一般采用系统滴答定时器作为时基。
2024-12-11 21:42:37
253
原创 对射式红外传感器(槽型光电开关)hal库
/这个在函数外面定义。注意前面得进行OLED初始化,需要你来完成。首先配置对应外部中断,然后进行中断代码编写。我写这样是因为我的引脚别名是这个,
2024-12-10 23:50:24
357
原创 按键控制LED,使用轮询hal库---不建议轮询,建议中断,性能不好
【代码】按键控制LED,使用轮询hal库---不建议轮询,建议中断,性能不好。
2024-12-10 23:28:22
99
原创 GPIO详解
简单来说,就是通用型输入输出引脚,简单理解就是我们可以控制输入输出的STM32引脚。GPIO存在的意义就是用程序控制或读取他们的输入输出。主要特点:快速翻转,最快可以达到每2个时钟周期翻转一次。有8种工作模式。
2024-12-08 18:30:09
455
原创 STM32简介
指的是32位MCU(stm32),基础性,stm32的基础性,48引脚,内存flash为64KB,为QFP封装(四方扁平样式的单片机),正常工作温度范围在-40-85度。M是基于ARM-Cortex-M内核架构设计的3 2位微控制器(MCU)。然后,现在给大家举一个以后大家常见的32单片机。M后的数字越大,性能越强,目前主流的是M3.F基础功能,性能略高,L低功耗,性能略低。ST是意法半导体公式的简称。
2024-12-08 15:52:09
191
原创 ARM架构
特别注意,处理器架构和指令集架构不一样,处理器架构在ARM11后便采用了cortex命名。精简指令集计算机架构(RISC),与之相对应的是x86,复杂指令集架构(CISC)。ARM的指令集架构例如有ARM V8.stm32是基于ARM架构设计的。
2024-12-08 15:20:59
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅