自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 四、OLED调试工具使用

OLED,Organic Light Emitting Diode,有机发光二极管;OLED显示屏:使用有机发光二极管制作出来的屏幕。是一种性能优异的显示屏,具有功耗低、响应速度快、宽视角、轻薄柔韧等特点;OLED显示屏每一个像素都是一个单独的有机发光二极管,每个像素都可以自发光的,不像LCD屏幕需要背光,所以比较省电;响应速度快,可以使OLED有更高的刷新率,总线时序快,也可以避免程序阻塞;OLED是自发光的,所以在任何角度看,显示内容都是清晰的;

2025-04-03 20:59:34 239

原创 三、GPIO

STM32F103数据手册和参考手册 蓝奏云下载链接,密码:2nkx端口配置寄存器每一个端口的模式由4位进行配置, 16个端口就需要64位,每个寄存器32位,所以配置寄存器有2个;GPIO的输出速度可以限制输出引脚的最大翻转速度,该设计是为了低功耗和稳定性,一般要求不高时,配置成50MHz即可;端口输入寄存器低16位对应16个引脚,高16位没有使用;端口输出寄存器低16位对应16个引脚,高16位没有使用;端口位设置/清除寄存器高16位用于位清除,低16位用于位设置;

2025-04-03 20:02:21 419

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

原创 ESP32连接MQTT服务器

RETAIN:设置Retain=1,服务器会将该消息持久化存储,并在后续有新订阅者订阅该主题时,将消息重新发送给新订阅者;设置Retain=0,消息仅实时传递给当前在线的订阅者,不存储(仅在PUBLISH消息中有效);DUP:为0时表示PUBLISH报文是第1次发送,为1时表示PUBLISH报文是重发报文;QoS1(至少发送一次,未收到PUBACK报文时,可能重复发送);QoS2(只发送一次,并且保证报文有发送到);QoS0(最多发送一次);

2025-03-23 13:57:40 638

原创 ESP32_WiFi连接

当设备在混杂模式时,会在所处环境中快速切换各条信道来抓取每个信道中的数据包------>当遇到正在发送前导码的的信道时,设备锁定该信道并继续接受UDP广播包,直到收到足够的数据来解码出WiFi的SSID和Password;------>为了方便和其他UDP广播包区分,前导码由几个特殊的字节组成------>在发送时,APP先发送3个前导码(3个UDP广播包),之后发送用于SmartConfig的UDP广播包,最后发送3个终止码;如何区分进行SmartConfig配网的数据——前导码。

2025-03-22 16:36:12 912 1

原创 ESP32_FreeRTOS使用

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

2025-03-20 00:28:48 646

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

原创 Source Insight4.0安装

Source Insight4 安装及使用

2025-03-13 17:03:11 465

原创 Beyond Compare 安装

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

2025-03-13 14:00:34 445

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

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

2025-03-11 17:57:18 306

原创 Keil5 MDK使用记录

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

2025-03-02 23:11:30 487

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

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

2025-03-01 13:29:13 580

原创 GPIO外设

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

2025-02-22 12:03:01 347

原创 一、STM32芯片简介(手册下载)、内部结构、存储器映射、寄存器映射

从内核上分有Cortex-M0、M3、M4和M7这几种。单纯从学习的角度触发,可以选择F1和F4;

2025-02-13 16:42:38 522

原创 常用存储器介绍

存储单元以电容的电荷来表示数据,有电荷代表1,无电荷代表0。但时间一长,电容就会放电,因此,需要定时刷新(给电容充电),所以这种存储时称为“动态(Dynamic)”RAM;【STM32系列控制器中,只有STM32F429或更高级的芯片才支持扩展SDRAM,其他型号如STM32F1、STM32F2以及STM32F407等型号只能扩展SRAM】存储单元以锁存器来存储数据,这种电路结构不需要定时刷新充电就能保持状态(断电的话,数据还是会丢失的),所以这种存储时称为“静态(Static)”RAM;

2025-01-07 18:06:31 931

原创 模电(郑益慧)_笔记3 PN结与二极管特性

I = Is(eU/Ut - 1)电容是反映电量和电压之间的关系,即在相同的电压下变化范围内,电容越大,存储的电荷量变化越大;即如果一个器件两端的电压发生变化,其储存的电荷量发生变化的话,该器件就可以认为是一个电容;随着反向电压增大,PN结变厚,PN结内的电荷量变多,等效为一个电容;该电容发生在势垒里面,称其为势垒电容;【非线性,即电容值不是固定的,可作为可变电容】PN结接正向电压时,在正向电压的作用下,N区的多子(自由电子)移动到P区,成为P区的少子(自由电子);P区的多子(空穴)移动到N区,称为N区

2024-12-25 18:15:56 1168

原创 模电(郑益慧)_笔记2 PN结的形成

(3)N型半导体中,主要的导电粒子为自由电子,自由电子带负电,所以称之为N(Negative,负极的)型半导体;因为虽然N型半导体中带负电自由电子的浓度远远高于带正电的空穴,但N型半导体中还有浓度很高的带正电的磷粒子;(3)P型半导体中,主要的导电粒子为空穴,空穴带正电,所以称之为P(Postive,正极的)型半导体;【P型半导体本身不带正电。(2)N型半导体中,自由电子的浓度远远高于空穴的浓度,即自由电子是多数载流子,简称。(2)P型半导体中,空穴的浓度远远高于自由电子的浓度,即空穴是多数载流子,简称。

2024-12-25 14:16:48 681

原创 模拟(郑益慧)_笔记1 绪论

1946年,宾夕法尼亚大学仿造ABC造出来用于弹道计算的计算机——ENIAC电子数值积分计算机(The Electronic Numberical Intergrator and Computer),大大提高了弹道计算的速度(30s内),占地170平米、重30吨、耗电功率150KW/h;1906年,美国发明家德弗雷斯特做出了第一个三极管,功能得到了很大改善,标志着电子技术工业革命的开始。从此,电子管统治了电子领域近半个;1904年,英国物理学家弗莱明做出了第一个真空电子二极管,开启了电子时代。

2024-12-24 19:28:08 622

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

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

原创 三、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 1385

原创 startup_stm32f10x_hd.s启动文件详解;

启动文件中已经写好了所有的中断处理程序,但这些处理程序中都是空的,真正的中断处理程序需要我们在外部的C文件中重新实现。如果我们在使用某个外设的时候,开启了某个中断,但没编写配套的中断处理程序或中断处理程序的名字写错。那么当中断来临的时候,程序就会跳转到启动文件预先写好的中断处理程序中,并在这个空程序中无限循环。

2024-12-05 16:58:40 1378

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

1.栈(Stack)

2024-12-02 16:49:02 220

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

原创 Git——如何把删除本地仓库中文件的操作更新到远程仓库

在对文件进行删除后,不要用git add *的指令,而是需要用git add -u的指令;之后进行提交和推送。==git add -u ==用于将所有已跟踪文件(即之前已被添加到版本控制中的文件)的更改(包括修改和删除)添加到暂存区。这个命令特别适合处理文件删除的情况,因为它会自动检测哪些文件被删除,并将这些删除操作也添加到暂存区。

2024-11-25 18:43:02 294

原创 “由于找不到mfc100u.dll,无法继续执行代码。重新安装程序可能会解决此问题“------>解决方法

解决方法:下载并安装Visual Studio 2010 (VC++ 10.0) SP1可再发行程序包,分为x86和x64两个版本,根据自己的情况选择,不确定就都装上。下载地址操作步骤:下载下图中的两个.exe文件,双击后按照提示安装即可。之后就可以打开出现问题的软件了。

2024-11-22 16:01:12 300

原创 二、Keil5 MDK下载、安装、注册;芯片支持包和标准库下载;STLINK、CH340(USB转串口芯片)驱动安装;Keil MDK工程创建(寄存版和标准库版);通过STLINK、串口下载程序;

选择MDK-Arm填写信息(除了邮箱格式要正确外,其他可以随便填写),点击Submit点击下载即可。

2024-11-17 22:30:32 1571 2

原创 STM32芯片支持包和标准外设库下载

一、芯片支持包下载芯片支持包下载地址(Keil 官网)下载步骤:Products—>Device ListSTMicroelectronics—>Cortex-M3—>STM32F1Series—>STM32F103—>STM32F103C4STM32F1xx_DFPDownload / Version History —> Get Pack—>Download二、标准外设库下载(创建库函数版本的工程需要该文件)标准外设库下载地址(

2024-11-16 14:55:15 958 1

原创 cJSON_AddItemToObject、cJSON_Delete、JSON打印的理解

当我们把JSON项(Item)添加到JSON对象(Object)中可以直接用cJSON_AddItemToObject(),也可以用下列的函数,下列函数本质是对cJSON_Createxxx()与cJSON_AddItemToObject()的二次封装。)分为NULL、布尔类型、数字、字符串、数组、)由花括号{}、键值对、逗号组成;

2024-11-08 16:44:02 387

原创 Git取消跟踪已经被跟踪的文件或文件夹,并ignore文件或文件夹的改动

而且每次编译时对应的时间都会变化,都需要重新提交更改,比较麻烦;并且这些build文件也比较占用仓库的空间。嵌入式软件开发时,代码编译生成最终固件的过程中会生成很多build文件或中间文件;如果我们已经把这些文件或文件夹提交的话,即这些。

2024-10-29 10:33:27 952

原创 Vscode使用记录

文件--->首选项--->设置--->搜索:WorkBench>Editor:Enable Preview--->取消勾选;

2024-10-25 20:32:49 89

原创 MD5概念解释

例如用于检查文件是否正确传输或下载,或者在一些不需要高度安全性的内部系统中作为标识符使用。对于需要更高安全级别的应用,推荐使用更安全的哈希算法,如SHA-256或SHA-3。这种算法由Ron Rivest在1991年设计,是MD4的继承者。MD5可以将任意长度的信息转换为一个固定长度的输出,通常表示为32个十六进制数字。然而,随着时间的发展和技术的进步,MD5的安全性逐渐受到质疑。,尤其是在需要强安全性保证的应用场景下,如密码存储或数字证书签发等。在某些非安全敏感的应用场景中,MD5仍然被使用。

2024-10-25 10:27:34 215

原创 ESP32学习笔记2_启动流程

架构而设计的一个版本。在 SMP 架构中,多个处理器核心可以共享相同的物理内存,并且可以在不同的核心上并行运行多个操作系统实例或一个操作系统的多个实例。因此,FreeRTOS-Kernel-SMP 能够管理多个处理器核心,使得每个核心都可以独立地运行自己的调度算法,从而实现更高效的多核处理能力。一个著名的 Xtensa 使用案例是在 Wi-Fi 芯片组中的应用,以及在一些物联网设备中作为主控处理器。RISC-V 设计为可模块化地支持各种不同的处理器扩展,以满足从微控制器到超级计算机等各种应用的需求。

2024-10-24 01:29:59 342

原创 C语言可变参数函数的使用方法及示例(包括vsnprintf)

是 C 语言中的一个函数,它属于可变参数(variadic function)的范畴,通常用于格式化字符串,并将其写入到一个字符数组中。中的 "vs" 指的是 "variadic and safe",意味着它既可以处理可变数量的参数,同时也提供了对缓冲区溢出的保护。包含了用于处理函数调用时传递给函数的可变参数数量的宏和类型定义。类型的变量,以便它可以正确地指向第一个可变参数。的使用,它们分别用于初始化和清理可变参数列表。类型的变量来保存指向可变参数列表的指针。函数可以接受可变数量的参数,并且使用。

2024-10-23 09:16:08 712

原创 C语言关键字“static“

使变量具有静态存储期,保持其值直到程序结束(延长变量的生命周期,直到整个程序结束)。之后每次调用函数时,变量都保留上次函数调用结束时的值。变量能够在多次函数调用之间保持其状态。只会在第一次声明时初始化一次。

2024-10-21 16:43:17 134

原创 ‘\0‘、‘0‘、空格

‘\0’代表ASCCI编码中的第0个字符(对应的ASCII值为0),也称为NUL字符,在C/C++中,‘\0’字符来标记字符串的终止位置; ‘0’代表ASCII编码中第48个字符(对应的ASCII值为48),表示字符0; ‘ ’代表ASCII编码中第32个字符(对应的ASCII值为32),表示空格 null,用于表示指针没有指向任何有效的内存地址,即空指针。在C/C++中,表现为NULL宏定义,为(void *)0或0.

2024-10-19 14:28:15 489

原创 江科大STM32笔记_1

(2)ARM公司是全球领先的半导体知识产权(IP,intellectual property,知识产权)提供商,即只设计芯片,不生产芯片。f.供电电压:2.0~3.6V(标准3.3V)【注意:USB输出电压是5V,不能直接给STM32供电,需要加一个稳压芯片,把电压降到3.3V,再给STM32供电】(4)ARM Cortex-M内核,即STM32的内部核心部分(包括CPU),由ARM公司设计的;(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法去控制电机的速度,从而保证飞机稳定飞行;

2024-09-09 11:05:36 1524

原创 C语言文件打开方式汇总

2024-08-30 18:01:41 263

原创 UART/RS232/RS485、IIC、SPI时序

II2C的SCL和SDA设置成开漏输出的原因:防止短路;CPHA(时钟相位),表示数据传输时,第几个跳变沿进行数据采样;CPOL(时钟极性),表示空闲状态下SCK的电平状态;R/W(读写位):1(读);(1)起始和终止条件。

2024-08-05 08:42:31 295

FreeRTOS工程模板

FreeRTOS工程模板

2024-12-10

Keil 5 STM32F103-FreeRTOSV9.0.0工程创建

Keil 5 STM32F103-FreeRTOSV9.0.0工程创建

2024-12-10

空空如也

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

TA关注的人

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