logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

电机控制基础知识--直流有刷电机编码器测速

编码器是一种能将直线位移、角位移数据转换为脉冲信号、二进制编码的设备。它本质上就是一个传感器,可以把角位移或直线位移转换成电信号,并反馈给控制器,使控制 器知道当前机械运动的位置、角度等信息。编码器常用的有磁电增量式、光电增量式以及光电绝对式三种,本篇文章主要讲解磁电增量式编码器,其原理是:利用霍尔效应,将位移转换成计数脉冲,用脉冲个数计算位移和速度。如下图所示:由图可见,磁电增量式编码器的结构包

#嵌入式
STM32电机控制基础知识

电机控制是嵌入式领域中一个前景广阔的专业方向。然而,面对繁杂的理论与实践,许多初学者常常感到无从下手。因此本篇文章将以STM32的标准库驱动直流有刷电机为例,分享一些电机控制的基础知识,希望可以给大家做一个参考。

文章图片
#stm32#嵌入式硬件#单片机
MCU+RTOS调试

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

文章图片
#单片机#stm32#嵌入式
FreeRTOS移植中时钟管理文件的修改

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

文章图片
#单片机#嵌入式硬件#stm32 +1
用C语言实现面向对象思想编写驱动层--以驱动LED为例

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

文章图片
#c语言#stm32#单片机 +1
FreeRTOS的低功耗Tickless模式

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

文章图片
#stm32#单片机#mcu +1
AD画原理图操作笔记

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

文章图片
#嵌入式
基于FreeRTOS和STM32的微波炉

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

文章图片
#stm32#嵌入式硬件#单片机
使用循环队列来接收串口信息--以stm32f103为例

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

文章图片
#stm32#嵌入式硬件#单片机 +2
深入剖析FreeRTOS优先级继承机制:vTaskPriorityInherit与xTaskPriorityDisinherit源码解析

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

#stm32
    共 17 条
  • 1
  • 2
  • 请选择