自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FreeRTOS-定时器详解

本文要讲解的软件定时器总结起来就一句话-两条定时器链表和一条消息队列,一个守护任务,如果你前面的两天延时链表(任务的阻塞与唤醒)与队列理解很深刻,那软件定时就非常简单了。FreeRTOS-时间片与任务阻塞的实现FreeRTOS-消息队列详解。

2023-06-11 20:22:34 7177 5

原创 FreeRTOS-任务通知详解

本文的重点主要有两点:1.搞明白任务通知的三个状态(实现任务通知的关键),2.明白任务通知的优缺点,以及任务通知模拟出来的队列、信号量、事件组与真实的有何区别。

2023-05-24 21:09:21 3722 6

原创 FreeRTOS-事件组详解

事件是一种实现任务/中断间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。

2023-05-13 21:05:53 6189 1

原创 FreeRTOS-信号量详解

本文将详细全方位的讲解FreeRTOS的信量量,其实你学完了《FreeRTOS-消息队列详解》信号量的学习就非常简单了,因为所有的信号量的本质的都是特殊的队列(特殊在哪里:信号量只有队列头部,并没有后面的环形存储区,也就是说信号量只负责消息传递,并不传递数据),当然这么多信号量也是有区别的,不同的信号量对应不同的应用场景,还是以源码分析为主,源码分析透了,这几种信号量的区别,或者特殊机制(互斥量的优先级继承)就一清二楚了。《FreeRTOS-消息队列详解》

2023-01-27 20:57:20 12131 5

原创 STM32RTC外设详解

详细讲解RTC时钟配置,以及注意事项,实现一个实时时钟

2023-01-12 11:28:25 6260

原创 STM32-启动文件详解

还是那句老话基础不牢地动山摇,今天主要来分析由汇编语言编写的启动文件,在进行main函数之前到底做了哪些准备工作,本篇文章所涉及到的部分汇编指令,以及CPU寄存器SP,PC,LR作用,以及最重要的什么是堆和栈请看->《FreeRTOS-ARM架构与程序的本质》,里面已经详细的阐述了以上问题,本文主要是了解启动文件的作用。

2023-01-12 11:28:04 6209 3

原创 FreeRTOS-消息队列详解

本文将详细全方位的讲解FreeRTOS的队列消息,其实在FreeRTOS中队列的重要性也不言而喻,与FreeRTOS任务调度同等重要,因为后面的各种信号量基本都是基于队列的。本文主要围绕(队列的创建、队列的出队、入队函数、队列的环形缓冲区的实现(数据的拷贝、先进先出、以及后进先出的实现)、队列锁、以及队列任务级函数与中断级函数的区别)队列的重要知识,本文都会以源码分析的形式进行解析。!!

2023-01-11 22:47:26 10622 8

原创 牛客网-《刷C语言百题》第五期

手把手教你C语言刷题从入门到熟练掌握!!!

2022-11-19 23:48:26 3950 5

原创 牛客网-《刷C语言百题》第四期

手把手教你C语言刷题从入门到熟练掌握!!!

2022-11-16 18:30:00 2900 4

原创 牛客网-《刷C语言百题》第三期

手把手教你C语言刷题从入门到熟练掌握!!!

2022-11-03 18:40:43 4099 3

原创 牛客网-《刷C语言百题》第二期

手把手教你C语言刷题从入门到熟练掌握!!!

2022-10-27 18:59:55 4396 8

原创 STM32SDIO外设详解

STM32SDIO外设详解,详解讲解主机STM32读写SD卡进行数据交互,重点理解SD卡的识别过程以及数据传输过程,理解每个重要命令与响应,彻彻底底理解SD卡的通信过程。

2022-10-24 11:03:16 4454 29

原创 牛客网-《刷C语言百题》第一期

手把手教你C语言刷题从入门到熟练掌握!!!

2022-10-17 23:00:58 4382 6

原创 FreeRTOS-任务管理

今天正式开启FreeRTOS应用讲解,本文将采用,先讲解原理然后分析FreeRTOS的源码,最后进行实验,由浅入深讲解FreeRTOS的应用,本文将详细阐述任务的多种状态以及任务状态之间如何切换,多种调度策略,以及空闲任务的作用,主要方式就是深入理解FreeRTOS的源码,才能深刻理解任务如何管理,本质上就是几个函数,几个链表,任务在这几条链表中挂来挂去就实现了任务的状态的切换。

2022-10-15 16:44:28 3773 2

原创 牛客网刷题-两个队列实现栈

前言:想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力,最终所有的努力都需要得到面试官的认可才能拿高薪。推荐一款刷题神器 -> 点击跳转进入网站(数据结构算法方向)题目原型:输入输出示例:1.题目分析:题目意思很明确,就是要你用两个队列去实现一个栈,本质就是用两个队列的接口函数去实现栈

2022-10-09 17:55:13 1691 1

原创 FreeRTOS-时间片与任务阻塞的实现

本文将详细阐述FreeRTOS多优先级的实现,时间片的轮转,以及深入理解任务在就绪态与阻塞态如何相互转换,这一切的本质都基于链表,然后在加上一些简单的算法,只要掌握了链表一切都不是什么大问题。《FreeRTOS-链表的源码解析》《FreeRTOS-实现任务调度器》1.定义延时链表与延时链表指针2.任务延时链表初始化prvInitialiseTaskLists()函数。

2022-10-08 19:13:14 6761 5

原创 FreeRTOS-实现任务调度器

本文正式开启对FreeRTOS内核的研究,首当其冲的就是就是任务调度器的实现,任务调度器作为FreeRTOS的核心,因为FreeRTOS的本质就是任务的轮流运行,为了循序渐进的学习,避免一口吃成一个大胖子,本文只实现两个任务的切换,先不管任务的优先级,本文的目的就是将任务切换的全过程分析的透透彻彻,在此之前要深入理解FreeRTOS链表操作,还有ARM架构的知识,我已经帮你们总结好了。《FreeRTOS-链表的源码解析》《FreeRTOS-ARM架构与程序的本质》《FreeRTOS-ARM架构深入理解》

2022-10-04 18:00:00 11530 13

原创 FreeRTOS-ARM架构深入理解

由于FreeRTOS操作系统所涉及的ARM架构的知识较多,而且这是知识对理解FreeRTOS的本质和底层实现至关重要,仿佛ARM架构是为操作系统量身定制一般,所以ARM架构的知识的重要性我就不说了,本篇文章主要是对操作系统底层实现所用到ARM架构的知识进行汇总,所以本篇文章参考《Cortex-M3权威指南》,也是对我上篇文章《FreeRTOS-ARM架构与程序的本质》的补充。同几乎所有的处理器架构一样,Cortex-M处理器在运行时需要栈存储和栈指针(R13)。

2022-09-27 10:15:21 8363 23

原创 牛客网刷题-括号匹配问题

前言:想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力。推荐一款刷题神器 -> 点击跳转进入网站(数据结构算法方向)题目原型:输入输出示例:1.题目分析:题目意思很明确,判断要字符串里面的括号是否匹配,首先左右括号的数量要相等,第二要按顺序匹配,成对称状态。2.解题思路:要想解决这个

2022-09-25 22:39:04 2209 6

原创 FreeRTOS-ARM架构与程序的本质

本文将结合ARM架构全面阐述程序的本质(什么是栈/堆,全局变量如何存储),以及深入理解函数调用过程,理解局部变量为啥具有临时性,函数如何传参,如何返回值等等,这些知识是理解FreeRTOS内核本质必要条件,才能深入理解FreeRTOS的任务切换所涉及的内存操作的实质,其重要性也不言而喻了堆和栈说白了都只是内存(单片机上的SRAM)中的一块空闲的空间,只是他们的用法和位置有所区分。栈栈区是从高地址向低地址方向生长:高地址是栈底,低地址是栈顶,也使用高地址空间在使用低地址空间。

2022-09-22 18:00:00 7062 27

原创 牛客网刷题-环形链表

前言:想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力。推荐一款刷题神器 -> 点击跳转进入网站(数据结构算法方向)题目原型:输入输出示例:1.题目分析:题目中让我们判断一个链表是否带环,题目所说的带环不是环形链表的意思,而是最后一个结点又会重新指向前面某个结点,形成像一个环一样。2.

2022-09-20 18:28:57 1574 23

原创 FreeRTOS-链表的源码解析

FreeRTOS的学习,从RTOS的源码升入理解到RTOS的熟练应用,真正理解FreeRTOS的底层,但是要想阅读源码要求对C语言的指针与结构体,数据结构的链表和队列的知识的基本功要非常扎实,以及ARM的架构有所了解,本篇文章就带你们深入理解FreeRTOS的链表实现,以及为什么要这样实现,链表和队列贯穿整个操作系统,重要性就不言而喻了。《C语言链表超详解》《自定义类型-结构体详解》《指针超详解》

2022-09-13 18:42:57 6889 36

原创 牛客网刷题-合并两个排序的链表

前言:想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力。推荐一款刷题神器 -> 点击跳转进入网站(数据结构算法方向)题目原型:输入输出示例:1.题目分析:两个有序链表合并成一个新的有序链表,有几种特殊情况当两个链表为空则新链表为空,其中一个链表为空则新链表为另一个不为空的链表。2.解题思

2022-09-11 18:00:00 1567 37

原创 牛客网刷题-反转链表

前言:想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力。推荐一款刷题神器 -> 点击跳转进入网站(数据结构算法方向)题目原型:输入输出示例:1.题目分析:题目意思很简单就是链表头尾交换,将整个链表反向连接起来,实现之后返回新链表的头结点。2.解题思路:思路二:头插法创建一个新的空链

2022-09-02 23:41:12 1144 18

原创 STM32液晶显示中英文

为什么要有字模但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库,计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符。......

2022-08-24 18:42:48 5078 7

原创 牛客网刷题-合并两个有序数组

牛客网刷题,提高自己的编程水平

2022-08-22 07:05:57 1474 23

原创 STM32液晶显示

液晶控制的基本原理,FSMC模拟8080时序实现与液晶控制器ili9341通信从而控制液晶屏,液晶驱动初始化、常用指令。

2022-08-12 18:22:51 7872 6

原创 STM32FSMC扩展SRAM

用stm32扩展SRAM实验来熟练掌握FSMC外设的配置,熟悉FSMC时序,以及SRAM的读写时序

2022-07-17 18:00:00 3474 2

原创 STM32高级定时器详解

带死区时间带刹车控制的带互补输出输出比较实验、脉宽捕获实验、PWM捕获占空比,周期

2022-07-10 18:00:00 19354 6

原创 STM32ADC模拟/数字转换详解

ADC单通道中断读取,ADC多通道DMA读取,双ADC多通道同步规则DMA读取,ADC温度传感器读取,模拟看门狗,和按键外部触发ADC转换

2022-06-30 18:00:00 16214 39

原创 函数栈帧的形成与释放

要彻底理解临时变量为何具有临时性,以及函数传参到底是如何形成临时拷贝,是否函数传参一定会形成临时拷贝,以及返回值是如何返回

2022-06-22 18:00:00 1952 15

原创 字符串与内存操作函数详解与模拟实现

字符串操作函数与内存操作函数的特点与模拟实现

2022-06-21 21:10:01 1231 5

原创 C语言指针进阶

搞定回调函数的概念模拟实现qsort函数,深度理解二维数组、强制类型转化、以及指针运算问题,搞定数组指针面试题

2022-06-10 17:40:11 2119 44

原创 C语言栈和队列的实现

详细讲解栈与队列的定义和特性,用C语言分别实现顺序栈、链栈、顺序(循环)队列、链队列,已经顺序存储与链式存储的区别

2022-05-28 13:50:39 4752 61

原创 C语言操作符详解

深度理解取余/取模运算,以及逻辑运算符, 位操作符,移位操作符,以及深入理解a++

2022-05-25 13:45:26 5921 59

原创 STM32SPI协议通信详解

深入讲解SPI协议通信时序,详细解析SPI读写串行FALSH实验,NorFlash的存储特性以及读写指令的详细介绍!!!

2022-05-21 17:51:43 11042 55

原创 C语言链表超详解

详细对比顺序表与链表的区别, 实现单链表,与双向带头循环链表,以及各中类型的链表

2022-05-17 18:50:38 115753 113

原创 STM32硬件I2C与软件模拟I2C超详解

I2C协议时序详细解剖,硬件I2C的实现,已经软件模拟I2C的实现,以及EEPROM的详细介绍

2022-05-12 16:13:40 55721 134

原创 C语言深度解剖之数据到底在内存中如何存储

深度解析C语言中数据如何存放在内存之中,数据如何从内存读取数据,如何解析内存中存放的二进制序列

2022-05-08 18:29:23 2657 63

原创 动态内存分配及动态顺序表的实现

动态内存如何开辟,以及利用动态内存实现动态顺序表

2022-05-05 19:25:21 2431 89

空空如也

空空如也

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

TA关注的人

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