自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【6】STM32·FreeRTOS·列表和列表项

列表:FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS 中的任务。列表项:存放在列表中的项目列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表列表的特点:列表项间的地址非连续,是人为的连接到一起的。列表项的数目是由后期添加的个数决定的,随时可以改变数组的特点:数组成员地址是连续的,数组在最初确定了成员数量后期无法改变在OS中任务的数量是不确定的,并且任务状态是会发生改变的,所以非常适用列表(链表)这种数据结构1.1、列表。

2024-11-23 16:58:58 1075

原创 【5】STM32·FreeRTOS·临界段保护与调度器挂起

什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段1、外设需严格按照时序初始化的外设:IIC、SPI等等2、系统系统自身需求3、用户用户需求中断和任务调度可以打断当前程序的运行FreeRTOS 在进入临界段代码的时候需要关闭中断,当处理完临界段以后再开中断函数描述任务级进入临界段任务级退出临界段中断级进入临界段中断级退出临界段。

2024-11-20 22:58:51 917

原创 【11】STM32·HAL库·DMA

DMA,全称 Direct Memory Access,即直接存储器访问。DMA 传输将数据从一个地址空间复制到另一个地址空间DMA 传输无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为 RAM 和 IO 设备开辟一条直接传输数据的通道,使得 CPU 的效率大大提高。作用:为CPU减负DMA 存储器总线:DMA 通过该总线来执行存储器数据的传入和传出,包括 SARM1/2/3 及 F(S)MC 外部存储器。DMA 外设总线:DMA 通过该总线访问。

2024-05-20 15:22:42 1931 1

原创 【4】STM32·FreeRTOS·中断管理

让 CPU 打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断中断执行机制,可简单概括为三步1、中断请求:外设产生中断请求(GPIO外部中断、定时器中断等)2、响应中断:CPU 停止执行当前程序,转而去执行中断处理程序(ISR)3、退出中断:执行完毕,返回被打断的程序处,继续往下执行。

2024-05-10 23:02:40 1354

原创 【3】STM32·FreeRTOS·任务挂起和恢复

形参描述待挂起任务的任务句柄1、此函数用于挂起任务,使用时需将宏 INCLUDE_vTaskSuspend 配置为 12、当传入的参数为NULL,则代表挂起任务自身(当前正在运行的任务)无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复形参描述待恢复任务的任务句柄使用该函数注意宏:INCLUDE_vTaskSuspend 必须定义为 1任务无论被 vTaskSuspend() 挂起多少次,只需在任务中调用 vTaskResume() 恢复一次,就可以继续运行。且被恢复的任务会进入就绪态!

2024-05-09 17:57:11 1179 1

原创 【2】STM32·FreeRTOS·任务创建和删除

动态创建任务:任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从 FreeRTOS 管理的堆中分配。静态创建任务:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供。:更新下一个任务的阻塞超时时间,以防被删除的任务就是下一个阻塞超时的任务。将设计四个任务:start_task、task1、task2、task3。将设计四个任务:start_task、task1、task2、task3。

2024-05-08 22:34:12 1380

原创 【1】STM32·FreeRTOS·新建工程模板【一步到位】

名称描述FreeRTOSFreeRTOS 内核FreeRTOS 组件tools工具FreeRTOS 的 GitHub 仓库链接快速入门指南官方文档链接升级到指定 FreeRTOS 版本官方文档链接FreeRTOS 历史更新记录其他其他。

2024-05-06 20:55:09 1202

原创 【17】STM32·HAL库·CAN

CAN(Controller Area Network),是ISO国际标准化的串行通信协议。为了满足汽车产业的“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需求。低速 CAN(ISO11519) 通信速率 10~125Kbps,总线长度可达 1000 米高速 CAN(ISO11898) 通信速率 125Kbps~1Mbps,总线长度 ≤40 米(经典CAN)CAN FD 通信速率可达 5Mbps,并且兼容经典 CAN,遵循 ISO 11898-1 做数据收发。

2024-04-26 17:28:47 1843 1

原创 【8】STM32·HAL库·定时器

使用纯软件(CPU 死等)的方式实现定时(延时)功能us *= 72;缺点1、延时不精准2、CPU 死等基本定时器为 TIM6 和 TIM7,主要特性有:16 位递增计数器(计数值:0~65535)16 位预分频器(分频系数:1~65536)可用于触发 DAC在更新事件(计数器溢出)时,会产生 中断/DMA 请求通用定时器为 TIM2 到 TIM5(在 F4 中 TIM9 到 TIM14 为阉割版通用定时器),主要特性有:16 位递增、递减中心对齐计数器(计数值:0~65535)

2024-04-18 17:49:07 2394 1

原创 【7】STM32·HAL库·看门狗

IWDG(Independent watchdog),即独立看门狗本质能产生系统复位信号的计数器特性递减的计数器,时钟由独立的 RC 振荡器提供(可在待机和停止模式下运行),看门狗被激活后,当递减计数器计数到 0x000 时产生复位喂狗:在计数器计数到 0 之前,重装载计数器的值,防止复位异常外界电磁干扰或者自身系统(硬件或软件)异常,造成程序跑飞,如:陷入某个不正常的死循环,打断正常的程序运行作用主要用于检测外界电磁干扰,或硬件异常导致的程序跑飞问题应用。

2024-03-30 21:18:03 1824 1

原创 【6】STM32·HAL库·串口

串行通信接口:指按位发送和接收的接口。如:RS-232/422/485等RS-232接口(DB9)数据:TXD(pin 3):串口数据输出RXD(pin 2):串口数据输入握手:RTS(pin 7):请求发送CTS(pin 8):清除发送DSR(pin 6):数据发送就绪DCD(pin 1):数据载波检测DTR(pin 4):数据终端就绪地线:GND(pin 5):信号地其他:RI(pin 9):振铃指示。

2024-03-20 20:50:31 2053 1

原创 【5】STM32·HAL库·中断

打断 CPU 执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断NVIC 还有:中断挂起,解挂,激活标志等非常用功能,不做介绍!SYSCFG(System configuration controller),即系统配置控制器,用于外部中断映射配置等外部中断配置寄存器 SYSCFG_EXTICR 1~4,配置 EXTI 中断线 0~15 对应具体哪个 IO 口特别注意:配置 SYSCFG 寄存器之前要使能 SYSCFG 时钟,方法如下。

2024-03-16 20:08:01 2289 1

原创 【4】STM32·HAL库·GPIO

GPIO(General Purpose Input Output),即通用输入输出端口,简称 GPIO负责采集外部器件的信息或者控制外部器件工作,即输入输出1、不同型号,IO 口数量可能不一样,可通过选型手册快速查询2、快速翻转,每次翻转最快只需要两个时钟周期(F1 最高速度可以到 50MHz)3、每个 IO 口都可以做中断4、支持8 种工作模式施密特触发器就是一种整形电路,可以将非标准方波,整形成方波特点当输入电压高于正向阈值电压,输出为高当输入电压低于负向阈值电压,输出为低。

2024-03-14 19:46:24 1413

原创 【3】STM32·HAL库·时钟系统

简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波时钟是单片机的脉搏,搞懂时钟走向及关系,对单片机使用至关重要!

2024-03-11 19:08:53 1957

原创 【2】STM32·HAL库·启动过程浅析

概念:MAP文件是MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件,简单来说就是包括了:各种.c文件、函数、符号等的地址、大小、引用关系等信息。以内部FLASH启动为例(在STM32系列,0x0000 0000和0x0000 0004地址会根据启动模式映射到对应的地址)MDK编译过程会生成11种文件,其中MAP文件保存有连接器生成的列表文件,对分析程序存储占有情况非常有用。分析各.c文件占用FLASH和RAM的大小,方便优化代码。打开魔术棒,点击Listing,将下方全勾选上,点击OK。

2024-03-07 22:15:06 135

原创 【1】STM32·HAL库·新建工程模板【一步到位】

由于官方固件包设置了只读权限,所以文件图标会出现黄色小钥匙,需要取消文件夹的只读权限。选择刚才创建的文件夹中的MDK-ARM,命名后点击保存。点击添加工程,选择MDK-ARM项目工程,点击Open。打开main.c,选择编码格式,点击通过编码重新打开。这里要注意:一定要点击OK,点击关闭不会保存!,设置下载器,按照自己的下载器型号来选择。分组,点击Add Files,回到。分组,点击Add Files,回到。分组,点击Add Files,回到。文件夹右键,选择属性,取消只读选项。

2024-03-06 22:12:53 2439

空空如也

空空如也

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

TA关注的人

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