自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从0开始阅读datasheet编写一个norflash

阅读也是非常的简单,但是注意的是我们是进行扇区擦除之前一定需要写使能,这就是我为什么刚刚先阅读写使能的原因,然后注意我们传入的参数是以第几个扇区传入的,因此我们需要saddr*4096到具体的地址。看了前面的,大家想必对也大概了解了如何通过datasheet进行驱动编写,最后我们再举最后一个例子,就基本实现了,读、写、擦除三大功能,剩下的读取状态寄存器,写状态寄存器就交给大家自行完成啦。这个才是我们主要要关注的地方,向它支持外部串行接口的模式0、模式3是需要通过读者自己去阅读手册的。我们以扇区擦除为例。

2024-10-29 20:01:21 874

原创 ESP-IDF中频繁:task_wdt: esp_task_wdt_reset(713): task not found

在ESP-IDF框架中采用Freertos操作系统,一个任务进行MPU6050模块读取,一个任务进行OLED显示,任务之间采用队列进行结构体信息接收发送。

2024-10-12 22:37:18 197

原创 一文读懂Freertos内核(大学生更懂大学生)

作为一名学习时间一年左右的大学生,本文肯定对rtos的解释不如一些老师和一些博主,对一些解释可能不是很科学,希望各位读者大佬能够指正,本文是以记录学习过程为出发点,将自己学习过程中的理解,通过更通俗的解释分享出来,让读者初步的了解rots内核。至此,整篇文章结束,想必大家能够对Freertos有新的认识,作为一名学生,文章可能欠缺专业性,里面所设计的知识可能存在误导,希望各位大佬能够指正。学习一门操作系统不光只是为了学了他的AP接口,更是学习他内部的核心。

2024-07-09 18:00:37 2499 6

原创 freertos中我的第一个任务到底是怎么启动的

在Freertos中,我们如果需要将创建好的任务进行调度,那么必然离不开调度器,而将启动调度函数进行层层深扒,我们可以看到在xPortStartScheduler()函数中设置完PendSV和Systick优先级后开始第一个函数并且不返回。而正是这个由汇编编写的 prvStartFirstTask();中涉及到了更新MSP以及产生SVC系统调用。去到SVC的中断里面真正的切换到第一个任务。vPortSVCHandler内部其实很简单,我们将语句一句句分析,就能知道是如何如何真正的启动第一个任务并且不再返回。

2024-07-03 17:47:38 699 1

原创 F407系列DHT22温湿度驱动移植

和DHT11一样,都是单总线,通过判断电平变化时间来确定0,1。只需要在dht22.h中修改dht_IO和dht_gpio即可。详细资料参考微雪电子官网https://www.waveshare.net/wiki/DHT22_Temperature-Humidity_Sensordht22模块驱动和dht11模块驱动相差不大,大家也可以学习完dht11之后根据提供的数据手册自行编写驱动然后一定要注意!!!!一定要注意!!!!一定要注意!!!!在函数中打印数据调试的前提是不会影响到时序!!!!

2024-05-24 22:46:06 689 1

原创 FreeRTOS之软件定时器

手机的闹钟就是一个定时器,可以到点触发,周期性触发。在FreeRTOS中我们可以设置无数个“软件定时器”,但是都是基于系统滴答中断。本文介绍了FreeRTOS中的软件定时器的几个API函数及基本使用方法。

2024-04-18 20:27:56 680 1

原创 FreeRTOS任务通知及使用

本文介绍了FreeRTOS中的任务通知及基本使用,模拟了队列、信号量、事件组。要面对不同的情况使用不同的API函数。

2024-04-17 21:25:55 781 1

原创 FreeRTOS中的事件组

之前在FreeRTOS中学了队列和信号量,利用队列和信号量来传达信息,但是我们仔细思考一下,1、如果单单只依靠队列或者信号量是不是只能唤醒一个任务?但是我需要同时唤醒达到条件的所有任务呢?2、如果使用队列或者信号量是不是在使用之后就需要释放消息?但是我们希望使用之后还要唤醒其他事件呢?所以这个时候我们就引入了事件组这个概念,那么什么是事件组呢?事件组可以看成一个整数,他的每一位bit可以看成一个事件,bit1表示事件发生了,bit0表示事件没有发生。一个或多个任务都可以去写这些位,也可以去读这些位。

2024-04-16 20:14:59 1530

原创 FreeRTOS之信号量和互斥量

我可以通过队列来实现同步和异步,为什么还需要一个信号量呢?使用信号量的优点在哪呢,为什么需要互斥量呢?互斥量的优点在哪呢?二值信号量是一种基础的同步机制,它是一种特殊的信号量,其计数值只能为0或1。二值信号量主要用于表示一个特定的资源是否可用,或者某个条件是否满足。当二值信号量的值为1时,表示资源可用或某个条件为真;当其值为0时,则表示资源不可用或条件未满足。在利用队列的时候我们通过给队列发送,当任务结束之后再释放。同样的道理。在信号量中我们也要获取(Take)二值信号量和给予(give)二值信号量。

2024-04-16 00:15:18 1843

原创 FreeRTOS实现同步和互斥

很多大佬的博客将这两个概念写的很清楚。通俗点讲:同步是在互斥的基础上进行有序的资源访问,例如串口的发送和接收,要等发送完数据之后才能接收数据。互斥是同一个资源只允许一个资源对其进行访问,好比我和好朋友打电话,他说话的时候我就要倾听,我说话的时候他就要倾听。本文介绍了FreeRTOS中如何利用队列来实现简单的同步和互斥。

2024-04-14 20:01:08 2123 1

空空如也

空空如也

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

TA关注的人

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