资源简介
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个文件信息
评论
共有 条评论