[开发资料] CW32L011电机驱动控制开发板-软件

[复制链接]
211|6
Xiashiqi 发表于 2025-9-4 13:44 | 显示全部楼层 |阅读模式
1.修改工程目录 (个人习惯)
源文档是这样目录

4896568b92720a9cb6.png


1577368b9271b257dd.png


817068b927170b541.png


整改后的目录

7171168b92712a6a2f.png


2.使用的工具 keil 作为编译器 vscode 作为浏览和编辑器
3.软件工程分析

11968b9270c07756.png


4.工程文件分析
1)BLDC-MOTOR文件夹里面

①compu采样文件

// 用于采集速度样本数据

void SampleSpeed(void);

// 用于采集开环电流相关样本数据

void SampleOI(void);

// 用于采集电流样本数据

void SampleI(void);

// :用于采集电压样本数据

void SampleV(void);

②control控制文件

// 检查电机是否满足启动条件(如电源、信号、传感器等)  

void MotorStartCheck(void);  

// 控制电机启动前的延时(如软启动、防止瞬时电流过大)  

void MotorStartDealy(void);  

// 执行电机开环启动操作(如PWM输出、继电器吸合等)  

void MotorStartOPEN(void);  

// 电机运行 开环 :维持电机正常运行(如速度调节、电流控制等)  

void MotorRunOPEN(void);  

//  控制电机停止(如关闭PWM、刹车、自由停车等)  

void MotorStop(void);  

//  检测到电机异常(如过流、堵转、温度过高)时执行  

void MotorError(void);  

//  当错误超过阈值(如多次重启失败)时执行保护动作  

void MotorErrorOver(void);  

// 等待启动条件 : 信号(如按键、通信指令)以允许电机启动  

void WaitStart(void);  

// EN 检查电机使能信号是否有效(如硬件使能引脚状态)  

void ENCheck(void);  

③global.参数文件

7781968b926ffd3c9e.png


6651468b926fb2c101.png


④init初始化文件

以名字为准 顾名思义 就是各种初始化 包含 主控内部rcc io gpio 电机pwm adc 等操作

⑤MOTOR 电机文件

void PWMtimer_init(void);// PWM 定时器初始化函数 设置 PWM 频率、占空比、死区时间等

void Halltimer_init(void);//霍尔传感器定时器初始化 计算转速/位置

void Commutation(unsigned int step,unsigned int PWM_ON_flag);//电机换相控制函数

void UPPWM(void);// 更新 PWM 占空比函数

unsigned char HALL_Check(void);// 霍尔信号检测函数

void Hall_init(void);// 霍尔传感器初始化函数 感觉这个应该在霍尔函数里面吧

void HALL_MOTOR_START(void);// 霍尔启动电机函数

void MOTOR_STOP0(void);// 电机制动/停止函数

⑥sensorless 传感器文件 现在这个应该就是无感里面的反电动势输入初始化了

extern void SENSORLESS_TIM_Config(void);/// 定时器初始化 函数好像不用加 全局声明吧?

extern unsigned char Sensorless_START(void); //传感器启动

USER文件夹里面之后主函数文件 还有 cw的中断文件 以及启动文件
我添加了一些注释进去

循环之前的初始化部分

初始化电位器的斜率

初始化相关外设

检测电流偏执

上电检测电位器是否归零

1923668b926f32382e.png


20mS采集一次速度设定值,并检查传感器

开环电流检测

9009168b926ed73525.png


每100ms做一次电流检测 和电压检测 做做一次速度计算

1741668b926e6eabd1.png


故障判断是实时判断的 这个优先级最高了

4786068b926e288640.png


接下来是任务调度 包含启动 开环启动 闭环启动 开环转 闭环转 停止模式 刹车模式 错误模式

8634568b926ddbbe80.png


中断函数 计时器 任务函数时间调度 就是用来各个任务调度的时间的 恩

9363968b926d7ee7cb.png


————————————————
版权声明:本文为CSDN博主「TrainHead」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/scsqqqqqqqqqqqqq/article/details/150339916

AdaMaYun 发表于 2025-9-18 09:40 | 显示全部楼层
软件控制主要是以有感进行控制的吗
中国龙芯CDX 发表于 2025-9-25 14:28 | 显示全部楼层
CW32L011电机驱动控制开发板
OKAKAKO 发表于 2025-9-26 17:11 | 显示全部楼层
CW32L011电机驱动控制开发板-软件很不错
蚊子的噩梦 发表于 2025-9-27 12:57 | 显示全部楼层
你的软件工程分析做得很详细,特别是对电机控制流程的描述,这对于理解整个系统的工作原理非常关键。
星辰大海不退缩 发表于 2025-9-27 13:51 | 显示全部楼层
CW32L011电机驱动控制
小夏天的大西瓜 发表于 2025-9-28 15:43 | 显示全部楼层
CW32L011电机驱动控制开发板-软件设置很不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

250

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部