- 博客(28)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【STM32】知识点总结
在此文中先后介绍了GPIO工作模式,结构体等相关知识点,还有系统的时钟框架,无论是延时函数,还是定时器的配置都和时钟树息息相关,然后就是对于中断的理解,首先是NVIC中断控制器,几乎所有的中断都由NVIC控制,有中断就要初始化NVIC,且中断的函数名字必须要与中断向量表里的名字一样,之后就是外部中断,相关应用及配置方法已经写出。最后就是串口以及定时器的配置原理和各种工作模式需要掌握,这些都搞懂了之后对于单片机的理解整体就会愈发清晰,可以决定往下面学的的内容,比如物联网模块,摄像头,RTOS系统,树莓派等等
2024-01-26 00:07:51
2170
9
原创 STM32芯片存储分布及堆栈
RAM : 堆,栈,静态区(全局区),可读写数据,零初始化数据ROM : 代码和只读数据和可读写数据(各变量的初始值,flash里面的不支持写,保证每次复位后变量的初始值不变,需要复制到sram中去写,也就是RW_data.)Code和RO-data通常存储在Flash中,而RW-data和ZI-data则与SRAM相关。RW-data的初始值存储在Flash中,但在运行时,它的工作副本位于SRAM中。ZI-data仅存在于SRAM中,用于存储未初始化的变量。
2024-08-22 20:55:20
689
原创 进阶 pro max
最近搞了许多有趣的东西,比如自制rtos,速成数模电,学了一点点的AD,看着视频弄了HAL库,以及定时器和串口中断配合实现接收任意长度(不超过缓冲值)数据,还有配置hal库的freertos+fafts ,今天到货了前两天买的硬件十万个为什么,又下单了H750VB板子,这两天过敏又犯了, 无语,一字难受。总结一下大二暑假学的东西在此更新一些C语言杂乱知识点和疑难杂症........
2024-08-21 19:04:26
1021
原创 Bootloader
Bootloader 和 FLASH 相关功能说明和总结。1)检查是否需要对第二部分代码进行更新2)如果不需要更新则转到 4)3)执行更新操作4)跳转到第二部分代码执行这里分享两个代码。
2024-07-19 17:30:10
899
2
原创 FSMC—扩展外部 SRAM
通过上面对SRAM的介绍,我们可以看到,在对SRAM进行的每一次操作,都必须按照SRAM的时序来进行操作。我们可以通过程序控制各个引脚的电平来实现这个时序,从而操作SRAM,但是这样不仅很复杂,而且灵敏度也会比较低。STM32F103ZET6就有一个片内的外设,可以实现SRAM的时序,我们只需要将该外设配置好,就能像操作内部的SRAM一样操作外部扩展的SRAM,这个外设就是FSMC。STM32F407 系列芯片使用 FSMC 外设来管理扩展的存储器,
2024-07-15 11:30:32
858
原创 基于 SD 卡的 FatFs 文件系统
FatFs 文件系统与存储设备的连接函数在 diskio.c 文件中,主要有 5 个函数需要我们编写的。宏定义和存储设备状态获取函数FatFs 支持同时挂载多个存储设备,通过定义为不同编号以区别。SD 卡一般定义为编号 0,编号 1 预留给串行 Flash 芯片使用。使用宏定义方式给出 SD 卡块大小,方便修改。实际上,SD 卡块 大小一般都是设置为 512 字节的,不管是标准 SD 卡还是高容量 SD 卡。
2024-07-12 14:37:09
722
原创 SD卡讲解
SD 卡 (Secure Digital Memory Card) 在我们生活中已经非常普遍了,控制器对 SD 卡进行读写通信 操作一般有两种通信接口可选,一种是 SPI 接口,另外一种就是 SDIO 接口。SDIO 全称是安全数 字输入/输出接口,多媒体卡 (MMC)、SD 卡、SD I/O 卡都有 SDIO 接口。stm32f4xx 系列控制器 有一个 SDIO 主机接口,它可以与 MMC 卡、SD 卡、SD I/O 卡以及 CE-ATA 设备进行数据传输。 MMC 卡可以说是 SD 卡的前身,现阶段已
2024-07-11 23:06:58
1702
原创 I2C协议与EEPROM
【数字IC】深入浅出理解I2C协议-CSDN博客首先讲解一下I2C协议,I2C 通讯协议(Inter-Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单, 可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多 个集成电路(IC)间的通讯。I2C协议属于半双工协议(即同一时刻,数据单向流动)。
2024-06-23 15:21:39
781
3
原创 硬件电路基础元件
说起来在华北理工大学某个实验室当了快一年的硬件部部长,但是能力水平还是在单片机编程和应用层面(虽然也很牛逼了,但是我不介意让我更牛逼一点)。对于硬件电路的基础还不是很够。在b站偶尔刷到了我们学校隔壁电协一个学长的毕业视频,感觉确实,把东西学好了就牛逼,甚至不用考研,至于我的路,边走边看吧。OK,那么回归正题,进行基础知识点总结。高电平1,低电平0。对基本电子元件的认识。
2024-06-13 22:47:27
803
原创 LVGL---------guider工具使用
【stm32F4 使用GUI Guider设计lvgl界面,中文界面,多界面跳转,按键事件,生成代码导入keil5】https://www.bilibili.com/video/BV1Nm421u7tb?
2024-06-10 23:08:01
466
2
原创 LVGL移植和图片显示
第二种是为存在DMA之类的数据传送机制的硬件设计的,可以把传送缓冲区的内容交给DMA处理,而cpu去执行其他工作(比如渲染),这里我暂时没用DMA,这样的话效果和第一种是一样的。因为我的屏幕没有输入,也不需要文件管理,因此对于我来说只需要disp即可,但是其他没用到的最好也别删了,保不齐什么时候就用上了(没事的时候打算整个触摸屏再移植一下LVGL玩玩)。跟它的名字一样,存放的是官方的demo,因此实际上我们也是可以删掉的,留下来的原因就是等我们移植完LVGL之后可以调用一下demo看看效果。
2024-06-10 01:15:18
1583
原创 FreeRTOS---------内核
首先看一下 FreeRTOS 的名字,可以分为两部分:“Free”和“RTOS”,“Free”就是免费的、 自由的、不受约束的意思,“RTOS”全称是 Real Time Operating System,中文名就是实时操作 系统,要注意的是,RTOS 并不是值某一特定的操作系统,而是指一类操作系统,例如,µC/OS, FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类的操作系统。因此,从 FreeRTOS 的名字中就 能看出,FreeROTS 是一款免费的实时操作系统。
2024-05-28 12:54:43
607
原创 FreeRTOS---------任务通知
FreeRTOS 从 V8.2.0版本开始提供任务通知这个功能,每个任务都有一个32位的通知 值,在大多数情况下,任务通知可以替代二值信号量、计数信号量、事件组,也可以替代 长度为1的队列(可以保存一个32位整数或指针值)。相对于以前使用 FreeRTOS 内核通信的资源,必须创建队列、二进制信号量、计数信 号量或事件组的情况,使用任务通知显然更灵活。按照 FreeRTOS 官方的说法,使用任务 通知比通过信号量等 ICP 通信方式解除阻塞的任务要快 45%,并且更加省 RAM内存空间。
2024-05-25 12:57:01
721
原创 FreeRTOS---------事件
在某些场合,可能需要多个时间发生了才能进行下一步操作,比如一些危险机器的启 动,需要检查各项指标,当指标不达标的时候,无法启动,但是检查各个指标的时候,不 能一下子检测完毕啊,所以,需要事件来做统一的等待,当所有的事件都完成了,那么机 器才允许启动,这只是事件的其中一个应用。事件不与任务相关联,事件相互独立,一个32位的变量(事件集合,实际用于表示事 件的只有24位),用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0表 示该事件类型未发生、1表示该事件类型已经发生),一共24种事件类型。
2024-05-24 17:17:15
646
1
原创 FreeRTOS---------CPU使用率统计
需要实现一个中断频率为系统时钟节拍的10-20倍的定时器,用于系统运行时间统计,其实很简单, 只需将CPU_RunTime变量自加即可,这个变量是用于记录系统运行时间的。一个系统设计的好坏,可以使用CPU使用率来衡量,一个好的系统必然是能完美响应 急需的处理,并且系统的资源不会过于浪费(性价比高)。FreeRTOS 是使用一个外部的变量进行统计时间的,并且消耗一个高精度的定时器,其用于定时的精度是系统时钟节拍的10-20倍。(需要实现5个宏定义,三个相关功能定义的配置,两个自己手动配置)
2024-05-24 15:16:28
495
1
原创 FreeRTOS---------中断管理
中断能打断任务的运行,无论该任务具有什么样的优先级,因此中断一般用于处理比较紧急的事件,而且只做简单处理,例如标记该事件,在使用 FreeRTOS 系统时,一般建议使用信号量、消息或事件标志组等标志中断的发生,将这些内核对象发布给处理任务, 处理任务再做具体处理。通过中断机制,在外设不需要 CPU 介入时,CPU 可以执行其他任务,而当外设需要 CPU 时通过产生中断信号使 CPU 立即停止当前任务转而来响应中断请求。
2024-05-24 15:16:24
749
1
原创 FreeRTOS---------内存管理
在计算系统中,变量、中间数据一般存放在系统存储空间中,只有在实际使用时才将 它们从存储空间调入到中央处理器内部进行运算。通常存储空间可以分为两种:内部存储 空间和外部存储空间。内部存储空间访问速度比较快,能够按照变量地址随机地访问,也 就是我们通常所说的RAM(随机存储器),或电脑的内存;而外部存储空间内所保存的内 容相对来说比较固定,即使掉电后数据也不会丢失,可以把它理解为电脑的硬盘。在这一 章中我们主要讨论内部存储空间(RAM)的管理——内存管理。
2024-05-24 15:16:19
831
1
原创 FreeRTOS---------互斥量
如果任务的优先级被互斥量的优先级翻转机制临时提升,那么当 互斥量被释放后,任务的优先级将恢复为原本设定的优先级。也 就是说,某个临界资源受到一个互斥量保护,如果这个资源正在被一个低优先级任务使用, 那么此时的互斥量是闭锁状态,也代表了没有任务能申请到这个互斥量,如果此时一个高 优先级任务想要对这个资源进行访问,去申请这个互斥量,那么高优先级任务会因为申请 不到互斥量而进入阻塞态,那么系统会将现在持有该互斥量的任务的优先级临时提升到与高优先级任务的优先级相同,这个优先级提升的过程叫做优先级继承。
2024-05-23 09:13:38
720
1
原创 FreeRTOS---------信号量
同理,二值信号量在任务与中断同步的应用场景:我们在串口接收中,我们不知道啥 时候有数据发送过来,有一个任务是做接收这些数据处理,总不能在任务中每时每刻都在 任务查询有没有数据到来,那样会浪费CPU资源,所以在这种情况下使用二值信号量是很 好的办法,当没有数据到来的时候,任务就进入阻塞态,不参与任务的调度,等到数据到 来了,释放一个二值信号量,任务就立即从阻塞态中解除,进入就绪态,然后运行的时候 处理数据,这样子系统的资源就会很好的被利用起来。计数型信号量允许多个任务对其进行操作,但限制了任务的数量。
2024-05-22 11:01:22
1293
原创 FreeRTOS---------消息队列
个人感觉这个消息队列和数组一样,就像是一个全局的数组。队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、 中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务 能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可 以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞 状态以等待队列数据有效。当队列中有新消息时,被阻塞的任务会被唤醒并处理新消息;
2024-05-21 13:46:33
1330
1
原创 FreeRTOS---------任务管理
这个文章里面简单概括了FreeRTOS的相关重点在我们进入嵌入式这个领域的时候,往往最先接触的是裸机编程,即不带任何操作系统,程序在main函数中初始化完成以后就进入一个大的while(1)循环,这种架构适用于大多数的功能较少,单片机资源匮乏,并且对系统可靠性要求较高的场合。但随着产品需要实现的功能的不断增加,这时候仅仅用一个while(1)循环来处理众多纷纷扰扰的任务已经显得越来越力不从心,多任务实时操作系统应运而生。
2024-05-20 22:06:50
896
4
原创 ESP01S烧录
在官方的固件烧录软件里先选择esp8266之后按照图里面的设置,选择下载好的固件,先用erase擦除里面的,之后点击start即可。链接:https://pan.baidu.com/s/1JZ7Hi4UzjRl4NmCvEoa9gg。有些到手的esp01s并没有烧录固件需要手动烧录,于是我写下这个文章、--来自百度网盘超级会员V2的分享。
2024-03-23 20:48:56
338
STM32的学习路线发展
2024-06-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人