在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → 电动车无刷电机驱动

电动车无刷电机驱动

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:5.13M
  • 下载次数:72
  • 浏览次数:503
  • 发布时间:2021-11-24
  • 实例类别:嵌入式开发
  • 发 布 人:lblw01
  • 文件格式:.rar
  • 所需积分:20
 相关标签: 电动车 电机 驱动

实例介绍

【实例简介】电动车无刷电机驱动

【实例截图】

from clipboard

【资料目录】

ST031(艾玛)

└── ST031(艾玛)
    ├── ST_GD32-FOC
    │   └── GD32-FOC
    │       ├── Libraries
    │       │   ├── CMSIS
    │       │   │   └── CM3
    │       │   │       ├── CoreSupport
    │       │   │       │   ├── core_cm3.c
    │       │   │       │   └── core_cm3.h
    │       │   │       └── DeviceSupport
    │       │   │           └── GD
    │       │   │               └── GD32F1x0
    │       │   │                   ├── startup_stm32f0xx.s
    │       │   │                   ├── stm32f0xx.h
    │       │   │                   ├── stm32f0xx_conf.h
    │       │   │                   ├── system_stm32f0xx.c
    │       │   │                   └── system_stm32f0xx.h
    │       │   └── GD32F1x0_StdPeriph_Driver
    │       │       ├── inc
    │       │       │   ├── stm32f0xx_adc.h
    │       │       │   ├── stm32f0xx_cec.h
    │       │       │   ├── stm32f0xx_comp.h
    │       │       │   ├── stm32f0xx_crc.h
    │       │       │   ├── stm32f0xx_dac.h
    │       │       │   ├── stm32f0xx_dbgmcu.h
    │       │       │   ├── stm32f0xx_dma.h
    │       │       │   ├── stm32f0xx_exti.h
    │       │       │   ├── stm32f0xx_flash.h
    │       │       │   ├── stm32f0xx_gpio.h
    │       │       │   ├── stm32f0xx_i2c.h
    │       │       │   ├── stm32f0xx_iwdg.h
    │       │       │   ├── stm32f0xx_misc.h
    │       │       │   ├── stm32f0xx_pwr.h
    │       │       │   ├── stm32f0xx_rcc.h
    │       │       │   ├── stm32f0xx_rtc.h
    │       │       │   ├── stm32f0xx_spi.h
    │       │       │   ├── stm32f0xx_syscfg.h
    │       │       │   ├── stm32f0xx_tim.h
    │       │       │   ├── stm32f0xx_usart.h
    │       │       │   └── stm32f0xx_wwdg.h
    │       │       └── src
    │       │           ├── DAC.c
    │       │           ├── stm32f0xx_adc.c
    │       │           ├── stm32f0xx_cec.c
    │       │           ├── stm32f0xx_comp.c
    │       │           ├── stm32f0xx_crc.c
    │       │           ├── stm32f0xx_dac.c
    │       │           ├── stm32f0xx_dbgmcu.c
    │       │           ├── stm32f0xx_dma.c
    │       │           ├── stm32f0xx_exti.c
    │       │           ├── stm32f0xx_flash.c
    │       │           ├── stm32f0xx_gpio.c
    │       │           ├── stm32f0xx_i2c.c
    │       │           ├── stm32f0xx_iwdg.c
    │       │           ├── stm32f0xx_misc.c
    │       │           ├── stm32f0xx_pwr.c
    │       │           ├── stm32f0xx_rcc.c
    │       │           ├── stm32f0xx_rtc.c
    │       │           ├── stm32f0xx_spi.c
    │       │           ├── stm32f0xx_syscfg.c
    │       │           ├── stm32f0xx_tim.c
    │       │           ├── stm32f0xx_usart.c
    │       │           └── stm32f0xx_wwdg.c
    │       ├── MOTO_FOC_DRIVE
    │       │   ├── MOTO_FOC_DRIVE_INC
    │       │   │   ├── MC_Clarke_Park.h
    │       │   │   ├── MC_FOC_Drive.h
    │       │   │   ├── MC_PID_regulators.h
    │       │   │   └── stm32f10x_hall.h
    │       │   └── MOTO_FOC_DRIVE_SRC
    │       │       ├── MC_Clarke_Park.c
    │       │       ├── MC_FOC_Drive.c
    │       │       ├── MC_PID_regulators.c
    │       │       └── stm32f10x_hall.c
    │       ├── Project
    │       │   ├── JLinkLog.txt
    │       │   ├── JLinkSettings.ini
    │       │   ├── SysTick.plg
    │       │   ├── SysTick.uvgui.Administrator
    │       │   ├── SysTick.uvgui.YiboWang
    │       │   ├── SysTick.uvgui.crwang
    │       │   ├── SysTick.uvgui.jin
    │       │   ├── SysTick.uvgui.xli
    │       │   ├── SysTick.uvgui_Administrator.bak
    │       │   ├── SysTick.uvgui_crwang.bak
    │       │   ├── SysTick.uvgui_jin.bak
    │       │   ├── SysTick.uvgui_xli.bak
    │       │   ├── SysTick.uvopt
    │       │   ├── SysTick.uvproj
    │       │   ├── SysTick_SysTick.dep
    │       │   ├── SysTick_Target 1.dep
    │       │   ├── SysTick_Vector control.dep
    │       │   ├── SysTick_uvopt.bak
    │       │   ├── SysTick_uvproj.bak
    │       │   ├── list
    │       │   │   ├── SysTick.map
    │       │   │   └── startup_stm32f0xx.lst
    │       │   └── obj
    │       │       ├── ExtDll.iex
    │       │       ├── SysTick.axf
    │       │       ├── SysTick.build_log.htm
    │       │       ├── SysTick.hex
    │       │       ├── SysTick.htm
    │       │       ├── SysTick.lnp
    │       │       ├── SysTick.plg
    │       │       ├── SysTick.sct
    │       │       ├── SysTick_Vector control.dep
    │       │       ├── SysTick_sct.Bak
    │       │       ├── core_cm3.crf
    │       │       ├── core_cm3.d
    │       │       ├── core_cm3.o
    │       │       ├── dac.crf
    │       │       ├── dac.d
    │       │       ├── dac.o
    │       │       ├── main.crf
    │       │       ├── main.d
    │       │       ├── main.o
    │       │       ├── mc_clarke_park.crf
    │       │       ├── mc_clarke_park.d
    │       │       ├── mc_clarke_park.o
    │       │       ├── mc_foc_drive.crf
    │       │       ├── mc_foc_drive.d
    │       │       ├── mc_foc_drive.o
    │       │       ├── mc_globals.crf
    │       │       ├── mc_globals.d
    │       │       ├── mc_globals.o
    │       │       ├── mc_motorcontrol.crf
    │       │       ├── mc_motorcontrol.d
    │       │       ├── mc_motorcontrol.o
    │       │       ├── mc_pid_regulators.crf
    │       │       ├── mc_pid_regulators.d
    │       │       ├── mc_pid_regulators.o
    │       │       ├── mc_state_observer.crf
    │       │       ├── mc_state_observer.d
    │       │       ├── mc_state_observer.o
    │       │       ├── mc_state_observer_interface.crf
    │       │       ├── mc_state_observer_interface.d
    │       │       ├── mc_state_observer_interface.o
    │       │       ├── startup_stm32f0xx.d
    │       │       ├── startup_stm32f0xx.o
    │       │       ├── stm32f0xx_adc.crf
    │       │       ├── stm32f0xx_adc.d
    │       │       ├── stm32f0xx_adc.o
    │       │       ├── stm32f0xx_cec.crf
    │       │       ├── stm32f0xx_cec.d
    │       │       ├── stm32f0xx_cec.o
    │       │       ├── stm32f0xx_comp.crf
    │       │       ├── stm32f0xx_comp.d
    │       │       ├── stm32f0xx_comp.o
    │       │       ├── stm32f0xx_crc.crf
    │       │       ├── stm32f0xx_crc.d
    │       │       ├── stm32f0xx_crc.o
    │       │       ├── stm32f0xx_dac.crf
    │       │       ├── stm32f0xx_dac.d
    │       │       ├── stm32f0xx_dac.o
    │       │       ├── stm32f0xx_dbgmcu.crf
    │       │       ├── stm32f0xx_dbgmcu.d
    │       │       ├── stm32f0xx_dbgmcu.o
    │       │       ├── stm32f0xx_dma.crf
    │       │       ├── stm32f0xx_dma.d
    │       │       ├── stm32f0xx_dma.o
    │       │       ├── stm32f0xx_exti.crf
    │       │       ├── stm32f0xx_exti.d
    │       │       ├── stm32f0xx_exti.o
    │       │       ├── stm32f0xx_flash.crf
    │       │       ├── stm32f0xx_flash.d
    │       │       ├── stm32f0xx_flash.o
    │       │       ├── stm32f0xx_gpio.crf
    │       │       ├── stm32f0xx_gpio.d
    │       │       ├── stm32f0xx_gpio.o
    │       │       ├── stm32f0xx_i2c.crf
    │       │       ├── stm32f0xx_i2c.d
    │       │       ├── stm32f0xx_i2c.o
    │       │       ├── stm32f0xx_it.crf
    │       │       ├── stm32f0xx_it.d
    │       │       ├── stm32f0xx_it.o
    │       │       ├── stm32f0xx_iwdg.crf
    │       │       ├── stm32f0xx_iwdg.d
    │       │       ├── stm32f0xx_iwdg.o
    │       │       ├── stm32f0xx_misc.crf
    │       │       ├── stm32f0xx_misc.d
    │       │       ├── stm32f0xx_misc.o
    │       │       ├── stm32f0xx_pwr.crf
    │       │       ├── stm32f0xx_pwr.d
    │       │       ├── stm32f0xx_pwr.o
    │       │       ├── stm32f0xx_rcc.crf
    │       │       ├── stm32f0xx_rcc.d
    │       │       ├── stm32f0xx_rcc.o
    │       │       ├── stm32f0xx_rtc.crf
    │       │       ├── stm32f0xx_rtc.d
    │       │       ├── stm32f0xx_rtc.o
    │       │       ├── stm32f0xx_spi.crf
    │       │       ├── stm32f0xx_spi.d
    │       │       ├── stm32f0xx_spi.o
    │       │       ├── stm32f0xx_syscfg.crf
    │       │       ├── stm32f0xx_syscfg.d
    │       │       ├── stm32f0xx_syscfg.o
    │       │       ├── stm32f0xx_systick.crf
    │       │       ├── stm32f0xx_systick.d
    │       │       ├── stm32f0xx_systick.o
    │       │       ├── stm32f0xx_tim.crf
    │       │       ├── stm32f0xx_tim.d
    │       │       ├── stm32f0xx_tim.o
    │       │       ├── stm32f0xx_usart.crf
    │       │       ├── stm32f0xx_usart.d
    │       │       ├── stm32f0xx_usart.o
    │       │       ├── stm32f0xx_wwdg.crf
    │       │       ├── stm32f0xx_wwdg.d
    │       │       ├── stm32f0xx_wwdg.o
    │       │       ├── stm32f10x_hall.crf
    │       │       ├── stm32f10x_hall.d
    │       │       ├── stm32f10x_hall.o
    │       │       ├── system_stm32f0xx.crf
    │       │       ├── system_stm32f0xx.d
    │       │       ├── system_stm32f0xx.o
    │       │       ├── systeminitialization.crf
    │       │       ├── systeminitialization.d
    │       │       └── systeminitialization.o
    │       ├── USE_DRIVE
    │       │   ├── USE_DRIVE_INC
    │       │   │   ├── MC_MotorControl.h
    │       │   │   ├── MC_type.h
    │       │   │   ├── SystemInitialization.h
    │       │   │   └── stm32f0xx_it.h
    │       │   └── USE_DRIVE_SRC
    │       │       ├── MC_MotorControl.c
    │       │       ├── SystemInitialization.c
    │       │       ├── main.c
    │       │       └── stm32f0xx_it.c
    │       └── User
    │           ├── MC_Control_Param.h
    │           └── MC_hall_prm.h
    └── hardware
        ├── 031-6MOSFET.PcbDoc
        ├── 031-6MOSFET.PcbDocPreview
        ├── 031-6MOSFET.PrjPcb
        ├── 031-6MOSFET.asc
        ├── 031-6MOSFET原理图.SCHDOC
        ├── 031-6MOSFET原理图.SCHDOCPreview
        ├── History
        │   ├── 031-6MOSFET.~(1).PrjPcb.Zip
        │   └── 031-6MOSFET原理图.~(1).SCHDOC.Zip
        └── 原理图.pdf

25 directories, 218 files


【核心代码】* Includes ------------------------------------------------------------------*/

#include "MC_type.h"
#include "MC_FOC_Drive.h"
#include "stm32f10x_hall.h"
#include "MC_MotorControl.h"
#include "MC_Clarke_Park.h"
#include "MC_PID_regulators.h"
#include "SystemInitialization.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/
// 刹车保护临时标志 上电有刹车
u8 hBrakeHardFlag = 0, hBrakeStartFlag = 0;
static  u8 hBrakeHardIndex = 0,hBrakeStartIndex = 0;
u16 wGlobal_Flags = 0; //错误故障
// 故障显示单次结束标志 故障显示计数   故障显示计数参考 故障LED交替闪烁计时
static  u8 ErrTimeFlag  = 0, ErrPrevState = 0, ErrPrevIndex = 0, hErrPeriodTime = 0;

static u16 GlobalGetExteSet = 0, GlobalHardSet = 0;
static  u8 GlobalHardIndex = 0;
static  u8 hTimebase_2_5ms = 0;         //
static u16 HelpLevelIndex[2]; //助力低电平时间保存
// 助力电平计数器计时 助力加速度控制
static u16 HelpLevelTime = 0, HelpBoostAcce = 0;
// 助力电平状态保存 助力加速标志 有效的助力个数 助力有效置起标志
static u8  HelpLevelSave = 0, HelpAccelSign = 0, HelpEffNumber = 0, HelpUsefuFlag = 0;

#if (CRUISEMODE!=NOCRUISE)
static u8  CruiseSetupFlag = 0; //巡航置起标志
static u16 GlobalCruiseSet = 0; //巡航保存的手把电压
#if ((CRUISEMODE==AUTOMCRUISE)||(CRUISEMODE==CHOOSCRUISE))
static u16 CruiseMaticTime = 0; //自动巡航启动计时
#endif
#if ((CRUISEMODE==ATTHECRUISE)&&(defined THREESTATES))
static u8  KAuxsFalgSet = 0;
#endif
#if ((CRUISEMODE==ATTHECRUISE)||(CRUISEMODE==CHOOSCRUISE))
static u16 CruiseManuaTime = 0; //手动巡航消抖计时
static u8  CruiseDisappear = 0; //手动巡航消抖标志
#endif
void MC_SetupSpeedCruise(void);
#endif

static u8  XSForMarkFlag  = 0, XSForMarkIndex = 0;
#if (TYPESPEEDMODE==BUTTON3SHIFT)
// 三速速度级别 三速按钮消抖
static u8 Button3SpeedTurn = 0, Button3SpeedPres = 0;
// 三速按钮消抖计时 三速速度限制
static u16 Button3SpeedTime = 0;
#elif (TYPESPEEDMODE!=NOTSHIFT)
static u8 Dialle3SpeedState=0, Dialle3SpeedSkey=0, Dialle3SpeedWhich=0;
static u8 Dialle3SpeedFlag=0, Dialle3SpeedTime=0;
#endif
static u16 TorqreSpeedLimit = NORMAL_SPEED;
#if ((defined EABSBRAKE)||(defined LOCKMOTOR))
// EABS处理计时器 EABS退出计时器
static u8  E_ABSPerTime = 0, E_ABSPerCont = 0;
// EABS执行步骤
u8  E_ABSCanFlag = 0;
// EABS刹车硬度给定
u16 E_ABSPWMDuty = 0;
#endif
#ifdef  LOCKMOTOR
// 锁电机置起标志 锁电机置起准备  电机推动方向
u8  LocktheMotoFlag = 0, LocktheMotoWait = 0, LocktheMotoTurn = 0;
// 锁电机端口消抖
static u8  LocktheMotoTime = 0;
// 锁电机方向计数 锁电机方向保存
static s8  LocktheMotoTest = 0, LocktheMotoTemp = 0;
// 锁电机转矩给定
static u16 LocktheMotoDuty = 0;
void MC_TestLockMotorFault(void);
#endif
#ifdef RECESPEEDLIMIT
u8  StealthSpeedLimit = 0;
#if (TYPESPEEDMODE==NOTSHIFT)
static u8  TemporaryMaxSpeed = 0;
#endif
#endif
#ifdef  SINGLELCD
static u8 bSendTab[12];
static u8 bSendTime=0, bSendWait=0, bPassWordH=0, bPassWordL=0, bPassWord=0;
static u8 bSendBit=0, bStatBit=0, bSendByte=0, bTempBit=0, bTempByte=0;
static u16 TimeBit = 0;
#endif


标签: 电动车 电机 驱动

实例下载地址

电动车无刷电机驱动

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警