__HAL_DMA_GET_FLA
# define __HAL_DMA_GET_FLAG ( __HANDLE__ , __FLAG__ )( DMA1- > ISR & ( __FLAG__ ))
参数一: HANDLE , DMA 通道句柄
参数二: FLAG ,数据传输标志。 DMA_FLAG_TCx 表示数据传输完成标志
返回值: FLAG 的值( SET/RESET )
- /*1. 开启数据传输
- 2. 等待数据传输完成
- 3. 打印数组内容*/
- #define BUF_SIZE 16
- //源数组
- uint32_t srcBuf[BUF_SIZE]={0x00000000,0x11111111,0x22222222,0x33333333,0x44444444,0x55555555,0x66666666,0x77777777,0x88888888,0x99999999,0xAAAAAAAA,0xBBBBBBBB,0xCCCCCCCC,0xDDDDDDDD,0xEEEEEEEE,0xFFFFFFFF};
- //目标数组
- uint32_t desBuf[BUF_SIZE];
-
- //重定向printf
- int fputc(int ch , FILE* f)
- {
- unsigned char temp[1] = {ch};
- HAL_UART_Transmit(&huart1,(const char*)temp,strlen(temp),100);
- return ch;
- }
-
- //main函数里
-
- int i = 0;
- HAL_DMA_Start(&hdma_memtomem_dma1_channel1,(uint32_t)desBuf,sizeof(uint32_t)*BUF_SIZE);
- //等待传输完成,传输完成,内置flag会被拉高
- while(__HAL_DMA_GET_FLAG(&hdma_memtomem_dma1_channel1,DMA_FLAG_TC1)) == RESET);
- for(i=0;i<BUF_SIZE;i++)
- {
- printf("buf[%d] = %x",i,desBuf[i]);
- }
|