- 博客(55)
- 收藏
- 关注
原创 如何安装不同版本的ESP-IDF,并配置Vscode插件,以及在Vscode中切换版本
Vscode安装ESP-IDF插件。配置ESP-IDF插件。
2025-05-10 06:50:36
543
原创 B站Michale_ee——ESP32_IDF SDK——WiFi_1 AP、STA模式、TCP、UDP
socket,套接字,是一种编程接口,提供了一种让不同设备上的进程能够通过网络进行通信的机制。可以看作不同计算机之间进行数据交换的通道,借助这个接口,程序能够在网络上发送和接收数据。
2025-05-08 01:05:50
434
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_8 消息缓冲区
i<3;调用该API时,流数据缓冲区中要为空,否则就会先把数据接收完成后再进入阻塞状态\n");else//!ESP32-S3为双核,CPU0主要运行WiFi和蓝牙;CPU1用于运行应用程序;
2025-05-02 22:31:09
349
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_7 流数据缓冲区、消息缓冲区
调用该API时,流数据缓冲区中要为空,否则就会先把数据接收完成后再进入阻塞状态\n");else//!ESP32-S3为双核,CPU0主要运行WiFi和蓝牙;CPU1用于运行应用程序;调用该API时,流数据缓冲区中要为空,否则就会先把数据接收完成后再进入阻塞状态while(1)\n");else//!
2025-05-02 19:47:42
238
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_6 任务通知同步、任务通知值
0 )\n");= 0 )\n");= 0 )\n");while(1)//!ESP32-S3为双核,CPU0主要运行WiFi和蓝牙;CPU1用于运行应用程序;
2025-05-02 17:45:12
171
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_5 事件组同步与等待
else {//!ESP32-S3为双核,CPU0主要运行WiFi和蓝牙;CPU1用于运行应用程序;} else {//!ESP32-S3为双核,CPU0主要运行WiFi和蓝牙;
2025-05-02 16:54:51
243
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_4信号量、互斥量
二进制信号只有0和1两个值。信号量为1时,任务可以获取信号量并执行该任务;信号量为0时,任务获取不到信号量,进入阻塞状态,暂停执行;计数型信号量的值可大于1;计数型信号量用于对多个资源进行管理;例如:停车场中有多个停车位,用计数型信号量表示停车位的个数:有车进入,计数型信号量减1;有车开出,计数型信号量加1;while(1)
2025-05-02 14:25:00
628
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_3 软件定时器
【代码】B站Michale_ee——ESP32_IDF SDK——FreeRTOS_3 软件定时器。
2025-05-02 01:49:42
219
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_2 队列
int i = 0;else\n");i++;i%=8;int i = 0;//!FreeRTOS的任务优先级值越大,优先级越高;else在队列多进单出的情况下,通常从队列接收数据的任务设置为较高的优先级,并且接收队列的API等待时间设置为portMAX_DELAY。这样当队列中没有数据时,从队列接收数据的任务就会阻塞等待;
2025-05-01 21:31:57
320
原创 B站Michale_ee——ESP32_IDF SDK——FreeRTOS_1 环境搭建和任务
Free;FreeRTOS是一款免费的操作系统,可以获取其全部源代码用于任何商业项目,且不需要开源项目代码;team work;easy test;reuse code;FreeRTOS是一款实时操作系统(1)方便把项目分割成许多独立的功能模块,便于团队合作、方便测试(单独模块测试—>系统测试)、以及复用代码(把功能模块代码用于其他项目);
2025-04-30 08:38:32
700
原创 五、中断系统及外部中断
EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序;EXTI支持的触发方式(即IO口电平变化的方式):上升沿、下降沿、双边沿、软件触发;EXTI支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(即PA1、PB1、PC1…不能同时触发中断);
2025-04-10 16:59:53
990
1
原创 四、OLED调试工具使用
OLED,Organic Light Emitting Diode,有机发光二极管;OLED显示屏:使用有机发光二极管制作出来的屏幕。是一种性能优异的显示屏,具有功耗低、响应速度快、宽视角、轻薄柔韧等特点;OLED显示屏每一个像素都是一个单独的有机发光二极管,每个像素都可以自发光的,不像LCD屏幕需要背光,所以比较省电;响应速度快,可以使OLED有更高的刷新率,总线时序快,也可以避免程序阻塞;OLED是自发光的,所以在任何角度看,显示内容都是清晰的;
2025-04-03 20:59:34
366
原创 三、GPIO
STM32F103数据手册和参考手册 蓝奏云下载链接,密码:2nkx端口配置寄存器每一个端口的模式由4位进行配置, 16个端口就需要64位,每个寄存器32位,所以配置寄存器有2个;GPIO的输出速度可以限制输出引脚的最大翻转速度,该设计是为了低功耗和稳定性,一般要求不高时,配置成50MHz即可;端口输入寄存器低16位对应16个引脚,高16位没有使用;端口输出寄存器低16位对应16个引脚,高16位没有使用;端口位设置/清除寄存器高16位用于位清除,低16位用于位设置;
2025-04-03 20:02:21
987
原创 一、STM32简介
ARM既指ARM公司,也指ARM处理器内核;ARM公司是全球领先的半导体知识产权(IP,intellectual property,知识产权)提供商,即只设计芯片,不生产芯片。全世界超过95%的智能手机和平板电脑都采用ARM架构;ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片;ARM系列内核参数介绍系列:STM32F1主流系列;内核:ARM Cortex-M3内核;主频:最大72MHz;RAM(运行内存):20K(实际存储介质:SRAM);
2025-04-02 16:04:57
1892
1
原创 ESP32连接MQTT服务器
RETAIN:设置Retain=1,服务器会将该消息持久化存储,并在后续有新订阅者订阅该主题时,将消息重新发送给新订阅者;设置Retain=0,消息仅实时传递给当前在线的订阅者,不存储(仅在PUBLISH消息中有效);DUP:为0时表示PUBLISH报文是第1次发送,为1时表示PUBLISH报文是重发报文;QoS1(至少发送一次,未收到PUBACK报文时,可能重复发送);QoS2(只发送一次,并且保证报文有发送到);QoS0(最多发送一次);
2025-03-23 13:57:40
941
原创 ESP32_WiFi连接
当设备在混杂模式时,会在所处环境中快速切换各条信道来抓取每个信道中的数据包------>当遇到正在发送前导码的的信道时,设备锁定该信道并继续接受UDP广播包,直到收到足够的数据来解码出WiFi的SSID和Password;------>为了方便和其他UDP广播包区分,前导码由几个特殊的字节组成------>在发送时,APP先发送3个前导码(3个UDP广播包),之后发送用于SmartConfig的UDP广播包,最后发送3个终止码;如何区分进行SmartConfig配网的数据——前导码。
2025-03-22 16:36:12
1981
1
原创 1~2 课程简介+ESP32-IDF环境搭建、存储结构、启动流程(虚拟机Linux环境下)
ESP32是集成2.4GHz Wi-Fi和蓝牙双模的单芯片方案,具有超高的射频性能、稳定性、通用性和可靠性,以及超低的功耗,满足不同的功耗需求,适用于各种应用场景。ESP32是ESP8266的后继产品,具有比ESP8266更出色的性能以及更优秀的能力;ESP32主要面向IOT(Internet of Things,物联网)领域,同时它也和MCU一样具备很多外设(如UART、I2C、SPI、SDIO、PWM等)因此可满足大部分的单芯片产品解决方案;
2025-03-19 00:07:53
1011
原创 1_2、Vscode、Git、Github账号及个人访问令牌
Windows图标+R—>输入cmd—>打开命令行—>输入where gcc,能查到对应路径即可;
2025-03-01 13:29:13
640
原创 一、STM32芯片简介(手册下载)、内部结构、存储器映射、寄存器映射
从内核上分有Cortex-M0、M3、M4和M7这几种。单纯从学习的角度触发,可以选择F1和F4;
2025-02-13 16:42:38
690
原创 常用存储器介绍
存储单元以电容的电荷来表示数据,有电荷代表1,无电荷代表0。但时间一长,电容就会放电,因此,需要定时刷新(给电容充电),所以这种存储时称为“动态(Dynamic)”RAM;【STM32系列控制器中,只有STM32F429或更高级的芯片才支持扩展SDRAM,其他型号如STM32F1、STM32F2以及STM32F407等型号只能扩展SRAM】存储单元以锁存器来存储数据,这种电路结构不需要定时刷新充电就能保持状态(断电的话,数据还是会丢失的),所以这种存储时称为“静态(Static)”RAM;
2025-01-07 18:06:31
950
原创 模电(郑益慧)_笔记3 PN结与二极管特性
I = Is(eU/Ut - 1)电容是反映电量和电压之间的关系,即在相同的电压下变化范围内,电容越大,存储的电荷量变化越大;即如果一个器件两端的电压发生变化,其储存的电荷量发生变化的话,该器件就可以认为是一个电容;随着反向电压增大,PN结变厚,PN结内的电荷量变多,等效为一个电容;该电容发生在势垒里面,称其为势垒电容;【非线性,即电容值不是固定的,可作为可变电容】PN结接正向电压时,在正向电压的作用下,N区的多子(自由电子)移动到P区,成为P区的少子(自由电子);P区的多子(空穴)移动到N区,称为N区
2024-12-25 18:15:56
1212
原创 模电(郑益慧)_笔记2 PN结的形成
(3)N型半导体中,主要的导电粒子为自由电子,自由电子带负电,所以称之为N(Negative,负极的)型半导体;因为虽然N型半导体中带负电自由电子的浓度远远高于带正电的空穴,但N型半导体中还有浓度很高的带正电的磷粒子;(3)P型半导体中,主要的导电粒子为空穴,空穴带正电,所以称之为P(Postive,正极的)型半导体;【P型半导体本身不带正电。(2)N型半导体中,自由电子的浓度远远高于空穴的浓度,即自由电子是多数载流子,简称。(2)P型半导体中,空穴的浓度远远高于自由电子的浓度,即空穴是多数载流子,简称。
2024-12-25 14:16:48
715
原创 模拟(郑益慧)_笔记1 绪论
1946年,宾夕法尼亚大学仿造ABC造出来用于弹道计算的计算机——ENIAC电子数值积分计算机(The Electronic Numberical Intergrator and Computer),大大提高了弹道计算的速度(30s内),占地170平米、重30吨、耗电功率150KW/h;1906年,美国发明家德弗雷斯特做出了第一个三极管,功能得到了很大改善,标志着电子技术工业革命的开始。从此,电子管统治了电子领域近半个;1904年,英国物理学家弗莱明做出了第一个真空电子二极管,开启了电子时代。
2024-12-24 19:28:08
633
原创 Git_撤销本地commit_查找仓库中大文件
Gitee普通账号的仓库总空间限制为5G;右上角头像,下拉—》设置/账号设置—》数据管理下的仓库空间信息即可查看空间限额和各仓库空间大小;Gitee普通账号每次推送大小不能超过100MB,否则会推送失败;当提交大小超过100MB,推送失败时,需要撤销本地提交,指令如下:撤销上一次的commit且保留更改的内容:git reset HEAD~1撤销上一次的commit不保留更改的内容:git reset hard HEAD~1【把HEAD~后的数字改成几,就能撤销几次提交】接着查找仓库中大文件
2024-12-24 11:03:21
495
原创 Keil 5 STM32F103_FreeRTOSV9.0.0工程创建
裸机工程的创建参考该文章,创建时可以把工程命名为Project_RTOS在裸机工程模板下新建一个文件夹,命名为FreeRTOS;在FreeRTOS文件夹下创建两个文件夹,分别命名为src、port;src文件夹用于保存FreeRTOS的核心源代码,即.c文件;port文件夹用于保存与处理器架构相关和用于内存管理的代码;把FreeRTOS需要的文件复制到新建的文件夹中;把FreeRTOSv9.0.0\FreeRTOS\Source路径下的所有.c文件复制到FreeRTOS下的src文件夹下;
2024-12-10 10:56:35
781
1
原创 STM32F103 Keil 库函数工程创建
把Project_STD\Libraries\CMSIS\CoreSupport下的core.c、Projects\Project_STD\Libraries\CMSIS\DeviceSupport下的system_stm32f10x.c添加到CMSIS组;把Project_STD\Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件添加到STDLIB组;在Output选项卡中把输出文件夹定位到Project_STD\Output下;
2024-12-09 14:28:09
1239
原创 三、STM32使用RCC(Reset Clock Contorl,复位时钟控制器)配置时钟以及时钟树
RCC主要作用设置系统时钟SYSCLK(System Clock)频率;设置AHB、APB2、APB1以及各个外设分频因子,从而设置HCLK、PCLK2、PCLK1以及各个外设的时钟频率;控制AHB、APB2、APB1这三条总线时钟以及每个外设的时钟开启;【AHB,Advanced High-Performence Bus,先进高性能总线;APB2,Advanced Peripheral Bus1,先进外设总线1;APB1,Advanced Peripheral Bus2,先进外设总线2】ST
2024-12-06 17:57:04
1458
原创 startup_stm32f10x_hd.s启动文件详解;
启动文件中已经写好了所有的中断处理程序,但这些处理程序中都是空的,真正的中断处理程序需要我们在外部的C文件中重新实现。如果我们在使用某个外设的时候,开启了某个中断,但没编写配套的中断处理程序或中断处理程序的名字写错。那么当中断来临的时候,程序就会跳转到启动文件预先写好的中断处理程序中,并在这个空程序中无限循环。
2024-12-05 16:58:40
1550
原创 STM32F10x标准库文件解析、Keil5_STM32F103ZET6固件库(标准库)版工程创建
(2)点击魔术棒(Options for Target)—>选中Target选项卡—>选择"Use default complier version6",并勾选Use MicroLIB;方法二:在工程文件夹中创建一个txt文本文档------>把下列代码复制进去,保存------>把文件后缀名改为.bat------->双击该文件,编译生成的文件就被清除;方法一:Project—>Clean Targets;
2024-11-30 10:49:30
394
原创 Git——如何把删除本地仓库中文件的操作更新到远程仓库
在对文件进行删除后,不要用git add *的指令,而是需要用git add -u的指令;之后进行提交和推送。==git add -u ==用于将所有已跟踪文件(即之前已被添加到版本控制中的文件)的更改(包括修改和删除)添加到暂存区。这个命令特别适合处理文件删除的情况,因为它会自动检测哪些文件被删除,并将这些删除操作也添加到暂存区。
2024-11-25 18:43:02
305
原创 “由于找不到mfc100u.dll,无法继续执行代码。重新安装程序可能会解决此问题“------>解决方法
解决方法:下载并安装Visual Studio 2010 (VC++ 10.0) SP1可再发行程序包,分为x86和x64两个版本,根据自己的情况选择,不确定就都装上。下载地址操作步骤:下载下图中的两个.exe文件,双击后按照提示安装即可。之后就可以打开出现问题的软件了。
2024-11-22 16:01:12
364
原创 二、Keil5 MDK下载、安装、注册;芯片支持包和标准库下载;STLINK、CH340(USB转串口芯片)驱动安装;Keil MDK工程创建(寄存版和标准库版);通过STLINK、串口下载程序;
选择MDK-Arm填写信息(除了邮箱格式要正确外,其他可以随便填写),点击Submit点击下载即可。
2024-11-17 22:30:32
2236
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人