自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RTOS任务的挂起与恢复

因此,在实际应用中,可以通过挂起一些低优先级的任务来让高优先级的任务优先执行,以提高系统的响应速度。类似地,FreeRTOS也提供了vTaskResume()函数来恢复一个被挂起的任务,该函数也接受一个参数,即要恢复的任务的句柄。任务挂起指暂停一个任务的执行,任务恢复则是使一个被挂起的任务继续执行。‘实现结果:按键一直按下时,led任务被挂起,保留最后一次工作状态,按键松开,led任务被恢复,接着闪烁。按键任务,按键按下,挂起led任务,按键抬起,恢复led任务。实现功能:通过按键控制挂起正在执行的任务。

2024-01-29 22:04:58 326

原创 FreeRTOS任务的创建(动态方法和静态方法)

一、FreeRTOS任务基本概念任务(Task):FreeRTOS 中的任务是程序执行的基本单位。任务以优先级的方式管理,高优先级的任务比低优先级的任务更容易被执行。每个任务都具有不同的堆栈和一组标志,用于控制任务的行为和与其他任务和内核进行通信。二、动态创建任务1.TaskFunction_t pvTaskCode:任务函数的指针。这个参数是一个函数指针,指向一个任务的实际执行代码。

2024-01-29 20:51:01 894

原创 RTOS系统了解引入

------>任务其实不仅仅是一个函数,因为随时会发生任务的切换,所以在这里要保存各个任务他们的局部变量,否则当执行完别的函数回到刚才被打断的函数时,局部变量就会丢失,而局部变量的保存又是通过汇编指令保存到CPU的典型寄存器(R0到R15)当中,所以运行环境相当于这16个寄存器的值(当然还有别的寄存器),并且要”依次“保存在CPU的R13寄存器(栈)所指向的RAM的位置。-------->分支问题1:运行位置很好理解,就是被打断的时候函数执行的位置(当前指令PC的值),那什么是运行环境呢?

2024-01-29 20:28:59 260

原创 stm32中断

属于是内核的器件,其作用是对STM32中的中断进行管理,因为M3内核中的中断数量很多,当同时出现多个中断时,优先处理哪个中断?M3 内核都是支持 256 个中断,其中包含了 16 个系统中断和 240 个外部中断,并且具有 256 级的可编程中断设置。对于单片机来说,中断是指CPU正在处理某个事件A,发生了另一件事件B,请求CPU迅速去处理(中断发生);2、响应优先级(sub):当抢占优先级相同时,响应优先级高的先执行,但是不能相互打断;3、抢占优先级和响应优先级都相同的情况下,自然优先级越高的先执行;

2024-01-28 22:42:41 811

原创 USART串口的应用

串口,原名叫做串行接口(Serial Interface)或串列埠、序列埠,别名叫COM口(串行通讯端口( cluster communication port ))。虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。串口通信是异步全双工通信,在串口通信中,一个数据流由10个数据位组成,包含1位起始位,7位有效数据位,1位奇偶校验位,1位停止位。但在实际开发测试环节中,经常使用printf进行打印,此时应该对printf进行重写,并包含,stdio.h头文件。

2024-01-28 21:05:11 108

原创 stm32通过按键控制led灯亮灭

本次实验以KEY4为例,接到PA0管脚,根据原理图可以看出,若设置PA0为输入管脚,那么当按键按下时,PA0将收到来自vcc的高电平信号,所以只需检测PA0口的输入状态,若为高电平则证明按键按下。其中值得注意的是,如果想要检测输入状态,则单取一次是不准确的,可以通过一个计数来判断,也可以通过一个延时来判断,如果20ms之后还是低电平,说明按键按下,当抬起按键时,程序接着执行,反转点电平状态,实现按键控制led亮灭。gpio初始化,使能各组io口的时钟,配置PA0为输入模式,其他为输出模式。

2024-01-28 20:29:46 1554

原创 stm32入门实现流水灯

先使能4组io口的时钟,在对io口进行写高电平状态操作,再然后开始定义各个io口的具体配置,先给gpio初始化函数的结构体赋值配置管脚,输出模式,输出速度,io口的上拉下拉,在传入gpio口,和结构体的地址,完成一个io口的初始化,其他同理。学单片机的第一步也是最简单的一步就是点灯,若想点灯,则首先需要了解GPIO口,GPIO全称:General Purpose Input Output,即通用输入输出端口,一般用来采集外部器件的信息或者控制外部器件工作,即输入输出。通过配置不同的功能,来达到不同的目的。

2024-01-28 19:53:53 2085

原创 线性表之单链表的编程

完成单链表的创建插入等基本操作

2023-10-29 19:11:00 38 1

原创 Makefile的使用

makefile的使用方法

2023-10-25 22:49:39 35 1

原创 GDB调试工具

gbd调试工具的使用

2023-10-25 19:36:20 36 1

原创 条件编译使用方法

条件编译的方式和使用方法

2023-10-25 17:52:50 35 1

原创 GCC编译器的基本用法

gcc编译器的基本使用方法

2023-10-25 17:02:41 25 1

原创 结构体指针及联合体数组赋值

形式:struct 结构体名结构体成员列表例:int num;

2023-10-24 10:06:57 452

原创 内存管理及动态内存使用

动态内存的使用及回收

2023-10-24 09:09:59 31

原创 通过结构体指针给结构体赋值

struct 结构体名 *指针名;

2023-10-22 16:25:40 768 1

原创 给结构体数组赋值

struct 结构体名结构体成员列表;例如:int num;

2023-10-22 14:57:39 2044

原创 用函数递归实现5!

验证正确 5的阶乘为120。

2023-10-22 12:04:50 115 1

原创 编程实现自己的 strcat函数

实现自己的字符串相连函数

2023-10-21 18:01:45 195 1

原创 编写自己的strcmp函数

编写自己的字符串比较函数

2023-10-21 13:57:45 1341

空空如也

空空如也

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

TA关注的人

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