| 
  |||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe  | 
  
請教使用STR73x的DMA來接收ADC數(shù)據(jù)的問題 | 
  
| 作者:xun62291 欄目:MCU技術 | 
現(xiàn)在我所使用下面的代碼,連DMA3的中斷都就不去,好像根本沒做DMA操作, 請各位強人幫忙。 u16 DST_Buffer; //全局變量 以下是我的main()的代碼: //-----------------------------------GPIO3 -------------------------- /* GPIO3 Clock Enable */ CFG_PeripheralClockConfig(CFG_CLK_GPIO3, ENABLE); /* GPIO3 Configuration */ GPIOx_InitStructure.GPIO_Mode = GPIO_Mode_HI_AIN_TRI; GPIOx_InitStructure.GPIO_Pins = GPIO_PIN_6 | GPIO_PIN_7 ; GPIO_Init (GPIO3, &GPIOx_InitStructure); //-----------------------------------EIC----------------------------- /* EIC Clock Enable */ CFG_PeripheralClockConfig(CFG_CLK_EIC, ENABLE); CFG_PeripheralClockConfig(CFG_CLK_DMA3, ENABLE); //---------------------------------ADC------------------------------- /* ADC Clock Enable */ CFG_PeripheralClockConfig(CFG_CLK_ADC, ENABLE); /* ADC Configuration */ ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_Calibration = ADC_Calibration_ON; ADC_InitStructure.ADC_CalibAverage = ADC_CalibAverage_Enable; ADC_InitStructure.ADC_AutoClockOff = ADC_AutoClockOff_Disable ; ADC_InitStructure.ADC_ConversionMode = ADC_ConversionMode_Scan ; ADC_InitStructure.ADC_SamplingPrescaler = 0x7; ADC_InitStructure.ADC_ConversionPrescaler = 0x0; ADC_InitStructure.ADC_FirstChannel = ADC_CHANNEL6; ADC_InitStructure.ADC_ChannelNumber = 1; ADC_Init (&ADC_InitStructure); ADC_DMAConfig(ADC_DMA_CHANNEL6, ENABLE); ADC_Cmd(ENABLE); /* Start ADC conversion */ ADC_ConversionCmd (ADC_ConversionStart); ADC_DMACmd (ENABLE); DMA_DeInit(DMA3,DMA_Stream0); DMA_InitStructure.DMA_Stream = DMA_Stream0; DMA_InitStructure.DMA_BufferSize = 1; DMA_InitStructure.DMA_SRC = DMA_SRC_NOT_INCR/*DMA_SRC_INCR*/; DMA_InitStructure.DMA_DST = DMA_SRC_NOT_INCR/*DMA_DST_INCR*/; DMA_InitStructure.DMA_SRCSize = DMA_SRCSize_HalfWord; DMA_InitStructure.DMA_SRCBurst = DMA_SRCBurst_1Word; DMA_InitStructure.DMA_DSTSize = DMA_DSTSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_InitStructure.DMA_Dir = DMA_Dir_PeriphSRC; DMA_InitStructure.DMA_SRCBaseAddr =(u32) (ADC_BASE+24+0x050); DMA_InitStructure.DMA_DSTBaseAddr = (u32) (&DST_Buffer); DMA_Init(DMA3, &DMA_InitStructure); DMA_ITConfig(DMA3, DMA_IT_SI0, ENABLE); /* set the DMA priority to highest on AHB bus */ DMA_AHBArbitrationConfig(DMA_Priority_High); /* enable and configure the priority of the DMA3 Channel*/ EIC_IRQChannelConfig(DMA3_IRQChannel, ENABLE); EIC_IRQChannelPriorityConfig(DMA3_IRQChannel, 1); /* enable the Interrupt controller to manage IRQ channel*/ EIC_IRQCmd(ENABLE); /* enable DMA3 stream0 */ DMA_Cmd(DMA3, DMA_Stream0, ENABLE); while(1) { }  | 
  
| 2樓: | >>參與討論 | 
| 作者: xun62291 于 2006/12/17 19:51:00 發(fā)布:
         怎么沒有大哥來回? 跪求解決!!  | 
  |
  | 
    
 
  | 
  
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號  |