栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【手写FOC底层驱动代码】1、使用高级定时器产生PWM与死区

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【手写FOC底层驱动代码】1、使用高级定时器产生PWM与死区

1、HAL库配置

说明:
参考: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);

  


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号