- 博客(135)
- 收藏
- 关注
原创 【电机设计】磁铁参数材料理论基础
本文探讨了材料磁性的基本原理及磁铁的特性。原子中未配对的电子自旋会产生磁性,而当这些微观磁矩在外部磁场作用下定向排列时,材料即被磁化。工业上通过加热至居里温度后施加磁场来制造永磁体。重点介绍了钕磁铁的高性能特点,包括其优异的剩磁、矫顽力和磁能积等参数,同时指出其易腐蚀的缺点。文章还详细解析了磁铁的关键性能指标(如剩磁、温度系数、内禀矫顽力等)及其应用选型建议,并对比了不同永磁材料(铁氧体、铝镍钴、钐钴等)的特性。
2025-11-15 11:25:41
635
1
原创 1.【代码开源】一个半月驯服无刷电机!DengFOC开发板实战记录
本文介绍了基于DengFOC开发板的无刷电机控制实战项目。使用X2212/KV2450电机和14.8V电源,通过3D打印支架搭建硬件平台。项目实现了三种控制模式:位置模式(P环控制)、速度模式(PI环控制)和力矩模式(电流力控制),并演示了参数调试功能。代码已在Gitee开源(https://gitee.com/Tan_Xuanjie/foc_code.git)。该项目展示了从硬件搭建到算法实现的完整开发过程,适合嵌入式开发和电机控制领域的学习参考。
2025-10-31 20:39:10
381
原创 FOC电机三环控制如何组成力矩、速度、位置控制模式
FOC电机三环控制如何组成力矩、速度、位置控制模式 #嵌入式开发 #STM32 #电机控制 #关节电机。
2025-10-31 20:36:56
325
原创 学习C语言你不能错过的一本经典入门书
摘要:本文分享了一本优质C语言入门书籍的学习方法。建议初学者第一遍阅读时边理解边实践,第二遍加深理解并做习题总结。当掌握基础后,可通过学习51单片机、STM32等项目实践来巩固C语言知识,遇到问题再查阅书籍或网上资料。这种循序渐进的学习方法能有效帮助初学者掌握C语言编程。
2025-10-31 20:34:33
210
原创 串口可以发送不可以接收
如果感觉内容不错的朋友,欢迎关注我:嵌入式crafter(小破站 / 某音 / 某红书同号)串口是全双工的,一根线管发送,一根线管接收,有时候发送正常不代表接收也正常。检查一下是不是STM32接收线的连接问题,也可能接触不良。查看配置以及硬件接线,可以解决问题。
2025-10-31 20:33:19
104
原创 vscode-python编译器问题
输入Python: Select Interpreter。选择ANACONDA的就不用每次都打开其命令行了。
2025-10-31 20:30:31
414
原创 【建议收藏】STM32-STLINK程序下载失败解决方案汇总
STLINK连接问题排查指南 接线检查:确认SWDIO和SWCLK线序正确,避免接反。 连接检测:若STLINK未被识别,尝试更换USB接口或STLINK设备。 目标检测:若提示"No target connected",检查STM32与STLINK的连接,并确保CubeMX中Debug模式选择"Serial Wire"。 复位操作:按住复位键再点击下载,避免SWD引脚被占用导致通信失败。 程序擦除:使用ST-LINK Utility擦除芯片程序,解决连接错误。 硬件
2025-10-31 20:28:32
431
原创 【建议收藏】51单片机STC8H程序下载失败解决方案汇总
摘要:本文针对单片机开发中常见的USB转TTL连接问题,总结了5个常见故障点及解决方案:1) 接线错误需注意RXD/TXD反接;2) 冷启动问题需先断电再下载;3) 下载引脚接触不良需彻底断电;4) 单片机芯片可能损坏;5) USB转TTL模块芯片故障。作者建议可更换芯片解决最后两类问题,并分享了自己的维修经验。完整内容可在各平台搜索"嵌入式crafter"获取视频版教程。(149字)
2025-10-31 20:23:52
317
原创 【干货】四分钟弄懂三极管和MOS管的是如何导通的
文章摘要:三极管与MOS管作为常见电子开关,在导通原理上具有相似性。三极管通过基极电流(Ib)控制导通,NPN型需发射极接地,PNP型需接VCC。而MOS管的导通取决于栅源电压差(Vg-Vs),NMOS管需高于阈值电压(Vth),PMOS管则相反。两种管型通常将源极固定接GND或VCC以便IO控制。该内容由"嵌入式crafter"在多平台同步发布。
2025-10-31 20:21:17
327
原创 【干货分享】STC内部扩展RAM的应用
最近在做产品选型的过程中,发现STC数据手册既有RAM,又有SRAM。如果是这样的话,编程起来的舒适感就要大大提高了。RAM是存放程序运行过程中随机变量的数据空间。51单片机默认的内部RAM只有128字节,后面的型号RAM的空间也是越来越大。对于编程者来说,一个RAM的空间越大,写起程序来就会越容易越舒服。STC内部扩展RAM的应用:在KEIL中的Memory Model是可以直接选择我们要使用的RAM的。默认开启Large模式,然后需要快速访问的变量用data声明放到快速访问区。
2025-10-31 20:18:27
465
原创 无刷电机拆解与原理简单记录
极对数是指我们转子永磁体的磁极对数,我们拆解的这个无刷电机的磁极对数是6对。1406航模高速无刷电机拆解与原理解析。电机型号:1406航模高速无刷电机。槽、极对数、扭矩、转速之类的。说明无刷电机的运动原理。
2025-10-31 20:14:13
187
原创 BLDC直流无刷电机开环与PID闭环无扰切换
在做一个产品的过程中,需要在转弯和手推时切换为BLDC电机的开环控制,而在正常前进和遥控控制情况下切换到PID速度闭环控制。但是起初直接切换总是会造成输出的不匹配,导致电机会剧烈的抖动。后面采用了这个方法,实现了让电机在闭环和开环之间无扰的切换,实现了产品需求。在此提供这条思路,希望有遇到类似问题的朋友,可以参考。分别获取开环和闭环的PWM值,然后在需要做开环到闭环的切换的时候,做一次PID误差值的对齐。在我的产品中是能够满足需求的,不管是开环切闭环,还是闭环切开环都是非常流畅。
2025-10-31 20:11:13
326
原创 从零理解无感BLDC控制:STC官方开源方案原理图详解
摘要:本文介绍了STC公司开源的无刷电机无感控制项目原理图分析。主控采用STC8H1K28芯片,通过LDO转换供电。详细讲解了NMOS/PMOS的导通条件及互补PWM控制原理,说明如何利用三极管驱动实现高低电平输出。文章最后预告后续将深入讲解BLDC电机控制原理和代码实现。该内容已在多个视频平台同步发布,适用于嵌入式开发者和电机控制学习者。
2025-10-31 20:03:49
813
原创 【产品实战】新手进行低功耗单片机产品设计常见的几个坑
本期内容就分享到这,主要通过STC8H这颗芯片的掉电模式应用,来分析了低功耗模式下硬件电路设计中需要注意的点。
2025-08-03 14:24:18
1218
原创 Android Studio + 阿里云:10 分钟搞定单片机控制 APP,新手也能抄的嵌入式教程
这个错误的核心原因是 JDK 版本与 Gradle 版本不兼容,具体来说是 JDK 1.8 不支持 Gradle 7.3 中使用的 --add-exports 等 JVM 选项(这些选项是 Java 9+ 才引入的特性)。Gradle 7.3 要求 JDK 9 及以上版本 支持其新的 JVM 选项(如 --add-exports、--add-opens),而你当前使用的是 JDK 1.8(Java 8),导致启动失败。MainActivity:APP后端的处理,连接阿里云,按键处理和获取数据的处理。
2025-08-03 14:12:05
1082
原创 STM32-ESP8266通过MQTT与阿里云通讯
define ESP8266_WIFI_INFO "AT+CWJAP=\"360\",\"02744871\"\r\n" //连接的Wifi名 密码。刷新云平台页面得到最新的passwd和clientld,进行多次尝试,每修改一次passwd也要跟着修改clientid。根据前一章(平台链接),我们可知esp8266通过串口与STM32进行连接。需要在securemode=2之后加\\,以及hmacsha256之后加\\。发送AT+MQTTCONN=0,"域名",1883,1。连接成功后会显示设备在线。
2025-08-03 13:39:55
1023
原创 配置阿里云与云产品流转发
所以在第4步就行不通,STM32无法往/${productKey}/App/user/m2m 发送消息。STM32如果想要给App发消息,只要往/${productKey}/App/user/m2m 发送消息即可,APP就可以接收到STM32发送的消息。stm32通过主题:/k1h2hHKWDOX/stm32_esp8266/user/Send,发布温湿度、光强到云平台。APP通过主题:/k1h2hHKWDOX/android_app/user/Send,发送控制灯光、蜂鸣器、舵机命令。
2025-08-03 13:27:37
1099
原创 STM32-FreeRTOS如何适配LVGL
嫌文字看着累的话,直接搜账号名嵌入式crafter(小破站 / 某音 / 某红书同号),视频里把讲解的内容和实战操作揉在一起了,比对着文档啃效率高多了。
2025-08-03 13:14:11
2061
1
原创 STM32-ADC详解-光照强度实战
摘要:本文介绍了光敏电阻和ADC转换器的工作原理及STM32的光照强度检测实现。光敏电阻基于内光电效应,光照增强时电阻值下降。ADC将模拟信号转换为数字信号,包含采样、保持、量化和编码四个步骤。通过STM32CubeMX配置ADC模块,使用PB0引脚连接光敏传感器,实现连续转换模式。软件部分通过获取30次ADC采样平均值,转换为电压值输出光照强度。系统实现了环境光强的数字化测量,为智能光照控制提供了基础方案。
2025-07-10 17:09:43
1122
原创 深入理解SPI协议,TFT显示屏实战
本文介绍了智能家居项目中TFT显示屏的SPI通信实现。SPI是一种高速全双工串行通信协议,通过4线制(SCK、MOSI、MISO、SS)实现主从设备同步数据传输。重点解析了SPI的4种工作模式(由CPOL和CPHA组合决定),并给出STM32通过GPIO模拟SPI模式0驱动显示屏的具体代码实现,包括字节写入、寄存器/数据写入以及初始化流程。项目采用MSB高位先行传输方式,最终在TFT屏上显示传感器数据。完整代码可通过网盘获取。
2025-07-09 17:14:59
1575
原创 零基础玩转 MPU6050:I2C 协议白话解析 + STM32 初始化代码,直接套用
本文介绍了MPU6050角度传感器在智能家居项目中的应用,详细解析了该模块的硬件参数、I2C通信协议及实现代码。MPU6050集成3轴陀螺仪和加速度计,支持±250-2000°/s和±2-16g测量范围,采用I2C/SPI接口。文章重点阐述了I2C协议的通信流程,包括起始/停止信号、应答机制和数据读写方法,并提供了MPU6050的初始化配置和DMP硬件加速引擎的使用示例。通过标准I2C接口实现传感器数据读取,为无按键控制和步数检测等功能开发提供了硬件基础。
2025-07-09 15:17:45
884
原创 新手必看:DHT11 温湿度模块零基础接入 STM32,代码直接抄
本文介绍了DHT11温湿度传感器的硬件特性及基于STM32的软件实现方案。DHT11采用单总线通信协议,集成了高分子电阻式感湿元件和NTC测温元件,具有响应快、抗干扰强的特点。软件部分详细说明了STM32CubeMX的GPIO配置方法,包括输入/输出模式设置,并重点解析了单总线通信协议的具体实现流程:起始信号发送、数据位读取及校验机制。通过C语言代码展示了完整的数据采集过程,包括主机信号控制、40位数据接收和校验处理。该方案实现了DHT11与STM32的高效通信,为智能家居等应用提供了可靠的温湿度监测方案。
2025-07-07 11:21:58
756
1
原创 STM32 串口USART通讯驱动
串口USART基础讲解:实现STM32与外部设备通信 本文介绍了串口USART的基本原理和应用,为后续ESP8266和语音模块控制奠定基础。USART作为通用同步/异步收发器,支持设备间串行通信,只需TX、RX和GND三线连接。文章详细讲解了异步通信模式(常用)、数据传输帧结构及嵌入式开发中的典型应用场景(指令控制、数据采集等)。通过STM32Cubemx配置实例,展示了如何设置UART1异步通信(115200波特率),并实现fputc重定向以支持printf调试输出。最后给出简单示例代码,演示通过USAR
2025-07-04 14:10:27
1254
原创 ESP8266-01S 模块详解及 MQTT 固件烧写实战
需要有一个串口TTL模块,硬件连接如下,因为我在烧录固件的时候,esp8266总是显示等待上电同步,无法正常烧写固件,通过查阅资料和尝试之后,通过将ESP8266的3V3和EN与串口TTL模块的3V3连接,GND和IO0引脚共同连接到GND上,不懂怎么做的小伙伴,可以看看我下面的图片去将杜邦线进行修改即可。本期内容为STM32FreeRTOS 智能家居项目中的重要章节,通过本期内容的学习,你将掌握STM32基于ESP8266 WIFI模块的物联网应用,本期用到的云平台是阿里云。TCP/IP 协议栈。
2025-07-04 11:22:38
1557
原创 STM32-PWM驱动无源蜂鸣器
摘要:本文介绍了无源蜂鸣器模块的工作原理及应用。重点对比了无源和有源蜂鸣器的区别:无源蜂鸣器需外部方波驱动才能发声,可实现音调控制;有源蜂鸣器自带震荡源,通电即响但无法调节音调。详细分析了模块电路设计,包括三极管开关控制、限流电阻保护等关键元件作用。最后给出了STM32的PWM驱动实现方案,通过定时器产生2kHz方波信号控制蜂鸣器发声。该模块适用于需要音调变化的应用场景。
2025-07-03 18:06:43
1014
原创 STM32大头三脚拨轮开关控制(附代码)
本期使用到的硬件是一个贴片式的大头三脚拨轮开关,这个开关可以当三个按键使。通常可以用于切换界面,调节数值等等。
2025-07-03 15:25:19
494
原创 STM32通过PWM控制SG90舵机
摘要:SG909G舵机通过PWM信号控制角度,适用于智能家居开关门模拟。采用STM32定时器TIM2生成50Hz PWM信号,脉冲宽度0.5ms-2.5ms对应0°-180°转角。关键实现包括:定时器预分频至1MHz、ARR设为20000实现20ms周期,并通过公式pulse=500+angle×100/9精确计算脉冲值。代码提供开门(90°)、关门(0°)及切换功能函数,使用3.3V供电时即可正常工作。该方案展示了舵机在嵌入式系统中的典型控制方法。
2025-07-02 17:26:01
500
原创 重磅预告!!!
做个内容预告,接下来的一段时间,笔者会做一个名为《每日一点会计学知识》的读书栏目。想通过输出倒闭输入的方式来提升学习效率同时,也希望能够帮助到大家了解一些会计学知识。此栏目围绕《一本书读懂财报》这本书的内容进行分享。尽可能做到日更,但是如果学习和工作比较忙的话,也会尽量做到2-3天更新一次。
2025-04-20 11:36:17
311
原创 为什么你知道很多道理,却过不好这一生?
我一直没怎么在意这件事情,直到上周我的一个14.8V的航模电池,因为一直搁置着没用,准备拿出来给odrive的板子供下电,发现不仅用不了,也没办法充上电了。因为知识地获取,触及的是你的理性脑,这也就是很多人会说,为什么知道了很多道理,却过不好这一生的主要原因。而实践中实实在在获得的反馈,通常是触及你的感性脑的,这种方式让你记得更加牢固,也更容易触发你的行为。吃一堑长一智,书上或者他人告诉你的理论知识,如果没经历过实践,很难为你所用,也没什么体感。想想你上一次去摸刚烧开水的热水壶是什么时候的事?
2025-04-20 10:50:09
210
原创 《疯传》4300字深度解析:6个让内容自动传播的黄金法则(STEPPS)
关于公共性概括来说就是:能被别人看见的行为才会被传播,让使用你产品的人变成你的推销员。例如,两家奶茶店,奶茶店A使用白色的杯子,人们用完就扔;奶茶店B印着巨大的LOGO,购买奶茶的人,无论拿在手上,还是放在办公桌上,不管本人有没有意识到,都在无形中为其品牌和产品做了宣传。人是一种喜欢“有样学样”的动物。公共性就是利用人的这种从众心理,来让自己产品和思想得到广泛传播。
2025-04-17 09:07:03
1611
原创 Odrive NameError: name ‘odrv0‘ is not defined
利用Zadig烧录USB驱动后,发现还是报错了NameError: name 'odrv0' is not defined。错误方式:烧录成了CDC Interface。
2025-04-12 10:34:29
311
原创 为什么说太用力的人走不远?神经科学家发现的关键陷阱
在这个崇尚速成的时代,真正的智慧在于理解"慢即是快"的哲学。神经科学研究显示,当我们将目标从"改变结果",转向"享受过程"时,大脑会重塑神经通路,使坚持变得自然而然。那些最终登上顶峰的人,不是起步时跑得最快的,而是最懂得调节步伐的。记住这个进步公式:可持续性 = 适度挑战 × 情绪平衡 × 系统反馈。当你学会在拉伸区优雅地舞蹈,而非在困难区痛苦地挣扎,时间终将成为你最强大的盟友。毕竟,人生的竞赛从不是短跑,而是一场考验耐力的马拉松——保持呼吸,保持节奏,你终将抵达那些拼命冲刺者永远到不了的远方。
2025-04-12 09:27:46
361
原创 Odrive0.5.1-FOC电机控制 encoder.cpp代码实现
这段 Encoder::enc_index_cb() 是 编码器 Index 中断回调 的核心,它的主要任务是响应 Index 脉冲,并完成 位置归零、状态标记 和 抗齿槽力补偿使能。ODrive 中使用的是一个 简化的一阶数字 PLL(锁相环)结构,核心任务是:利用 编码器读数(离散跳变)估算 连续相位;它把 3 个霍尔传感器的数字信号(hall_state)解码成一个标准的位置序号(0~5),用于跟踪电机的当前电角度位置。这个函数 decode_hall 是一个用于霍尔编码器(三相)解码的小工具函数。
2025-04-11 20:00:15
978
1
原创 Odrive0.5.1-FOC电机控制 controller.cpp代码实现
这段代码是 ODrive 固件中的一个关键函数,用于抗齿槽效应(Anti-Cogging)校准,是高级电机控制中常用的补偿机制之一。这是 ODrive 0.5.1 中 Controller::update() 的完整实现,是控制核心逻辑的心脏部分,主要完成从输入指令 → 内部处理 → 生成最终力矩指令(torque setpoint)的全过程。这是控制器类(Controller)的函数,用于选择一个编码器作为该控制器的控制目标(如位置闭环控制时的位置反馈来源)。
2025-04-11 15:36:10
554
原创 Odrive0.5.1-FOC电机控制 axis.cpp代码实现(四)
这段代码实现了ODrive电机控制中的"锁定旋转"(Lock-in Spin)功能,主要用于电机启动时的转子位置识别和速度同步。这段代码实现了ODrive在无传感器模式(Sensorless Mode)下的主控制循环,是电机在没有位置传感器(如编码器)时实现闭环控制的核心逻辑。这段代码实现了ODrive的空闲状态控制循环,是电机轴在不执行具体任务时的基础运行模式。这段代码实现了ODrive的闭环控制主循环,是带编码器反馈的精确位置/速度控制的核心。这个函数必须定期调用,否则系统会认为“挂掉”了。
2025-04-11 14:39:11
549
原创 Odrive0.5.1-FOC电机控制 axis.cpp代码实现(三)
这段代码 Axis::do_checks() 是 ODrive 项目中用来进行轴状态自检的函数,确保系统各部分处于正常工作状态,否则就设置相应的 error_ 错误位。start_thread():在 FreeRTOS 中新建一个线程,运行 run_state_machine_loop()(状态机控制主循环)。从配置中的 GPIO 引脚号获取实际的 GPIO_TypeDef* 和 pin mask,便于后续快速访问 GPIO 的电平状态或设置输出。封装默认配置设置,用于初始化或从某些模板中加载配置项。
2025-04-11 10:50:08
549
原创 Odrive0.5.1-FOC电机控制 axis.cpp代码实现(二)
这是一个中断回调适配器函数,用于将普通的 C 回调(如在 HAL 或中断中注册的函数)转发到 Axis 类的成员函数 step_cb()。这段代码定义了 ODrive 在无传感器模式(Sensorless Mode)下使用的默认锁定(Lock-in)参数配置,主要用于电机启动时的转子位置辨识和速度拉入同步。这段代码定义了 ODrive 电机轴(Axis)在校准(Calibration)过程中使用的默认锁定(Lock-in)参数配置,主要用于电机初始位置检测或编码器校准。板载MOSFET温度监控。
2025-04-11 10:47:48
955
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅