资源简介

STM32F030无刷无霍尔驱动程序,代码为C语言,无霍尔方式驱动。已经经过验证,可以放心下载和调试。

资源截图

代码片段和文件信息

/******************************************************************************
*文件名称:ADC1.c
*作者姓名:Liu Tusheng  
*调试日期:2015.12.30
*功能概要:ADC1 采集无刷电机反电动势,用于采集过零点换向
*
******************************************************************************/

#include “ADC1.h“
#include “PWM.h“
#include “USART1.h“
#include “delay.h“
//#include “TIM.h“

uint16_t RegularConvData_Tab[ADC1_CH_NUM*SAMPLINGTIME]; //装载4个通道的转换值
uint16_t RegularAverage[ADC1_CH_NUM]; 
uint8_t  ADCDMAFlag = 0; //DMA传输完成标志
uint8_t  ZeroFlag = 0;   //检测到过零标志
uint8_t  BLDCState = 0;  //电机运行在哪一步
PidStruct PIDJust;
GetCountStruct SetSpeedTime = {0};
GetCountStruct feedbackSpeedTime = {0};

uint16_t GetPidValueSetPWMValue;
DelayStruct DelayTime = {0}; 

//=============================================================================
//函数名称:ADC1_DMA_Init
//功能概要:ADC1初始化函数
//参数说明:无
//函数返回:无
//=============================================================================
void ADC1_DMA_Init(void)
{
GPIO_InitTypeDef    GPIO_InitStructure;
DMA_InitTypeDef     DMA_InitStructure;
ADC_InitTypeDef     ADC_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1  ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1  ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOA &GPIO_InitStructure);

ADC_DeInit(ADC1);//ADC恢复默认设置

DMA_DeInit(DMA1_Channel1); /* DMA1 Channel1 Config */
DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)ADC1_DR_Address;//外设地址
DMA_InitStructure.DMA_MemorybaseAddr = (uint32_t)&RegularConvData_Tab;//内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//外设作为数据传输的来源
DMA_InitStructure.DMA_BufferSize = ADC1_CH_NUM*SAMPLINGTIME;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址寄存器不变
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//数据宽度为16位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//数据宽度为16位
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA_Priority设定DMA通道x的软件优先级
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//DMA通道x没有设置为内存到内存传输
DMA_Init(DMA1_Channel1 &DMA_InitStructure);

DMA_ITConfig(DMA1_Channel1 DMA_IT_TC ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);



// ADC_StructInit(&ADC_InitStructure);//初始化ADC结构
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位精度
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //规定模式装换工作在连续模式
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; 
ADC_Ini

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1120  2012-03-23 12:36  STM32F030 BLDC2016\CORE\arm_common_tables.h

     文件     240326  2012-03-23 12:36  STM32F030 BLDC2016\CORE\arm_math.h

     文件      31948  2012-03-23 12:36  STM32F030 BLDC2016\CORE\core_cm0.h

     文件      15691  2012-03-23 12:36  STM32F030 BLDC2016\CORE\core_cmFunc.h

     文件      16108  2012-03-23 12:36  STM32F030 BLDC2016\CORE\core_cmInstr.h

     文件      10646  2012-03-23 12:36  STM32F030 BLDC2016\CORE\startup_stm32f0xx.s

     文件       9703  2016-01-18 21:54  STM32F030 BLDC2016\HARDWARE\ADC1.c

     文件       1145  2016-01-18 19:21  STM32F030 BLDC2016\HARDWARE\ADC1.h

     文件        540  2014-05-16 11:29  STM32F030 BLDC2016\HARDWARE\led.c

     文件        270  2014-05-07 16:57  STM32F030 BLDC2016\HARDWARE\led.h

     文件       8031  2016-01-18 20:05  STM32F030 BLDC2016\HARDWARE\PWM.c

     文件        486  2016-01-15 10:40  STM32F030 BLDC2016\HARDWARE\PWM.h

     文件       7779  2016-01-18 21:20  STM32F030 BLDC2016\HARDWARE\TIM.c

     文件        793  2016-01-18 21:21  STM32F030 BLDC2016\HARDWARE\TIM.h

     文件       2553  2015-12-30 15:00  STM32F030 BLDC2016\HARDWARE\TIMCap.c

     文件        106  2015-12-30 14:49  STM32F030 BLDC2016\HARDWARE\TIMCap.h

     文件       3002  2015-12-30 15:23  STM32F030 BLDC2016\HARDWARE\USART1.c

     文件        125  2014-05-07 19:50  STM32F030 BLDC2016\HARDWARE\USART1.h

     文件     172472  2016-01-18 21:54  STM32F030 BLDC2016\OBJ\adc1.crf

     文件       1101  2016-01-18 21:54  STM32F030 BLDC2016\OBJ\adc1.d

     文件     192236  2016-01-18 21:54  STM32F030 BLDC2016\OBJ\adc1.o

     文件     162975  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\delay.crf

     文件        919  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\delay.d

     文件     180176  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\delay.o

     文件         19  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\ExtDll.iex

     文件        218  2013-12-22 00:43  STM32F030 BLDC2016\OBJ\keilkill.bat

     文件     162617  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\led.crf

     文件        881  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\led.d

     文件     179064  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\led.o

     文件     170052  2016-01-18 21:45  STM32F030 BLDC2016\OBJ\main.crf

............此处省略133个文件信息

评论

共有 条评论