- 博客(40)
- 资源 (1)
- 收藏
- 关注

原创 FreeRtos 操作系统 STM32 CubeMx系列教程
本系列学习笔记是对“韦东山FreeRtos学习系列教程”和B站up主“愿意做我的战士吗”的FreeRtos操作系统教程的总结。
2022-11-22 17:36:07
1619
2
原创 【C语言可变参数函数的使用与原理分析】
在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意数量的参数。本文将通过具体的实例程序,介绍如何定义和使用变参数函数,并分析其原理。本文将通过具体的实例程序,介绍了如何定义和使用变参数函数,并分析其原理。
2024-09-06 00:10:23
1183
原创 STM32高级定时器生成互补PWM的原理与代码实现
本文通过一个具体实例,详细阐述了STM32高级定时器产生互补PWM信号的原理。文章提供了生成互补PWM所需的代码实现,并利用Keil模拟器中的逻辑分析仪工具对生成的PWM信号进行了验证和分析。
2024-09-05 20:46:36
3462
原创 【通讯协议数据采用大/小端存储的探讨】
本文探讨了解了小端存储的概念和实现方法并通过一个简单的C语言程序示例,展示了如何在通讯协议中采用小端存储。
2024-09-02 15:41:50
804
原创 超详细步骤——Keil MDK-ARM 如何修改工程名字
本项目是基于 STM32 单片机的裸机程序,使用 STM32CubeMX 工具生成的 Keil MDK-ARM 工程。介绍了如何修改keil工程名称
2024-09-02 12:36:18
5240
原创 基于状态机编程的通用按键扫描库
推推荐一个GitHub上的项目,它提供了一个全面的按键扫描库,支持按键按下、释放、长按、长按释放和连击事件,并已在GD32开发板上经过个人验证,证明其高效实用。
2024-08-19 19:17:55
372
原创 单片机中时钟源(Clock Source)和时基源(Timebase Source)和的联系和区别
在单片机中,时钟源(Clock Source)和时基源(Timebase Source)是两个与时间相关的基本概念,它们在单片机的时钟系统设计中扮演着重要角色。
2024-08-08 09:49:25
1149
原创 【STM32Cubemx HAL库+STM32F4××+uCOSIII移植】
本文介绍了基于STM32F405ZGT× HAL库的uCOSIII移植的详细过程,创建了三个任务,实现了LED闪烁、浮点数计算和串口打印等功能
2024-08-07 20:48:03
1071
原创 含匹配扰动的多智能体领航跟随一致性Matlab仿真
本文探讨了带有匹配扰动的多智能体领航跟随一致性控制方法,并提供了相应的Matlab仿真代码。将匹配扰动看为系统的扩张状态,设计扩张状态观测器,估计扰动的大小;基于邻居节点间的状态误差设计控制器,并更具扰动估计值,在控制器中补偿扰动;使用使用线性二次型调节器(Linear Quadratic Regulator,LQR)对控制器增益和观测器增益进行了优化设计。
2024-04-23 02:26:39
1605
2
原创 QT多线程——解决因串口数据过多而导致程序界面崩溃的问题
QT多线程,解决因为串口数据过多而导致程序界面崩溃的问题,除了GUI线程外,另开一个子线程,专门用来处理串口数据。
2023-06-14 15:53:21
6315
1
原创 NRF24L01学习操作教程(二)——NRF实现一对一,一对多通讯
以上内容详细介绍了,使用NRF24L01实现1对1单向通讯、1对1双向通讯、1对多双向通讯。
2023-05-14 03:32:07
6101
30
原创 NRF24L01学习操作教程(一)——NRF基础知识与相关寄存器介绍
NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。2.4G 全球开放的 ISM 频段,免许可证使用。最高工作速率 2Mbps,高校的 GFSK 调制,抗干扰能力强。125 个可选的频道,满足多点通信和调频通信的需要。内置 CRC 检错和点对多点的通信地址控制。低工作电压(1.9~3.6V)。可设置自动应答,确保数据可靠传输。
2023-05-10 23:04:18
6876
6
原创 定时器TIM的Encoder Mode读取旋钮编码器的脉冲数
本文介绍了光电编码器的工作原理,并提供了一个实例,展示如何利用STM32的HAL库通过定时器的编码器模式(Encoder Mode)来读取旋转编码器的脉冲数。
2023-04-17 09:54:28
5910
原创 【FreeRtos教程十】STM32 CubeMx——Interrupt Management(中断管理)
在RTOS中,需要应对各类事件。这些事件很多时候是通过硬件中断产生,怎么处理中断呢?
2023-03-28 12:01:25
1019
原创 【FreeRtos教程九】STM32 CubeMx——Timers(定时器)
定时器是MCU常用的外设,我们在学习各种单片机时必然会学习它的硬件定时器。但是,MCU自带的硬件定时器资源是有限的,而且一般会用在实时性要求很强的地方。 在freeRTOS中提供了软件定时器的功能,来实现更多的定时器资源。
2023-03-24 19:22:52
2835
1
原创 【FreeRtos教程八】STM32 CubeMx——Task Notifications(任务通知)
我们之前讲过消息队列、信号量、互斥量、事件组,它们都可以实现任务间的通信和同步。本节我们讲解任务通知(Task Notifications),它是freeRTOS中实现的另一种通信和同步的方法,在一定程度上可以代替信号量、消息队列、事件标志组的功能;而且任务通知所需要的资源更少、执行速度更快。
2023-03-21 10:23:17
1250
原创 【FreeRtos教程七】STM32 CubeMx——EventGroup(事件组)
一个事件标志组有多个事件位,每个事件位表示了一个事件的标志。 比如我们用事件标志组的bit0表示事件A、bit1表示事件B、bit2表示事件C,那么这个事件标志组至少可以表示3个事件是否发生。 之前我们讲过信号量,它用作信号同步时,只能表示一个资源的有无;而事件标志组,它可以同时表示多个资源的有无。
2023-03-19 15:09:10
2838
原创 【FreeRtos教程六】STM32 CubeMx——Mutexes And Recursive Mutexes(互斥量与递归互斥量)
在多任务系统中,任务A正在使用某个资源,还没用完的情况下任务B也来使用的话,就可能导致问题。 比如对于串口,任务A正使用它来打印,在打印过程中任务B也来打印,客户看到的结果就是A、B的信 息混杂在一起。所以我们希望某一任务在在某一时刻单独占有某一硬件资源,这时候便引入了互斥量。
2023-03-10 22:25:01
2487
1
原创 【FreeRtos教程五】STM32 CubeMx——Binary and Counting Semaphore(二进制信号量和计数型信号量)
前面介绍队列(queue)我们可以用于在任务之间、任务和中断之间传输数据,但是有时候我们只是需要传递状态,并不需要传递具体的信息,由此引出本文所介绍的信号量
2023-03-05 21:56:42
1459
原创 【FreeRtos教程四】STM32 CubeMx——Mail(邮箱)
邮箱是特殊的队列,具有如下特点:队列长度只有1。写邮箱:新数据覆盖旧数据 ,既然是覆盖,那么无论邮箱中是否有数据,这些函数总能成功写入数据。读邮箱:读数据时,数据不会被移除 这意味着,第一次调用时会因为无数据而阻塞,一旦曾经写入数据,以后读邮箱时总能成功。
2023-01-01 12:43:47
6435
原创 STM32+拨码开关,读取拨码开关电平值并转换成16进制数,一种简洁的编程思路
STM32+拨码开关,读取拨码开关电平值并转换成16进制数,一种简洁的编程思路
2022-12-10 22:14:17
3988
原创 【FreeRtos教程三】STM32 CubeMx——Message Queue(消息队列)
消息队列类似于数据结构中的“队列”,都是一个线性的存储表。可以往队列里面写入数据,也可从队列里面读取数据。
2022-12-04 21:10:27
5794
10
原创 【FreeRtos教程二】STM32 CubeMx——Suspend And Resume(挂起与解挂起)
本文介绍了FreeRtos的几种状态,示例程序中使用函数挂起与解挂起函数
2022-11-27 16:43:15
1543
原创 【FreeRtos教程一】STM32 CubeMx——StaticDynamicTask(静态动态任务)
使用CubeMx生成一个动态任务和一个静态任务,在两个任务添加LED闪烁的程序
2022-11-22 17:52:43
989
原创 CubeMx环境下实现STM32的IO口重映射(以PWM输出通道重映射为例)
CubeMx环境下实现STM32的IO口重映射(以PWM输出通道重映射为例)
2022-11-14 21:46:28
3383
原创 Keil的debug模式下使用simulator,用逻辑分析仪观察IO口输出波形的变换
Keil的debug模式下使用simulator,用逻辑分析仪观察IO口输出波形的变换
2022-11-06 23:01:17
4045
1
原创 quartus与modelsim联合仿真时出现错误# Error: Error loading design #Pausing macro execution,一种解决思路
最近在学习FPGA的时候,在使用quartus与modelsim联合仿真时总是出现错误# Error: Error loading design #Pausing macro execution,如下图:在网上查看了许多的博客,都不能解决我的问题,一一排除既不是因为test bench的名字设置的与.vht文件的顶层实体名字不匹配的原因,也不是文件未被包含且未加入工程的原因。后来野火的客服告诉我可能是modelsim软件安装目录有问题,我就查看了一下软件安装目录:安装目录没有中文或中文字符.
2022-03-29 16:46:11
13459
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人