实例介绍
【实例截图】
【资料目录】
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
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论