自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 定时器状态机------>按键消抖,短按,长按检测

【代码】定时器状态机------>按键消抖,短按,长按检测。

2025-04-25 13:24:11 211

原创 五、中断系统及外部中断

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

原创 ESP32_FreeRTOS使用

添加ESP-IDF路径到工程中。

2025-03-20 00:28:48 791

原创 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

原创 Source Insight4.0安装

Source Insight4 安装及使用

2025-03-13 17:03:11 680 2

原创 Beyond Compare 安装

(注意:脚本不要放在有中文路径的文件夹下;选中此电脑—>鼠标右键—>管理。按照下图所示创建定时执行任务;

2025-03-13 14:00:34 664

原创 模电(郑益慧)_笔记4 二极管的直流等效电路

一个元器件的等效电路是把非线性元件用其他线性元件表述出来。

2025-03-11 17:57:18 350

原创 Keil5 MDK使用记录

Encoding—>下拉,选择Chinses GB2312(simplified)—>OK。

2025-03-02 23:11:30 596

原创 1_2、Vscode、Git、Github账号及个人访问令牌

Windows图标+R—>输入cmd—>打开命令行—>输入where gcc,能查到对应路径即可;

2025-03-01 13:29:13 640

原创 GPIO外设

GPIO引脚线经过两个保护二极管后,向上流向“输入模式”结构,向下流向“输出模式”结构;

2025-02-22 12:03:01 352

原创 一、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

原创 堆(heap)、栈(stack)、堆栈

1.栈(Stack)

2024-12-02 16:49:02 269

原创 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

FreeRTOS工程模板

FreeRTOS工程模板

2024-12-10

Keil 5 STM32F103-FreeRTOSV9.0.0工程创建

Keil 5 STM32F103-FreeRTOSV9.0.0工程创建

2024-12-10

空空如也

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

TA关注的人

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