- 博客(32)
- 收藏
- 关注
原创 基于尚硅谷FreeRTOS视频笔记——16—FreeRTOS的任务创建和删除
不同点:const/* 任务堆栈,一般为数组,由用户分配 */const/* 任务控制块指针,由用户分配 */因为静态创建需要我们自己分配空间,所以不同TCB步骤。
2025-04-20 21:00:52
408
原创 基于尚硅谷FreeRTOS视频笔记——11—RTOS获取源码及源码简介
注意Keil中的文件都转移在了RVDS文件中。可以看到这里可以查找代码是如何使用的。进入后,存在ARM架构不同的内核。管理内存的文件(同样需要移植)
2025-04-20 19:42:22
395
原创 基于尚硅谷FreeRTOS视频笔记——9—上下文切换的时机与空闲任务
PendSV是一种中断AI生成:在PendSV中,,其设计结合了低优先级、软件触发和堆栈操作,确保实时系统中任务切换的高效性与可靠性。这种机制是RTOS实现多任务调度的核心基础之一。当PendSV中寄存器的ICSR的第28位置为1后,就可触发PendSV的中断。PendSV产生的条件1.RTOS滴答中断,每中断一次,就会查看是否有阻塞态任务要进入就绪态。判断就绪态任务有无更高的任务来。2.任务执行完毕产生。
2025-04-19 10:55:46
204
原创 基于尚硅谷FreeRTOS视频笔记——6—滴答时钟—上下文切换
FreeRTOS需要有一个时钟参照,并且这个时钟不会被轻易打断,所以最好选择systick。
2025-04-18 21:33:11
293
原创 基于尚硅谷FreeRTOS视频笔记——4—多任务处理
通俗来讲就是这就时多任务处理。但是,单核处理器一次只能处理一个任务,就是说在while中,任务们只能一个一个来处理而stm32就是一个单核处理器。那么,怎样使得stm32进行多任务处理呢?这就需要制造一种假象,就是通过很快的切换任务,来达到任务都在执行的假象。这就是并发操作:一个时间只有一个任务在操作。并行:同时进行多个任务,一个时间可以有多个任务进行操作。如何进行任务的切换,这就需要考虑任务的调度了。
2025-04-18 15:15:05
317
原创 基于尚硅谷FreeRTOS视频笔记——12—HAL库工程移植
在it文件中,也有PendSV中断函数,如果这里的中断不注释掉,那么会与工程配置文件中的中断函数发送重定义问题,所以应该注释掉。
2025-04-17 11:43:41
438
原创 按键++,--在操作uint8_t类型(一个取值为1~10的数)中,在LCD中显示两位数字问题
问题概况在执行按键++,--过程中,本来数值为1~10.但是在执行过程中,发现数值在经过10数值后,后面的“0”会一直在LCD显示屏中显示。就是执行++操作中,从1,2,3,4,5,6,7,8,9,10后,10,20,30,40,50,60,这中情况。以我观察,是LCD屏幕不会自动将数据后的0清屏。所以我们应该设想,在数值变为10后,执行一个清屏操作。
2025-04-08 20:31:10
270
原创 按键切换LCD显示后,显示总在第二阶段,而不在第一阶段的问题
这是一个密码锁的程序,当在输入密码后,原本是要重置密码,但是程序总是在输入密码正确后总是跳转置设置第二个密码,而第一个密码总是跳过。
2025-04-06 11:31:38
124
原创 (178): error: #159: declaration is incompatible with previous “HAL_T
通俗来讲,就是你在程序上调用了一个比如LED_ON();的函数,但是,你的void LED_ON(void);的函数写在LED_ON();这段函数在函数初始化中被调用,但是这段函数在初始化后面。函数在调用函数的后面,导致程序不知道这个函数的存在。
2025-03-30 16:42:06
471
1
原创 EEPROM写入和读取时间过短导致乱码的原因
然而,当进行多字节连续写入时,如果未充分考虑其硬件特性,则可能出现乱码现象。为了确保每一步写入都能顺利完成而不干扰后续步骤或者其它功能模块的工作流程,应该加入合理的软/硬延时设置。如果没有这样的保护措施存在的话,快速迭代式的多次写指令很可能造成部分区域未能及时更新完毕就被强制覆盖掉原有内容,最终体现在外部看来就是所谓的“乱码”。时间来稳定地将数据存入单元格中。在此期间,任何试图访问该地址的操作都可能获取到尚未完全写入的数据片段,从而表现为乱码。EEPROM 的写入操作并非瞬时完成,而是需要一定的。
2025-03-26 20:46:01
328
原创 蓝桥杯——HAL库串口的基本配置
可以看到,串口1的时钟源由PCLK2提供。首先,查看原理图,确定需要配置的串口。找到时钟树(tree)(点击查找即可)随后,点击connectivity。需要配置PA9,PA10。先查阅 微控制器参考手册。
2025-03-04 21:12:14
214
原创 .. error: #59: function call is not allowed in a constant expressio
表示全局变量在函数外试图用函数赋值,这不被允许。
2025-02-27 16:53:09
579
原创 SysTick系统滴答计时器与HAL_Delay延迟函数的初步认识
为什么呢?头文件中在main()中调用了.h文件,所以,为全局变量。后续要使用到uwTick。
2025-02-25 21:05:48
348
原创 HAL库初始化文件main中函数的基本认识
main()函数,程序执行的主要入口进入main.h函数中其中主要包括一个头文件。我们再次点击进入其中,还是包含一个头文件,点击进入头文件库,HAL文件配置库。
2025-02-25 19:34:38
264
原创 蓝桥杯嵌入式stm32G431——GPIO手册及相关寄存器
由图可以看出,共有64个引脚,每个引脚不仅仅可以输出1与0(低电平,高电平)。还有其他的功能,比如串口的RTX。那我们如何知道这个引脚的其他功能是什么呢?这就需要介绍数据手册了(又见面了,数据手册)。标黄部分为使用到的部分因为为“浮空”,所以没有接上下拉电阻。使用场景:当IO口外界存在上拉或下拉电阻时,可调为该模式。寄存器的配置通过手册查找寄存器进入模式寄存器这里如果我们要将GPIOA的Pin0口调用为浮空输入模式,
2025-02-22 15:52:00
1506
2
原创 基于蚂蚁工厂科技的学习笔记——对Cortex—M内核的初步了解
中间的一个大图代表的就是整个stm32芯片。其中芯片内部存在。其中,是由芯片制造商开发,但由ARM公司因为ARM公司在这一领域的领先地位和广泛认可度使得其成为众多芯片制造商的首选合作伙伴。可以将。这些共同组成stm32芯片。
2025-02-09 20:40:44
364
原创 蓝桥杯嵌入式笔记——环境的搭建
使用默认固件库。勾上后,系统自动去CubeMX资源库去找最新的版本资源,没有的话就要下载。但比赛时是没有网络的,所以下载不了。当没勾时,下面的就会亮。
2025-02-07 18:09:54
728
原创 蓝桥杯嵌入式笔记——硬件资源介绍
先直接从产目录熟悉各模块原理图调试器与目标MCU编辑晶振跳线帽的作用信号发生器编辑模拟输出LED指示灯USBLCD显示屏按键I2C总线拓展接口资源介绍跳线帽资源品手册开始看,先预先熟悉一下。RXD:(Receive Data)数据接收引脚TXD:(Transmit Data)数据发送引脚以下三个是下载用NRST:复位引脚。SWCLK:(Serial Wire Clock)串行时钟线。它是STM32单片机调试接口SWD(Serial Wire Debug)中的一个关键信号线,与SWDIO(Serial W
2025-02-05 23:51:40
580
原创 基于江科大51单片机视频笔记——串口通信
串口就是一种传输数据用的接口,U盘,雷电接口等。就是可以和其他单片机或者外设传递数据的接口(交流接口)。能够测量X,Y,Z轴的角度和加速度等等,然后传递给单片机,可以通过串口来将数据传递给单片机。
2025-02-02 13:54:51
1199
原创 基于江科大51单片机视频笔记——定时器及中断扫描按键
TL0:T代表Time, L代表Low,H代表High。0代表编号。下面的8 Bits可以代表为可以存储的容量,两者相加总共可以存储65536个数(2^16==65536)。TL0:就是低8位,TH0:就是高八位科普:(在计算机科学中,高八位和低八位通常指的是一个16位二进制数的高8位和低8位。一个字节(Byte)是8位(bit),因此一个16位的数可以被视为由两个字节组成,其中高八位是指从左到右的前8位,低八位是指从左到右的后8位。
2025-01-25 21:52:31
864
原创 基于江科大51单片机视频笔记——矩阵键盘及密码锁
以我理解,因为这个,而x轴有x1,x2,x3,x4,y坐标有y1,y2,y3,y4。这样参数只需8个,而独立按键需要每一个按键接线,这样就节省了IO口。
2025-01-20 22:36:27
490
原创 基于江科大51单片机视频笔记——模块化编程与LCD1602使用
举下面的例子ifndef顾名思义就是(if)如果没有(n)定义(define)AAA(可能为函数),就不执行ifnde中的函数。如果执行代码,bfoahdaiu这个代码明显是错误的。编译后看吧,这没执行bfoahdaiu代码吧。就是整个文件本没有defineAAA,所以就不执行这个函数。但如果添加AAA后出现报错显示。
2025-01-19 11:24:07
373
原创 基于江科大51单片机视频笔记——数码管(静态,动态)
输入端:读取A,B,C端的电平,转化为二进制数字(如101),后在转化为十进制数,会发现最高恰好为8,后输出给输出端。如图:当CBA为000时,对应十进制0,就是Y0使能当CBA为001时,对应十进制1,就是Y1使能当CBA为101时,对应十进制5,就是Y5使能DIR:(direction)顾名思义,就是控制数据方向的作用。当输入为高电平,数据由左向右传入。当输入为低电平,数据由右向左传出。控制高低电平由J21控制(跳线帽)OE:使能端。
2025-01-17 14:41:41
955
原创 基于江科大51单片机视频笔记——按键控制LED
图示代码为先检测P3_1口是否为低电平(是否第1+1个按键按下),如果按下,P2_0口为低电平(P2中第0+1个LED点亮)。该图表示二进制(1111 1110),也就是1,2,3。LED的寄存器为P2,为8位寄存器,就是可以容纳二进制(0000 0000)这样,但一般都赋值为16进制数据。首先,按键按下时,会有微小抖动(人眼看不出),因此,需要进行。所以按键按下时对应IO口为低电平,松手时IO口为高电平。图1为按键2控制++,图2为按键1控制--。当=赋值为1以上的数据时,都为高电平。
2025-01-16 23:20:04
414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人