adc_regular_channel_config(1, ADC_CHANNEL_2, ADC_SAMPLETIME_7POINT5);//规则通道组设置 adc_regular_channel_config(2, ADC_CHANNEL_3, ADC_SAMPLETIME_7POINT5);//规则通道组设置 adc_regular_channel_config(3, ADC_CHANNEL_4, ADC_SAMPLETIME_7POINT5);//规则通道组设置 adc_regular_channel_config(...
void adc_dma_config(void);void adc_timer_config(void);void adc_config(void);/*!\brief RCU...
adc_special_function_config(ADC_CONTINUOUS_MODE, ENABLE); adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE); adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_NONE); adc_data_alignment_config(ADC_DATAALIGN_RIGHT); adc_channel_length_config(ADC_REGULAR_CHANNEL, chan...
如果先配置并使能ADC,当触发信号来临,ADC开始转换,若ADC转换到通道1的时候,DMA才配置并使能,那么DMA是不会搬运通道0的数据的,而是当通道1的转换结束后,DMA才开始搬运第一个数据到buffer[0],所以buffer中的数据顺序就变成了数据1->数据2->数据0。 我们再来看下先配置DMA再配置ADC的时序: ADC在转换第一个通道时...
static void ADC_MODE_CONFIG_(void) { DMA_InitTypeDef DMA_InitInstructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE); DMA_DeInit(DMA1_Channel1);//复位 //DMA_InitInstructure.DMA_PeripheralBaseAddr =(u32)(&(ADC1->DR));//配置外设的基址,取adc 数据寄存器的地址 DMA_InitInstructure.DM...
_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_NONE);//软件触发adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE);//触发使能adc_dma_mode_enable();//使能DMA接收adc_enable();//使能ADC模块delay_1ms(0x03);//ADC在使能之后需要进行短暂的延时,时间周期约为2毫秒左右,以保证ADC能正常...
前言由于芯片外部大坏境,结合自身内部原因,这次开始改用国产32位单片机。近些年来,国产32位单片机确实做的还可以(靠谱的多了起来),且有着如ST这种在MCU32位领域里的行业标杆,上手一个新的单片机也变得容易的多。废话不多说,进入今天的正题。ADCADC,模数转换器,会将
ADC如何DMA? 基本说明 先把DMA的概念代入,ADC属于外设,我们一般使用ADC的DMA是把ADC的采样数据传送到内存中供程序使用,那么它的处理数据链是:ADC通道数据地址-DMA缓存数据-滤波-业务层数据,DMA的确是省了很多软件的事。 架构和流程 基本架构: 流程和数据结构: ...
DMA0_Channel6_IRQn =17,/*!< DMA0 channel6 interrupt */ ADC0_1_IRQn =18,/*!< ADC0 and ADC1 interrupt */ #ifdef GD32F10X_MD USBD_HP_CAN0_TX_IRQn =19,/*!< CAN0 TX interrupts */ USBD_LP_CAN0_RX0_IRQn =20,/*!< CAN0 RX0 interrupts */ ...
dma_init(DMA1,DMA_CH4,&dma_init_struct);/*使能循环模式*/dma_circulation_enable(DMA1,DMA_CH4);/*enable DMA channel4*/dma_channel_enable(DMA1,DMA_CH4);/*initialize DMA channel*/dma_deinit(DMA1,DMA_CH3);/*DMA channel3 initialize*/dma_init_struct.periph_addr=(uint32_t)TIMER4_CH1CV;...