- 博客(9)
- 收藏
- 关注
原创 基于ESP32+MicroPython+阿里云平台+微信小程序的课设项目
本次项目采用的ESP32芯片作为主控,使用MicroPython和thonny来开发的智慧系统。MCU连接阿里云通过阿里云的数据流转功能将连接MCU的DHT11,超声波等传感器所测得的数据通过MQTT协议上传至阿里云平台,而后在云平台上通过数据流转功能将得到的数据通过MQTT协议下发至微信小程序上而后显示,通过小程序可远程开关板载LED灯以及WS2812B炫彩灯。
2024-09-15 20:27:29
1381
4
原创 FreeRTOS任务通知
从 V8.2.0 版本开始提供任务通知这个功能,每个任务都有一个 32 位的通知值,在大多数情况下任务通知可以代替二值信号量,计数信号量 ,事件组,以及长度为1的队列。
2024-08-15 14:41:03
2301
原创 FreeRtos事件组
事件是一种实现任务间通信的机制,主要用于实现多任务的同步,但事件通信只能是事件类型之间的通信,无数据的传输。与信号量不同的是,它可以实现一对多,多对多的同步。当configUSE_16_bit_Ticks定义为0,那么uxEventBits是32位的,有24个位用来实现事件标志组。一对多同步类型:一个任务等待多个事件的触发,这种情况是比较常见的。多对多同步模型:多个任务等待多个事件的触发。
2024-08-13 20:22:22
2486
原创 FreeRtos互斥量
如果L任务在执行任务的过程中,此时M任务刚好被唤醒,因为M任务的优先级高于L任务,这是M任务就会抢占L任务对CPU的使用权,直到任务M执行完毕,再把CPU的使用权归还给L任务,L任务才得以继续进行,等L任务执行完毕之后归还资源的使用权,此时H任务才能开始执行。互斥量处于开锁状态时,任务才能获取互斥量成功。反之互斥量处于闭锁状态时,任务无法获取该互斥量,该任务将被挂起,若被挂起的任务优先级高于获得互斥量的任务的优先级,则获得互斥量的任务的优先级将被临时提升,当该任务释放互斥量时便会将任务的优先级恢复原状。
2024-08-12 21:47:18
1837
原创 FreeRtos信号量
FreeRtos信号量包括二值信号量、计数型信号量、互斥信号量和递归互斥信号量。信号量用于实现任务间的同步或临界资源的互斥访问《相当于一个上,代码只有获得了这个锁的钥匙才能够执行。信号量类似于我们在裸机编写中断服务函数中给予标志位赋值的操作,然后根据标志位所对应的函数让其执行。当某个任务需要获得对应的指令才能开始执行时,因为主程序不可能一直等待对应指令的产生而不去执行其它的任务,这时信号量便可保证其它任务能够正常运行的同时也能兼顾到指令一旦发出对应程序能够立马执行。
2024-08-10 20:25:09
999
原创 FreeRtos消息队列
队列又称消息队列,是一种常用于任务间的通信数据结构,队列可以在任务与任务间,中断和任务间传递信息,实现任务接收来自其它任务或中断的不固定长度的消息。
2024-08-07 21:08:48
886
原创 FreeRtos任务管理
该参数为要挂起的任务句柄,如果使用函数xTaskCreate()创建任务的话那么函数的参数pxCreatedTask 就是此任务的任务句柄,如果使用函数xTaskCreateStatic()创建任务的话那么函数的返回值就是此任务的任务句柄。通过该函数能够让每个处于死循环的任务进入阻塞态,这样高优先级的任务在使用CPU执行完任务后,通过任务延时函数进入阻塞态,让出CPU的使用权,给低优先级别的任务使用CPU执行任务。挂起所有的任务,所有任务无法得到cpu的使用权,无法正常执行。带ISR指仅可在中断中使用。
2024-08-06 21:23:21
664
原创 FreeRtos移植
本人原本自己移植,移植半天哪哪都有问题,不如直接下载这个还更省心,附上链接来源于B站大佬的开源。https://pan.baidu.com/s/1wuaYIuTYH3-6p1LZaEOaDw?pwd=1234
2024-08-06 15:05:14
117
原创 FreeRtos在STM32F103C8T6上的学习过程
我们在写代码之前都会对硬件进行初始化,将所需的硬件初始化函数放置在BSP_Init()函数当中,便于之后所添加的各类硬件函数初始化,方便我们的管理。这里先放着一个LED_GPIO的初始化函数,便于接下来观察实验现象,串口初始化函数用来发送给电脑串口助手发送实验信息。
2024-08-06 14:59:47
675
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人