__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]);
}
|