说明:
参考:FOC和SVPWM的C语言代码实现
硬件:STM32F405RGT6
软件:STM32CubeMX、Keil
1、系统配置
2、定时器1配置
(1)选择通道与引脚
(2)自定义用户常量
将以下值依次加入到User Constants
#define CKTIM ((u32)72000000uL) //主频 #define PWM_PRSC ((u8)0) //TIM1分频系数 #define PWM_FREQ ((u16) 15000) //PWM频率(Hz) #define PWM_PERIOD ((u16) (CKTIM / (u32)(2 * PWM_FREQ *(PWM_PRSC+1)))) #define REP_RATE (1) //该参数可以调整电流环的刷新频率,刷新周期:(REP_RATE + 1)/(2*PWM_FREQ) 秒 //因为电流环的采样是靠TIM1来触发的 #define DEADTIME_NS ((u16)1000) //死区时间(ns),范围:0-3500 #define DEADTIME (u16)((unsigned long long)CKTIM/2 * (unsigned long long)DEADTIME_NS/1000000000uL) ———————————————— 版权声明:本文为CSDN博主「qlexcel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qlexcel/article/details/95227991
(3)配置定时器1
3、生成工程
2、硬件测试在主函数中加入下列代码测试PA8、PB13的互补PWM与死区时间。
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1); __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,2800);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)