
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要: Sensor是SimpleFOC中定义传感器通用接口的抽象基类,通过多态设计统一不同硬件传感器的使用方式。核心功能包括: 跨圈检测:通过0.8×2π阈值判断角度过零,自动更新圈数计数 速度计算:有限差分法结合圈数差和角度差,内置微秒溢出和采样间隔保护 无抖动启动:四次读取配合延迟消除初始噪声 统一接口:子类只需实现getSensorAngle(),其余功能由基类处理 该设计实现了硬件无关的

如果你在调模式时遇到电机一使能就发热、抖动,或者电流目标越给越不对劲,很多时候不要急着先调 PID。更值得优先确认的是:电流采样相序、方向、ADC 零点,以及三相电流到id/iq的变换链路有没有错。ia/ib/icCurrentSense.cpp 的核心任务,就是把底层 ADC 读到的 ia/ib/ic 三相电流,变成控制器能直接使用的 id/iq。是电流采样的。它并不继承Sensor,但设计思路

摘要:禁用C++异常处理优化STM32内存占用 在STM32G431RBT6(128KB内存)上开发FOC电机控制项目时,通过添加"-fno-exceptions"编译选项禁用C++异常处理机制,使程序大小从53,884B降至49,444B,节省了4.335KB空间。该优化会禁用try-catch异常处理,并使标准库函数在失败时直接终止而非抛出异常。由于嵌入式开发通常不使用C+

QML与Python双向交互实现 本文介绍了如何使用PySide6实现QML与Python的双向交互,包括参数传递和结果返回。核心代码展示了一个完整的闭环流程:QML界面调用Python方法并显示返回结果。 关键实现点: Python端通过继承QObject并添加@Slot装饰器创建可调用方法 使用setContextProperty将Python对象注册到QML环境 QML通过绑定事件调用Pyt

本文展示了如何实现QML前端与Python后端的交互,通过信号槽机制实现按钮点击事件的参数传递。关键点包括: Python端创建Backend类继承QObject,使用@Slot装饰器定义接收字符串参数的槽函数 QML中两个按钮分别绑定到不同的Python槽函数,点击时传递特定字符串 演示了基本交互流程:QML按钮clicked信号→调用Python函数→控制台输出 补充说明了@Slot支持的各种

本文介绍了一个简单的PySide6与QML交互框架。通过实例演示了如何实现点击QML按钮调用Python后端函数的功能。核心代码包括: Python后端类(Backend)继承QObject,使用@Slot()装饰器标记可调用方法 将后端对象注册到QML环境 QML中通过onClicked事件直接调用注册的后端方法 该框架展示了PySide6和QML前后端交互的基本模式,代码简洁清晰,适合作为入门

摘要:Python与QML的双向信号交互 本文演示了Python与QML实现双向交互的技术方案,重点展示了Python主动发送信号驱动QML界面更新的方法。通过定义messageChanged = Signal(str)信号和使用QTimer定时器,Python端每秒自动发送更新消息。QML端通过Connections元素监听信号,遵循Qt框架约定的命名规则onMessageChanged实现自动

文章目录一.前言二. 消息RAM三. “错误”配置之同时使用两路FDCAN3.1 FDCAN13.2 FDCAN23.3 消息RAM的分布四. “正确”配置之同时使用两路FDCAN4.1 FDCAN14.2 FDCAN24.3 消息RAM的分布五. 计算FDCAN2的Message RAM Offset5.1 SRAMCAN_BASE5.2 hfdcan1.msgRam.EndAddress计算过
摘要:禁用C++异常处理优化STM32内存占用 在STM32G431RBT6(128KB内存)上开发FOC电机控制项目时,通过添加"-fno-exceptions"编译选项禁用C++异常处理机制,使程序大小从53,884B降至49,444B,节省了4.335KB空间。该优化会禁用try-catch异常处理,并使标准库函数在失败时直接终止而非抛出异常。由于嵌入式开发通常不使用C+

Embedded IDE官网:https://em-ide.com/docs/intro我猜肯定有部分人使用SI + Keil开发STM32项目,也有vscode + Keil开发STM32程序。SI或vscode编写代码,然后切换Keil编译、下载、调试程序。有一段时间,我也是这么干的。但是,程序切换来,切换去,把我整得特别难受,最终还是忍受着远古开发工具的环境,纯Keil开发。在参与新的项目开








