STM32CubeIDE
Gkbytes
这个作者很懒,什么都没留下…
展开
-
【磨刀不误砍柴工】keil软件仿真评估代码运行时间
确定keil能支持哪些片子的软件仿真https://developer.arm.com/documentation/ka002225/1-0若是选择不支持的片子进行软件仿真,则会出现如下错误:错误*** error 65: access violation at address : no ‘read’ permission使用Keil Logic Analyzer绘制gpio引脚电平变化曲线。https://jingyan.baidu.com/article/19192ad803101ce53f5原创 2022-04-13 23:55:08 · 921 阅读 · 0 评论 -
06_FreeRTOS队列(结构体队列)
06_FreeRTOS队列(结构体队列)如果要发送不同的数据类型,则必须使用结构体队列。xQueueHandle St_Queue_Handler;定义结构体:typedef struct { char *str; int counter; uint16_t large_value;} my_struct;创造队列: /***** create QUEUE *****/ osMessageQDef(Queue01, 1, my_struct); Queue01Handle原创 2020-07-08 22:41:39 · 1756 阅读 · 7 评论 -
05_FreeRTOS 队列(简单队列)
05_FreeRTOS 队列(简单队列)介绍如何使用Queue在任务之间进行通信。下面是队列如何工作的流程:队列是任务之间发送和接收数据的最简单方法。首先,我们将使用简单队列,其中队列中的所有元素都是相同的数据类型,然后我们将使用结构化队列,其中数据类型可以不同。简单队列在一个简单的队列中,所有元素都是同一类型。队列由其处理程序识别,因此我们首先需要为该队列创建一个处理程序:osMessageQId Queue01Handle;接下来,在main函数内部,我们将创建一个Queue,该队列可以原创 2020-07-08 22:41:29 · 865 阅读 · 0 评论 -
04_FreeRTOS 计数信号量
04_FreeRTOS 使用计数信号量本文将介绍:a. 使用CMSIS API ,介绍FreeRTOS中计数信号量b. 不使用CMSIS API,直接使用FreeRTOS函数简介计数信号量可用于控制对资源的访问。要获得对资源的控制,任务必须首先获得信号量。因此减少了信号量计数值。当计数值达到零时,将没有可用资源。当任务使用资源完成时,它将“give”信号量,从而增加信号量计数值。设置部分CubeMX中启用计数信号量:FreeRTOS中计数信号量3.1 使用CMSIS API原创 2020-07-08 22:41:19 · 265 阅读 · 0 评论 -
03_FreeRTOS 二进制信号量
03_FreeRTOS 使用二进制信号量本文介绍:二进制信号量的使用方法简介信号量Binary Semaphore之所以称为Binary信号量,是因为它存在(‘1’)或不存在(‘0’)。其中没有第三个条件。因此,任务要么具有信号量,要么根本没有。对于Task,我们可以创建一个条件,使其必须具有信号量才能执行自身。因此,如果Task没有信号量,则它别无选择,只能等待当前具有信号量的Task释放它。假设关键部分正在运行“低优先级任务”。高优先级任务可以在任何时间抢占低优先级任务。但是,如果低优先原创 2020-07-08 22:41:08 · 844 阅读 · 1 评论 -
02_FreeRTOS 任务管理
02_FreeRTOS 任务管理本文将介绍:a. 创建任务b. 任务执行c. 挂起任务和恢复任务d. 在一定状态停止任务一段时间附录:如何在STM32CubeIDE中加入printf打印解决STM32CubeIDE 用串口printf 进入hardfault配置STM32CubeIDE,把vTaskDelayUntil 设置为Enabled创建任务分三部:2.1 创建任务ID2.2 使用osThreadDef定义线程2.3 创建线程并将ID分配给任务处理程序。参照01原创 2020-07-08 22:40:53 · 386 阅读 · 0 评论