基于STM32的步进电机控制系统 - 图文

发布时间 : 星期一 文章基于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

联系合同范文客服:xxxxx#qq.com(#替换为@)