【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输
生活随笔
收集整理的這篇文章主要介紹了
【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
實驗原理:
DAM(直接存儲器訪問)傳輸不需要占用CPU,可以在存儲器至存儲器實現(xiàn)高速的數(shù)據(jù)
傳輸。本實驗采用DAM2控制器的數(shù)據(jù)流0,選用通道0進(jìn)行數(shù)據(jù)傳輸。通過LED的顏色來
判斷傳輸是否成功。
實驗現(xiàn)象:
實驗成功藍(lán)色LED燈閃爍,實驗失敗紅色LED燈閃爍。
核心代碼:
int main(void) {/* USER CODE BEGIN 1 */HAL_StatusTypeDef har_status;/* USER CODE END 1 *//* MCU Configuration----------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* Configure the system clock */SystemClock_Config();/* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();SystemClock_Config();/* USER CODE BEGIN 2 *///2aê?DMA£?2aê?3é1|à?μ?éá??£?2aê?ê§°ü£?oìμ?éá??har_status=HAL_DMA_Start(&hdma_memtomem_dma1_channel1,(uint32_t)&SRC_Const_Buffer,(uint32_t)&DST_Buffer,32);if(har_status==HAL_OK){TransferStatus = Buffercmp(SRC_Const_Buffer, DST_Buffer, 32); // ?ì2é·¢?íoí?óê?μ?êy?Yê?·??àμè if(TransferStatus == SUCCEED) // è?1??óê?oí·¢?íμ?êy?Y??ê??àí?μ?£??òí¨1y { while(1){LED_BLUE_TOGGLE;HAL_Delay(1000); } }else // è?1??óê?oí·¢?íμ?êy?Y2?í?£??ò′?ê?3?′í {while(1){LED_RED_TOGGLE;HAL_Delay(1000); } }}/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */}源代碼下載鏈接:
鏈接:http://pan.baidu.com/s/1c6h7rg 密碼:hfza
總結(jié)
以上是生活随笔為你收集整理的【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java内存泄漏问题
- 下一篇: 迪普科技高端防火墙规模应用于海关总署 提