
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
编码器是一种能将直线位移、角位移数据转换为脉冲信号、二进制编码的设备。它本质上就是一个传感器,可以把角位移或直线位移转换成电信号,并反馈给控制器,使控制 器知道当前机械运动的位置、角度等信息。编码器常用的有磁电增量式、光电增量式以及光电绝对式三种,本篇文章主要讲解磁电增量式编码器,其原理是:利用霍尔效应,将位移转换成计数脉冲,用脉冲个数计算位移和速度。如下图所示:由图可见,磁电增量式编码器的结构包
电机控制是嵌入式领域中一个前景广阔的专业方向。然而,面对繁杂的理论与实践,许多初学者常常感到无从下手。因此本篇文章将以STM32的标准库驱动直流有刷电机为例,分享一些电机控制的基础知识,希望可以给大家做一个参考。

在做项目时,百分之三十的时间写代码,还有百分之70的时间用于调试。本期将以Keil为例进行调试章节的讲解,目的在于做出一个标准化的调试步骤,方便大家学习如何调试代码。内容分为基础调试、中级调试及进阶调试三部分,本次主要讲解基础调试。

当RTOS运行的时候,delay_ms函数将先判断延时时长是否大于等于1个RTOS时钟节拍(fac_ms),当大于这个值的时候,就通过调用OS的延时函数来实现(此时任务可以调度),不足1个时钟节拍的时候,直接调用delay_us函数实现(此时任务无法调度)。ps:需要stm32+rtos项目源码,或者FreeRTOS开发手册,请联系1840813505@qq.com,备注csdn。

在做项目过程中,使用面向对象思想去编写驱动层是经常用到的软件设计方法。本文探讨了如何运用C语言实现面向对象编程思想构建LED驱动层,通过结构体封装技术将LED设备的硬件参数(如GPIO端口、引脚号)与操作函数(初始化、点亮、熄灭)整合为独立对象,实现了面向对象的封装特性,有效隔离硬件细节,使上层应用只需调用接口即可控制不同LED设备。显著提升了代码的可移植性可维护性和可扩展性。

FreeRTOS Tickless模式通过动态暂停系统心跳(Tick)中断,允许处理器在空闲时段进入更深层次、功耗极低的睡眠状态,并精确预测下一个任务唤醒时间点来设置单次长定时唤醒,从而最大限度地减少了因周期性Tick中断导致的无谓唤醒和功耗浪费,显著降低了系统在空闲时的平均功耗。最后,更多FreeRTOS干货欢迎加入嵌入式学习交流场地,里边分享项目/资料/面经等。

版本为AD20, 如下图所示,先创建一个项目、一个PCB及一个原理图,然后记得点击全部保存。

使用STM32F103C8T6、舵机、继电器、加热片、蜂鸣器、两个按键、LCD及DHT11传感器等硬件。进一步,结合FreeRTOS和状态机等软件实现了一个微波炉系统;实现的功能包含:人机交互、时间及功率设置、异常情况处理及固件升级等。

在stm32中,一般采用的是通过数组来接收串口信息,但是由于受到数组大小的限制,易出现数据覆盖或者数据溢出问题。针对上述问题,采用循环队列的方式来接收串口信息,循环队列可以动态管理缓冲区并且当队列满时,能灵活选择覆盖旧数据或者丢弃新数据,从而避免了数据混乱问题。

当多个任务共享一个互斥量时,如果高优先级任务试图获取已被低优先级任务持有的互斥量,高优先级任务将进入阻塞状态。若此时有一个中等优先级的任务就绪,它会抢占CPU,导致低优先级任务无法释放互斥量,从而间接阻塞高优先级任务,形成优先级反转。临时提升互斥量持有者的优先级,使其尽快运行并释放资源,之后恢复其原始优先级。uxPriority:任务当前优先级(可能因继承而提升):任务原始优先级(未继承时的值):







