首页 > 其他分享 >基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现

基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现

时间:2024-07-04 15:55:44浏览次数:16  
标签:PWM HAL SVPWM TIM Init STM32F103C8T6 驱动 include MX

基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现

本系列文章:

  1. 基于STM32F103C8T6的同步电机驱动-CubeMX配置与IQmath调用
  2. 基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现

一、PWM驱动代码的编写

在系列文章的第一篇中已经对主定时器TIM1进行了PWM相关的配置,对从定时器TIM4进行了配置并开启了中断。电机驱动程序相关代码也将写在TIM4的中断里。

/****file:main.c*****/
//Include Header Files
#include "main.h"
#include "adc.h"
#include "can.h"
#include "i2c.h"
#include "spi.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "IQmathlib.h"

//Global Variable
//PWM相关参数
uint16_t PWM1_PULSE=0;
uint16_t PWM2_PULSE=0;
uint16_t PWM3_PULSE=0;

/************向上为参数定义,向下为运行函数*******************************/
//main函数
int main(void)
{
   
  HAL_Init();
  SystemClock_Config();
  
  MX_GPIO_Init();
  MX_ADC1_Init();
  MX_CAN_Init();
  MX_I2C1_Init();
  MX_SPI1_Init();
  MX_TIM1_Init();
  MX_USART1_UART_Init();
  MX_I2C2_Init();
  MX_TIM4_Init();

  HAL_ADCEx_Calibration_Start(&hadc1);    //AD校准
  __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, PWM1_PULSE); 
  __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_2, PWM2_PULSE); 
  __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_3, PWM3_PULSE); 
  __HAL_TIM_SET_AUTORELOAD(&htim4,2-1); //设置要输出的PWM脉冲数1000个  
  HAL_TIM_Base_Start_IT(&htim4);             //启动从定时器
  HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
  HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3); 
  

标签:PWM,HAL,SVPWM,TIM,Init,STM32F103C8T6,驱动,include,MX
From: https://blog.csdn.net/qq_45854134/article/details/140180625

相关文章

  • 【中国工程院院士、IEEE Fellow等大咖云集】第六届复杂系统数据驱动优化国际会议(DOCS
    第六届复杂系统数据驱动优化国际会议(DOCS2024)将于2024年8月16-18日在中国杭州召开,组委会诚挚邀请与复杂系统数据驱动优化相关的广泛领域的研究人员、从业人员和学者踊跃投稿、积极参会交流。1.会议官方会议官网:www.ic-docs.org时间地点:2024年8月16-18日中国-......
  • IDEA Database DataGrip关于Hive连接驱动万能问题详解。。
    问题:默认下载的Hive驱动版本是3的,如果使用最新的3版本连接2版本的Hive会报错,报各种依赖问题。解决方案:需要下载对应版本的Hive驱动hive-jdbchadoop-common也需下载(版本不需要太严格,2和3版本都可)配置刚刚下载的依赖包(在弹出的finder文件位置,新建一个文件夹,文件夹的名称修改......
  • 创新驱动,智享未来:电动车仪表盘之蓝牙芯方案
    创新驱动,智享未来:电动车仪表盘之蓝牙芯方案 电动车行业不断发展的浪潮中,我们自豪地推出引领时代的电动车仪表盘蓝牙芯方案,为您的骑行之旅带来前所未有的智能与便捷。 精准掌控,一目了然 我们的蓝牙芯方案搭载了高性能BLE5.0蓝牙芯片-HS6621CG-C内核ARMCortex-M4F,max......
  • 【S32K144 PORT&DIO 基于EB Tresos的驱动设计】
    前言本专栏会以NXPS32K144为依托,记录各个模块的原理和实现方法。首先第一个模块都是以PORT模块开始,以此模块制定目标:以按键控制对应的LED灯,按键不按时,对应LED灯熄灭,当按下按键时对应LED灯点亮。为了实现这个功能,需要用到PORT和DIO模块,PORT模块是用于配置port端口,DIO模......
  • delphi BDE Reader 不需要驱动
    用过Delphi开发的几乎都知道BDE,是读取paradoxDB(*.db)数据库(表)读取的驱动。要存取数据,必需安装BDE驱动程序,才能正常读取,还需要配置,发布程序就更不方便,所以吐槽的很多。如果升级成64位程序,几乎只有放弃,因为没有64位的BDE驱动[官方己说明](可以在64位的windows系统上安装,但B......
  • 聊一聊领域驱动与贫血模型
    写在前面前段时间跟领导讨论技术债概念时不可避免地提到了代码的质量,而影响代码质量的因素向来都不是单一的,诸如项目因素、管理因素、技术选型、人员素质等等,因为是技术债务,自然就从技术角度来分析,单纯从技术角度来看代码质量,其实又细分很多原因,如代码设计、代码规范、编程技巧等......
  • linux camera 驱动分析
    v4l2_device结构体每个设备实例都通过v4l2_device(v4l2-device.h)结构体来表示。简单设备可以仅分配这个结构体,但在大多数情况下,都会将这个结构体嵌入到一个更大的结构体中。驱动中,将会通过v4l2_device_register(structdevice*dev,structv4l2_device*v4l2_dev)注册设备示......
  • <sa8650>sa8650 qcxserver-之-摄像头传感器VB56G4A驱动开发<1>
    <sa8650>sa8650qcxserver-之-摄像头传感器VB56G4A驱动开发<1>一、前言二、QCX架构三、QCX传感器驱动程序定制开发3.1sensor硬件接口3.2sensor配置文件3.2.1cameraconfig.c3.2.2cameraconfigsa8650_water.c3.2.3新增编译MK3.2.4参数解析3.2.4.1st......
  • 返利App的用户行为分析与数据驱动决策
    返利App的用户行为分析与数据驱动决策大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨返利App中的用户行为分析与数据驱动决策的技术细节和实现策略。在竞争激烈的移动应用市场中,了解用户行......
  • ChatPPT:AI驱动的智能PPT一键生成与美化工具
    ChatPPT是由必优科技开发的一款AI超级PPT工具,它通过对话式AI创作,为用户提供快速生成和美化PPT的全流程服务。以下是该平台的一些核心功能和特点:核心功能:一键生成PPT:用户只需输入PPT主题,ChatPPT即可快速生成文档。对话式AI创作:涵盖6大模块,超过1400类全流程AI文档服务,使用户能......