自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 9,STM32CubeMX配置LWIP工程(PHY芯片YT8512C)

单片机型号:STM32F407编程环境硬件连接 :RTH*/

2026-02-02 11:08:38 1278 6

原创 第四天:CAN总线

CAN总线协议是一种专为高可靠性、实时通信设计的串行总线标准。它最初由博世公司为汽车电子系统开发,现已广泛应用于工业控制、医疗设备等诸多领域。其核心思想是创造一个共享的通信通道,让多个微控制器或设备能够可靠地交换信息,特别适合在电磁环境复杂、对安全要求严苛的场景中使用。图1 CAN总线网络拓扑图该协议采用多主架构,任何节点都可以在总线空闲时主动发送信息。

2026-01-15 14:58:52 550 1

原创 第三天:SPI总线协议

SPI(Serial Peripheral Interface,串行外设接口)是一种同步串行通信协议,广泛应用于微控制器和外设之间的通信。SPI 总线协议由 Master(主设备)和 Slave(从设备)构成,支持全双工通信,使得数据可以同时在两个方向上传输。在SPI通信中,总是由主设备控制通信过程,主设备决定何时发送数据,以及如何同步通信。从设备接收并响应主设备的请求。一个 SPI 总线上可以有多个从设备,但每个时刻只有一个主设备。SPI 是全双工的,意味着数据可以同时双向传输。

2026-01-15 14:29:37 561

原创 第二天:IIC总线协议

再其次是数据传输方式,IIC总线的数据传输是基于字节(8位)的,每次传输一个字节,数据从主机传输到从设备或从设备传输到主机。IIC协议的实现成本较低,适合用于低功耗的设备。OLED屏幕共有四个引脚,分别是VCC电源、GND地、SDA数据线、SCL时钟线,将VCC电源连接到开发板电源,将GND地连接到开发板接地端,将SDA数据线连接到开发板SDA,将SCL时钟线连接到开发板SCL。停止条件:通信结束时,主机通过将SDA线从低电平拉高到高电平,发出停止信号,表示总线的释放(SDA上升沿,SCL保持高电平)。

2026-01-15 14:29:23 667

原创 第一天:UART异步通信协议

总之,UART是一种简单而常用的串行通信协议,广泛应用于各种电子设备之间的数据传输,尤其是在资源受限的嵌入式系统中。UART(Universal Asynchronous Receiver/Transmitter)串口协议是一种常见的通信协议,用于计算机和外设之间的串行数据传输。UART是一种异步通信协议,不需要时钟信号来同步数据传输,数据传输依赖于约定好的波特率(baud rate)和其他参数。UART数据传输是以数据帧的形式进行的,每个数据帧通常包含一个起始位、数据位、可选的校验位和停止位。

2026-01-15 14:02:52 476

原创 Multisim 14.0安装后打开报错:主数据库/企业数据库/用户数据库无法访问。使用主数据库/企业数据库/用户数据库的功能将不可以用。

安装完Multisim 14.0,并重启电脑后打开软件。发现一直报错,后面重复多次发现偶尔可以使用库。就不报错了,但是一直点管理员运行比较麻烦,下面步骤就是设置Multisim 14.0软件运行时自动用管理员身份运行。查了网上很多资料,有的要修改注册表,有的要操作很麻烦,一直没有搞定。右击桌面图标>>快捷方式>>高级,勾选用管理员身份运行并确定。再次双击桌面图标打开软件,报错解决。

2025-12-01 08:17:58 374

原创 COMSOL与MATLAB联合仿真函数

7.模型管理器的封装函数。

2025-11-13 15:18:37 198

原创 2,GUI Guider的安装与导入STM32裸机工程

我们可以从NXP的官网找到GUI Guider的安装包,截至目前为止最新的版本为v1.9.1,该版本软件支持LVGL的V3.8.10和V9.2.1。后续内容均基于V3.8.10版本进行。http://NXP官网链接下载好安装包如下,双击安装即可。

2025-09-23 16:25:57 1091 2

原创 1,LVGL(V8.3.10版本)裸机移植教程

此函数用于刷新显示函数disp_flush()中,原有LVGL自带的刷新绘制效率较低。/*** @brief LCD加速绘制函数* @param (sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex - sx + 1) * (ey - sy + 1)* @param color:要填充的颜色* @retval 无*/i++)

2025-09-23 12:56:57 1318

原创 25,FreeRTOS内存管理操作

FreeRTOS提供了5 种动态内存管理算法,分别为heap_1 、heap_2 、heap_3 、heap_4 和h eap_5。其各自的优缺点如下:注:所有实验均采用heap_4内存管理算法。

2025-09-19 15:24:50 847

原创 24,FreeRTOS低功耗Tickless模式

定义两个函数。// 进入低功耗前所需要执行的操作// 退出低功耗后所需要执行的操作#endif。

2025-09-19 14:20:37 683

原创 23,FreeRTOS软件定时操作

动态创建软件定时器函数xTaskCreate()。pcTimerName :软件定时器名。xTimerPeriodInTicks :定时超时时间,单位:系统时钟节拍。uxAutoReload: 定时器模式,pdTRUEpdTRUE:周期定时器,pdFALSEdFALSE:单次定时器。pvTimerID :软件定时器IDID,用于多个软件定时器公用一个超时回调函数。pxCallbackFunction :软件定时器超时回调函数。返回值:软件定时器句柄。

2025-09-19 11:28:07 628

原创 22,FreeRTOS任务通知模拟事件标志组

创建四个动态任务,栈空间大小均为128字。startTask仅运行一次,task1、task2任务的创建,startTask任务的删除。task1负责按键按下,任务通知模拟时间标志组发送。task2等待获取接收时间标志组信息。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-17 13:56:36 655

原创 21,FreeRTOS任务通知模拟消息邮箱

创建四个动态任务,栈空间大小均为128字。startTask仅运行一次,task1、task2任务的创建,startTask任务的删除。task1负责按键按下,任务通知模拟消息邮箱发送。task2等待获取接收邮箱信息。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-17 13:28:54 518

原创 20,FreeRTOS任务通知模拟信号量

创建四个动态任务,栈空间大小均为128字。startTask仅运行一次,task1、task2、task3任务的创建,startTask任务的删除。task1负责按键按下,任务通知模拟信号量发送。task2等待获取接收二值信号量。task3等待获取接收计数型信号量。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-17 10:58:20 548

原创 19,FreeRTOS任务通知理论

在FreeRTOS 中,每一个任务都有两个用于任务通知功能的数组,分别为任务通知数组(uint-32*)和任务通知状态数组(uint-8)。其中任务通知数组中的每一个元素都是一个32 位无符号类型的通知值;而任务通知状态数组中的元素则表示与之对应的任务通知的状态。任务通知数组:通知值0表示无任务,其他值就是任务值。任务通知状态数组:共有三种状态为未等待通知状态、等待通知状态和等待接收通知状态。其中未等待通知状态为任务通知的复位状态。其中包含的任务通知数组、 任务通知状态数组。...#endif。

2025-09-16 13:22:26 759

原创 18,FreeRTOS事件标志组操作

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责事件标志组的创建,task1、task2任务的创建,startTask任务的删除。Task1负责模拟事件发生,按键按下让对应事件标志组bit置一。Task2等待多事件标志,并发送提示信息。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-12 11:27:04 681

原创 17,FreeRTOS队列集操作

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责队列集、队列、二值信号量的创建,task1、task2任务的创建,startTask任务的删除。Task1(低优先级)负责队列的信息入队和二值信号量的释放。Task2(高优先级)负责队列集的接收。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-11 11:09:47 834

原创 16,FreeRTOS互斥信号量操作

创建四个动态任务,栈空间大小均为128字。startTask仅运行一次,负责互斥信号量的创建,task1、task2、task3任务的创建,startTask任务的删除。Task1(低优先级)负责互斥信号量的获取后绝对延时3S后释放。Task2(中优先级)负责串口打印运行状态。Task3(高优先级)负责互斥信号量的获取后绝对延时1S后释放。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-08 14:22:34 986

原创 15,FreeRTOS计数型信号量操作

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责二值信号量的创建,task1、task2任务的创建,startTask任务的删除。Task1负责计数型信号量的释放操作。Task2负责计数型信号量的获取操作、计数值的获取,并用串口发送是否获取成功。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-04 15:33:43 951

原创 14,FreeRTOS二值信号量操作

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责二值信号量的创建,task1、task2任务的创建,startTask任务的删除。Task1负责二值信号量的释放操作。Task2负责二值信号量的获取操作,并用串口发送是否获取成功。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-03 14:57:43 370

原创 13,FreeRTOS信号量简介

信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问(停车场案例)。实际上信号量就是特殊的队列。

2025-09-02 15:33:55 301

原创 12,FreeRTOS队列操作

创建四个动态任务,栈空间大小均为128字。startTask仅运行一次,负责两个队列的创建,task1、task2、task3任务的创建,startTask任务的删除。Task1负责两个队列的入队操作。Task2负责小数据的出队操作,并用串口发送。Task3负责大数据的出队操作,并用串口发送。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-09-02 14:26:05 798

原创 11,FreeRTOS队列理论知识

队列结构体主要分为两部分:队列结构体存储区、队列项(消息)存储区。

2025-09-01 14:53:10 725

原创 11,FreeRTOS延时函数

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责task1、task2任务的创建,startTask任务的删除。Task1负责相对延时函数展示。Task2负责绝对演示函数展示。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-08-22 16:26:49 519

原创 10,FreeRTOS任务运行时间统计

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责task1、task2任务的创建,startTask任务的删除。Task1负责1S闪烁一次,指示系统运行状态。Task2负责获取任务运行时间,并用串口发送。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-08-11 11:03:31 399

原创 9,FreeRTOS任务相关API函数

获取指定任务的运行时间、运行状态等信息,若使用此函数,需在F reeRTOSConfig.h 文件中同时设置配置项configGENERATE_RUN_TIME_STAT S 、configUSE_STATS_FORMATTING_FUNCTIONS 、configSUPPORT_DYNAMIC_ALLOCATION。获取指定任务的任务栈的历史剩余最小值,若使用此函数,需在FreeRTOSConfig.h 文件中设置配置项INCLUDE_uxTaskGetStackHighWaterMark 为1。

2025-08-11 09:56:11 667

原创 8,FreeRTOS时间片调度

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责task1、task2任务的创建,startTask任务的删除。Task1负责打印Task1执行次数,Task2负责打印Task1执行次数,二者优先级相同。注:本实验基于正点原子FreeRTOS教程的学习总结。时间片调度特点:1.同等优先级的任务回轮流执行;2.一个时间片的大小取决于滴答定时器的中断频率;3.没有用完的时间片(任务中,任务阻塞),下次任务执行还是一个时间片,上次剩下的时间不会补齐。

2025-07-31 09:47:11 566

原创 7,FreeRTOS列表与列表项的插入删除

创建三个动态任务,栈空间大小均为128字。startTask仅运行一次,负责task1、task2任务的创建,startTask任务的删除。Task1负责初始化列表、列表项123,并进行列表项的插入实验与删除实验。Task2负责5S闪烁一次LED0,用于指示系统的运行状态。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-06-30 11:29:08 608

原创 6,FreeRTOS临界区代码保护与任务调度器的挂起与恢复

如果我们想在执行某段代码时不被中断打断,此时需要进行临界区代码保护。在临界区内关闭中断,临界区结束后开启中断。需要注意的是临界区的进入和退出需要成对出现,如果进入两次,那么需要退出两次才可以成功开启中断。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-06-29 18:55:42 408

原创 5,FreeRTOS中断管理

创建两个动态任务,栈空间大小均为128字。startTask仅运行一次,负责task1任务的创建,startTask任务的删除。Task1负责5S关闭一次中断,5S开启一次中断。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-06-27 11:31:05 463

原创 4,FreeRTOS任务挂起与恢复

接下来进行FreeRTOS基础程序中的FreeRTOSConfig.h的修改,主要修改宏定义 INCLUDE_vTaskSuspend、INCLUDE_xTaskResumeFromISR ,另其支持任务挂起与中断恢复。系统复位后,最初以Task3、Task2、Task1的优先级进行运行,串口可以观察到系统运行的情况。xTaskResumeFromISR函数用来在中断中恢复任务,输入为任务句柄,输出为恢复任务后是否需要切换任务。

2025-06-26 11:37:54 321

原创 3,FreeRTOS创建、删除静态任务

FreeRTOS的任务主要分为动态任务、静态任务。其中动态任务时,RTOS会自动给任务分配堆栈地址、空闲函数。而静态任务时,RTOS不会自动分配,需要用户手动分配。注:本实验基于正点原子FreeRTOS教程的学习总结。静态任务与动态不同的是,静态任务不会自动创建空闲任务、软件定时任务,需要用户添加。

2025-06-24 16:54:45 997

原创 2,FreeRTOS创建、删除动态任务

FreeRTOS的任务主要分为动态任务、静态任务。其中动态任务时,RTOS会自动给任务分配堆栈地址、空闲函数。而静态任务时,RTOS不会自动分配,需要用户手动分配。注:本实验基于正点原子FreeRTOS教程的学习总结。

2025-06-23 20:06:10 545

原创 1,FreeRTOS文件介绍

STM32的FreeRTOS基础工程需要添加的内容共三个部分:freertos_demo.c、FreeRTOS_CORE、FreeRTOS_PORT。STM32的FreeRTOS基础工程结构图如下:freertos_demo.c:用户编写,用于freertos的控制。FreeRTOS_CORE:包含官方给的freertos源码,在第一章中的FreeRTOS/Source文件下的所有.c文件。是FreeRTOS的API函数。FreeRTOS_PORT:包含内存管理算法、内核链接文件。heap_4.c。

2025-06-23 18:52:56 897

原创 0,freeRTOS基础知识

注:本文为正点原子“手把手教你freeRTOS系统”视频的总结文字。

2025-06-09 17:21:58 1029

原创 1,国产FPGA(紫光同创)-IP核-PLL

本文默认在基础上完成。

2024-10-30 15:03:50 2194 2

原创 0,国产FPGA(紫光同创)-新建PDS工程

国产FPGA正在蓬勃发展,紫光同创FPGA是大家再竞赛经常遇到的一款国产FPGA,本专栏从IP核开始一直到后续图像处理等。开发板:盘古50K标准板。

2024-10-30 14:35:09 2131

原创 2,STM32CubeMX生成freeRTOS工程——Task任务

本章内容在基础上完成。型号:STM32F407+ Keil v5。

2024-10-10 14:01:13 1750

原创 1,STM32CubeMX生成第一个freeRTOS工程

本章内容是每个CubeMX工程都需要首先配置的,后续其他外设配置中不再提及,默认已经配置好本章内容。单片机型号:STM32F407编程环境 :STM32CubeMX + Keil v5。

2024-10-09 11:23:14 3247 5

STM32F4裸机移植LVGL(V8.3.10版本)

硬件为STM32F407,裸机移植LVGL(V8.3.10版本)

2025-09-23

stm32f407-freertos-demo

stm32f407_freertos_demo,配套STM32CubeMX生成freeRTOS工程专栏使用的示例文件。

2024-10-10

空空如也

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

TA关注的人

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