本文整理汇总了C++中ADC_DMACmd函数的典型用法代码示例。如果您正苦于以下问题:C++ ADC_DMACmd函数的具体用法?C++ ADC_DMACmd怎么用?C++ ADC_DMACmd使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ADC_DMACmd函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: AdcStartPre34
static void AdcStartPre34()
{
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(DMA2_Channel5);
DMA_DeInit(DMA2_Channel2);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC3->DR;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&g_resultBuffer[0];
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = g_ResultBufferSize;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA2_Channel5, &DMA_InitStructure);
DMA_Cmd(DMA2_Channel5, ENABLE);
DMA_ITConfig(DMA2_Channel5, DMA_IT_TC, ENABLE);
DMA_SetCurrDataCounter(DMA2_Channel5, 0);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC4->DR;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&g_resultBuffer[g_ResultBufferSize/2];
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = g_ResultBufferSize;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA2_Channel2, &DMA_InitStructure);
DMA_Cmd(DMA2_Channel2, ENABLE);
DMA_ITConfig(DMA2_Channel2, DMA_IT_TC, ENABLE);
DMA_SetCurrDataCounter(DMA2_Channel2, 0);
uint8_t sample_ticks = DacSampleTicks()<72?ADC_SampleTime_7Cycles5:ADC_SampleTime_19Cycles5;
//uint8_t sample_ticks = ADC_SampleTime_601Cycles5;
ADC_RegularChannelConfig(ADC3, ADC_Channel_1/*PB1*/, 1, sample_ticks);
ADC_RegularChannelConfig(ADC4, ADC_Channel_1/*PE14*/, 1, sample_ticks);
ADC_Cmd(ADC3, ENABLE);
ADC_Cmd(ADC4, ENABLE);
ADC_DMACmd(ADC3, ENABLE);
ADC_DMACmd(ADC4, ENABLE);
g_adcStatus = 1;
g_adc_cycles = 0;
}
开发者ID:balmerdx,项目名称:rlc-meter-balmer,代码行数:52,代码来源:adc.c
示例2: gather_adc_values
void gather_adc_values(void)
{
static uint8_t last_step = 0;
// TIM1 CC4 occuer
adc_buffer_for_mosfet_test[126] = DMA1_Channel1->CNDTR;
TP3_SET;
ADC_StopOfConversion(ADC1);
ADC_DMACmd(ADC1, DISABLE);
// reset the DMA
DMA_Cmd(DMA1_Channel1, DISABLE);
//DMA_DeInit(DMA1_Channel1);
DMA_ClearFlag(DMA1_FLAG_GL1);
// DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_Address;
// DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)adc_buffer_for_mosfet_test;
// DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
// DMA_InitStructure.DMA_BufferSize = 25;
// DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
// DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
// DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
// DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
// DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
// DMA_InitStructure.DMA_Priority = DMA_Priority_High;
// DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
//DMA_Init(DMA1_Channel1, &DMA_InitStructure);
DMA1_Channel1->CNDTR = 50;
adc_buffer_for_mosfet_test[127] = ADC1->DR;
DMA_Cmd(DMA1_Channel1, ENABLE);
ADC_DMACmd(ADC1, ENABLE);
ADC_StartOfConversion(ADC1);
adc_buffer_for_mosfet_test[127] = DMA1_Channel1->CNDTR;
if(last_step == mosfet_test_step){
if(mosfet_test_step == 1){
adc_buffer_for_mosfet_test[50] = adc_buffer_for_mosfet_test[0];
adc_buffer_for_mosfet_test[51] = adc_buffer_for_mosfet_test[1];
adc_buffer_for_mosfet_test[52] = adc_buffer_for_mosfet_test[2];
}else{
adc_buffer_for_mosfet_test[100] = adc_buffer_for_mosfet_test[0];
adc_buffer_for_mosfet_test[101] = adc_buffer_for_mosfet_test[1];
adc_buffer_for_mosfet_test[102] = adc_buffer_for_mosfet_test[2];
}
}
last_step = mosfet_test_step;
TP3_RESET;
}
开发者ID:Paolo-Maffei,项目名称:lxyppc-tetrix,代码行数:49,代码来源:bldc.c
示例3: set_task_adc
void set_task_adc(struct signal* psig, struct head_data_adc* phadc) {
if(pb_adc == NULL || !check_buffer_is_free(pb_adc))
pb_adc = alloc_buf(SIZE_BIG_BUFFER);
init_header_buffer_adc(pb_adc, sizeof(struct head_data_adc) + SIZE_BIG_BUFFER * sizeof(uint16_t), phadc);
DMA_SetCurrDataCounter(DMA2_Stream0, NUMBER_SAMPL_ADC);
DMA2_Stream0->M0AR = (uint32_t)((char*) pb_adc->pbuf + sizeof(struct head) + sizeof(struct head_data_adc));
TIM3->ARR = psig->arr_adc;
TIM_PrescalerConfig(TIM3, psig->psc_adc, TIM_PSCReloadMode_Update);
/*Refill register TIM1CCR1*/
TIM3->EGR |= 0x0001;
DMA_Cmd(DMA2_Stream0, ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_DMACmd(ADC1, DISABLE);
ADC_DMACmd(ADC1, ENABLE);
}
开发者ID:korrav,项目名称:emmiter_slave,代码行数:15,代码来源:ADC_control.c
示例4: config_driver_adc_1
static void config_driver_adc_1(void)
{
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_CommonInitTypeDef ADC_CommonInitStructure;
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_480Cycles);
ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);
ADC_DMACmd(ADC1, ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_SoftwareStartConv(ADC1);
}
开发者ID:glocklueng,项目名称:ESP8266-STM32F4Discovery,代码行数:28,代码来源:adc_1.c
示例5: main
int main(void)
{
//Initial Set-up of: SPI, USB, TIM2, and ADC
SysInit();
LMP_SPI_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
InitTIM2();
startUSBOTG();
ADC3_CH2_DMA_Config();
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_ITConfig(TIM4, TIM_IT_CC1, ENABLE);
ADC_DMACmd(ADC3, ENABLE);
//Main Loop: Transmit ADC result to PC
while (1)
{
//Convert array elements in 1000 element array to 8 bit words and store in
//2000 element array
for (int i=0; i<2000; i++)
{
if (i%2 == 0) adc3ch2_16bit[i] = (adc3ch2[i/2] >> 8);
else adc3ch2_16bit[i] = (adc3ch2[i/2]);
}
//Output 2000 element array of ADC results over USB VCP Data line
for (int i=0; i < 2000; i++) VCP_DataTx (&adc3ch2_16bit[i],0);
}
开发者ID:philipleaning,项目名称:Gesture-Recognition,代码行数:26,代码来源:main+(05-07-12).c
示例6: IRsensor1_Init
void IRsensor1_Init(IRsensor * IRsensor){
if(IRsensor!=NULL)
{ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
IRsensor->state1=1;
Init_ADC_Common();
Init_DMA();
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOC, &GPIO_InitStructure);
ADC_Init(ADC1, &ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
ADC_DMACmd(ADC1, ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_SoftwareStartConv(ADC1);
}
}
开发者ID:semikos,项目名称:LineFollowerStm32F4,代码行数:27,代码来源:IRsensor.c
示例7: USART1_IRQHandler
/*******************************************************************************
* Function Name : USART1_IRQHandler
* Description : This function handles USART1 global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART1_IRQHandler(void)
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Rx_Buffer[data]=USART_ReceiveData(USART1);
Usart_Putnum(Rx_Buffer[data]);
if(Rx_Buffer[data]==1){
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/* Enable ADC1 reset calibaration register */
ADC_ResetCalibration(ADC1);
/* Check the end of ADC1 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC1));
/* Start ADC1 calibaration */
ADC_StartCalibration(ADC1);
/* Check the end of ADC1 calibration */
while(ADC_GetCalibrationStatus(ADC1));
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}
else if(Rx_Buffer[data]==2)
ADC_Cmd(ADC1, DISABLE);
else if(Rx_Buffer[data]==3)
Usart_Putnum(TIM_GetCounter(TIM4));
}
//{
//Rx_Buffer[data]=data;
//data++;
//USART_ClearITPendingBit(USART1, USART_IT_RXNE);
/*Rx_Buffer[data]=USART_ReceiveData(USART1);
Usart_Putnum(Rx_Buffer[data]);
data++;*/
/*
if(Rx_Buffer[data]==1)
Usart_Putnum(10);
else if(Rx_Buffer[data]==2)
Usart_Putnum(20);
*/
}
开发者ID:JinhoAndyPark,项目名称:ARM,代码行数:67,代码来源:stm32f10x_it.c
示例8: sensor_init
void sensor_init(void)
{
// 0. Run clocks
RCC_AHBPeriphClockCmd(SENSORS_DMA_RCC, ENABLE);
RCC_APB2PeriphClockCmd(SENSORS_ADC_RCC, ENABLE);
// 1. Init ADC
ADC_Init(SENSORS_ADC, &_adc);
// 2. Init DMA for writing measures directly to array
DMA_Init(SENSORS_DMA, &_dma); // SENSORS_ADC is on DMA1 channel 1
// 3. Setup SENSORS_ADC to send DMA requests
ADC_DMACmd(SENSORS_ADC, ENABLE);
// 4. Enable DMA
DMA_Cmd(SENSORS_DMA, ENABLE);
// 5. Enable ADC
ADC_Cmd(SENSORS_ADC, ENABLE);
// 6. Calibrate ADC
ADC_ResetCalibration(SENSORS_ADC);
while(ADC_GetResetCalibrationStatus(SENSORS_ADC));;;
ADC_StartCalibration(SENSORS_ADC);
while(ADC_GetCalibrationStatus(SENSORS_ADC));;;
}
开发者ID:webconn,项目名称:CereMotor,代码行数:28,代码来源:sensors.c
示例9: __ADC_Init
static void __ADC_Init(void)
{
ADC_InitTypeDef ADC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = (USE_ADC_PB0 + USE_ADC_PB1 + USE_ADC_PA4 + USE_ADC_PC0); //Change
ADC_Init(ADC1, &ADC_InitStructure);
#if (USE_ADC_PB0 == 1)
ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_55Cycles5);
#endif
#if (USE_ADC_PB1 == 1)
ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 2, ADC_SampleTime_55Cycles5);
#endif
#if (USE_ADC_PA4 == 1)
ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 3, ADC_SampleTime_55Cycles5);
#endif
#if (USE_ADC_PC0 == 1)
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 4, ADC_SampleTime_55Cycles5);
#endif
ADC_DMACmd(ADC1, ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}
开发者ID:NguyenTrongThinh,项目名称:HapticDevice,代码行数:32,代码来源:AMES_ACS712.c
示例10: Adc1_Multi_Init
//初始化ADC1
//这里采用多通道连续采样,并用DMA1的通道传送
//我们默认将开启通道4~7
//相应管脚PA4~7
void Adc1_Multi_Init(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE ); //使能ADC1通道时钟
RCC_ADCCLKConfig(RCC_PCLK2_Div6); //设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M
//PA1 作为模拟通道输入引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DeInit(ADC1); //复位ADC1,将外设 ADC1 的全部寄存器重设为缺省值
ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; //ADC工作模式:ADC1同步规则组模式
ADC_InitStructure.ADC_ScanConvMode =ENABLE; //模数转换工作在扫描模式
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //模数转换工作在连续转换模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 4; //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1, &ADC_InitStructure); //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器
ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_239Cycles5 );
ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 2, ADC_SampleTime_239Cycles5 );
ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 3, ADC_SampleTime_239Cycles5 );
ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 4, ADC_SampleTime_239Cycles5 );
// 开启ADC的DMA支持(要实现DMA功能,还需独立配置DMA通道等参数)
ADC_DMACmd(ADC1, ENABLE);
}
开发者ID:devinzhang91,项目名称:Health-Box,代码行数:37,代码来源:adc1.c
示例11: Accel_ADC_Configuration
/**
* @brief Initializes the ADC used by the Accelerometer.
* @retval None
*/
void Accel_ADC_Configuration() {
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 3;
ADC_Init(ADC1, &ADC_InitStructure);
/* ADC1 regular channel 10, 11, 12 configuration */
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/* Enable ADC1 reset calibaration register */
ADC_ResetCalibration(ADC1);
/* Check the end of ADC1 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC1));
/* Start ADC1 calibaration */
ADC_StartCalibration(ADC1);
/* Check the end of ADC1 calibration */
while(ADC_GetCalibrationStatus(ADC1));
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}
开发者ID:zwasson,项目名称:project-blox,代码行数:39,代码来源:blox_accel.c
示例12: main
/**
* @brief Main program.
* @param None
* @retval None
*/
void main(void)
{
/* CLK configuration -------------------------------------------*/
CLK_Config();
/* ADC configuration -------------------------------------------*/
ADC_Config();
/* DMA configuration -------------------------------------------*/
DMA_Config();
/* TIM1 configuration -------------------------------------------*/
TIM1_Config();
/* Enable ADC1 DMA requests*/
ADC_DMACmd(ADC1, ENABLE);
/* Enable TIM1 DMA requests*/
TIM1_DMACmd(TIM1_DMASource_Update, ENABLE);
/* Start ADC1 Conversion using Software trigger*/
ADC_SoftwareStartConv(ADC1);
while (1)
{}
}
开发者ID:avr-master,项目名称:Healty_Beck,代码行数:31,代码来源:main.c
示例13: ADC1_Config
void ADC1_Config(void)
{
ADC_InitTypeDef ADC_InitStructure;
ADC_DeInit(ADC1); //将外设 ADC1 的全部寄存器重设为缺省值
/* ADC1 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC1独立工作模式
ADC_InitStructure.ADC_ScanConvMode = ENABLE; //单通道
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //连续转换
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 2; //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1, &ADC_InitStructure); //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道3,规则采样顺序值为1,采样时间为239.5周期
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_239Cycles5);
ADC_DMACmd(ADC1, ENABLE);//使能ADC1模块DMA
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE); //使能指定的ADC1
/* Enable ADC1 reset calibaration register */
ADC_ResetCalibration(ADC1); //重置指定的ADC1的校准寄存器
/* Check the end of ADC1 reset calibration register */
while(ADC_GetResetCalibrationStatus(ADC1)); //获取ADC1重置校准寄存器的状态,设置状态则等待
/* Start ADC1 calibaration */
ADC_StartCalibration(ADC1); //开始指定ADC1的校准状态
/* Check the end of ADC1 calibration */
while(ADC_GetCalibrationStatus(ADC1)); //获取指定ADC1的校准程序,设置状态则等待
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能
}
开发者ID:andyzhao365,项目名称:GuodianBeijingGuangyuACIntoDCDetectionDevice,代码行数:30,代码来源:adc.c
示例14: ADC_Configuration
/**
* @brief Configures the ADC.
* @param None
* @retval None
*/
void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure; // Structure to initialize the ADC
// Configure ADC1 on channel 1
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE; // One channel only
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // Conversion on PWM rising edge only
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; // Timer 1 CC1
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
// Initialise and enable ADC1
ADC_DeInit( ADC1 ); //Set ADC registers to default values
ADC_Init( ADC1, &ADC_InitStructure );
ADC_RegularChannelConfig( ADC1, ADC_Channel_10, 1, ADC_SampleTime_71Cycles5);
// Start transferts
ADC_ExternalTrigConvCmd( ADC1, ENABLE ); // Enable ADC1 external trigger
ADC_DMACmd( ADC1, ENABLE ); //Enable ADC1 DMA
ADC_Cmd( ADC1, ENABLE ); //Enable ADC1
// Enable JEOC interrupt
//ADC_ITConfig(ADC1, ADC_IT_JEOC, ENABLE);
// Calibrate ADC1
ADC_ResetCalibration( ADC1 );
while ( ADC_GetResetCalibrationStatus(ADC1) ) {} //Check the end of ADC1 reset calibration register
ADC_StartCalibration( ADC1 );
while ( ADC_GetCalibrationStatus(ADC1) ) {} //Check the end of ADC1 calibration
}
开发者ID:yohan-m,项目名称:STM32-embedded-reception,代码行数:36,代码来源:sampleAcquisition.c
示例15: ADC_Configuration
static void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure;
/* Check that HSI oscillator is ready */
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
/* ADC1 configuration */
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = ADC_CHANNEL_NUM;
ADC_Init(ADC1, &ADC_InitStructure);
// ADC_TempSensorVrefintCmd(ENABLE);
/* ADC1 regular channel18 configuration */
ADC_RegularChannelConfig(ADC1, ADC_Channel_18, 1, ADC_SampleTime_4Cycles);
//ADC_RegularChannelConfig(ADC1, ADC_Channel_Vrefint, 2, ADC_SampleTime_4Cycles);
/* Enable the request after last transfer for DMA Circular mode */
//ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* Wait until the ADC1 is ready */
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADONS) == RESET)
{
}
}
开发者ID:nongxiaoming,项目名称:STM32L151_RTX,代码行数:34,代码来源:adc.c
示例16: ADC_Configuration
void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//12M ADC时钟 在72M的主频下
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//ADC1 端口初始化
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
GPIO_Init(GPIOC,&GPIO_InitStructure);
ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC初始化
ADC_InitStructure.ADC_ScanConvMode= ENABLE;//多通道模式
ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//单次模式 ;
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//软件触发模式
ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐
ADC_InitStructure.ADC_NbrOfChannel=1;//通道数目
ADC_Init(ADC1,&ADC_InitStructure);
ADC_RegularChannelConfig(ADC1,ADC_Channel_11,1,ADC_SampleTime_239Cycles5);
//ADC_RegularChannelConfig(ADC1,ADC_Channel_12,2,ADC_SampleTime_1Cycles5);
//ADC_RegularChannelConfig(ADC1,ADC_Channel_13,3,ADC_SampleTime_1Cycles5);
ADC_DMACmd(ADC1, ENABLE);//dma开启
ADC_Cmd(ADC1,ENABLE);//adc使能
ADC_ResetCalibration(ADC1);//复位 校准
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC 软件启动
}
开发者ID:catoffly,项目名称:TI_KONG,代码行数:35,代码来源:adc.c
示例17: RCC_AHB1PeriphClockCmd
void Battery::initialize(){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef ADC_CommonInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC|RCC_APB2Periph_ADC1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1ENR_GPIOCEN,ENABLE);
ADC_DeInit();
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_112Cycles);
ADC_Cmd(ADC1, ENABLE);
ADC_DMACmd(ADC1,DISABLE);
}
开发者ID:taniho0707,项目名称:nucleo_mouse,代码行数:35,代码来源:Battery.cpp
示例18: ADC_DMA_Init
void ADC_DMA_Init(__IO uint16_t *ADCConvertedValues, uint32_t size)
{
DMA_InitTypeDef DMA_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADCConvertedValues;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = size;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
/* Enable DMA1 channel1 */
DMA_Cmd(DMA1_Channel1, ENABLE);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
}
开发者ID:593141477,项目名称:AirMonitor,代码行数:26,代码来源:adc.c
示例19: Sensor_Configuration
void Sensor_Configuration(void) {
ADC_CommonInitTypeDef ADC_CommonInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
SensorGPIO_Configuration();
DMA2_Configuration();
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_RegSimult;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC1_Config();
ADC2_Config();
ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_Cmd(ADC2, ENABLE);
ADC_DMACmd(ADC1, ENABLE);
ADC_SoftwareStartConv(ADC1);
}
开发者ID:vpcola,项目名称:stm32f4,代码行数:32,代码来源:sensor.c
示例20: ADC1_Mode_Config
/* 函数名:ADC1_Mode_Config*/
static void ADC1_Mode_Config(void)
{
DMA_InitTypeDef DMA_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
/* DMA channel1 configuration */
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; //ADC地址
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;//内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 4;//开辟4个储存空间
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;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //循环传输
DMA_InitStructure.DMA_Priority = DMA_Priority_High;//高优先级
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel1, &DMA_InitStructure);
/* Enable DMA channel1 */
DMA_Cmd(DMA1_Channel1, ENABLE);
/* ADC1 configuration */
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //独立ADC模式
ADC_InitStructure.ADC_ScanConvMode = ENABLE ; //禁止扫描模式,扫描模式用于多通道采集
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //开启连续转换模式,即不停地进行ADC转换
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //不使用外部触发转换
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //采集数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 4; //要转换的通道数目1
ADC_Init(ADC1, &ADC_InitStructure);
/*配置ADC时钟,为PCLK2的8分频,即9Hz*/
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
/*ADCx,通道编号,扫描顺序,采样周期 */
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5);//电池电压
ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 2, ADC_SampleTime_1Cycles5);//转把
ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 3, ADC_SampleTime_1Cycles5);//左电机电流
ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 4, ADC_SampleTime_1Cycles5);//右电机电流
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/*复位校准寄存器 */
ADC_ResetCalibration(ADC1);
/*等待校准寄存器复位完成 */
while(ADC_GetResetCalibrationStatus(ADC1));
/* ADC校准 */
ADC_StartCalibration(ADC1);
/* 等待校准完成*/
while(ADC_GetCalibrationStatus(ADC1));
/* 由于没有采用外部触发,所以使用软件触发ADC转换 */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}
开发者ID:FrankEos,项目名称:BlanceMoto,代码行数:61,代码来源:assignment2.c
注:本文中的ADC_DMACmd函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论