发布时间 : 星期一 文章基于STM32的步进电机控制系统 - 图文更新完毕开始阅读
| nCount: 延时时间 | | nCount: specifies the delay time length. | \\*----------------------------------------------------------*/ void Delay(vu32 nCount) { for(; nCount != 0; nCount--); } /**
* @brief Main program * @param None * @retval None */
/*----------------------------------------------------------*\\
| ADC Initialisation | \\*----------------------------------------------------------*/ void adc_Init (void) {
// GPIOA->CRL &= ~0x0000000F; /* set PIN1 analog input (see stm32_Init.c) */
RCC->AHBENR |= (1<<0); /* enable peripheral clock for DMA */
DMA1_Channel1->CMAR = (unsigned long)&analog; /* set chn1 memory address */
DMA1_Channel1->CPAR = (unsigned long)&(ADC1->DR); /* set chn1 peripheral address */ */
// DMA1_Channel1->CCR = 0x00002520; /* configure DMA channel 1 */
DMA1_Channel1->CCR = 0x000025A0; /* configure DMA channel 1 */
44
DMA1_Channel1->CNDTR = 3; /* transmit 3 words
/* circular mode, memory increment mode */
/* memory & peripheral size 16bit */
/* channel priotity high */ */
RCC->APB2ENR |= (1<<9); /* enable periperal clock for ADC1 */
ADC1->SQR1 = 0x00200000; /* three conversions */
ADC1->SQR3 = (3<<10) | (2<<5) | (1<<0); /* set order to chn1 - chn2 - chn3 */
ADC1->SMPR2 = (5<< 9) | (5<<6) | (5<<3); /* set sample time (55,5 cycles) */
ADC1->CR1 = 0x00000100; /* use independant mode, SCAN mode */
ADC1->CR2 = 0x000E0103; /* data align right, cont. conversion */ */
/* enable ADC, DMA mode */
ADC1->CR2 |= 0x00500000; /* start SW conversion */ }
45
DMA1_Channel1->CCR |= (1 << 0); /* enable DMA Channe1
/* EXTSEL = SWSTART