|
发表于 2022-5-24 10:55:24
|
显示全部楼层
这是DMA初始化:
//初始化DMA
void DAC_WaveConfig(void)
{
DMA_HandleTypeDef hdma_dac1;/*DMA0*/
DMA_HandleTypeDef hdma_dac2;/*DMA1*/
__HAL_RCC_DMA2_CLK_ENABLE();
/*##-5- 配置通道1的DMA ##########################################*/
hdma_dac1.Instance = DMA2_Stream2; /*使用的DAM1 Stream2*/
hdma_dac1.Init.Request = DMA_REQUEST_DAC1; /*DAC触发DMA传输*/
hdma_dac1.Init.Direction = DMA_MEMORY_TO_PERIPH;/*存储器到外设*/
hdma_dac1.Init.PeriphInc = DMA_PINC_DISABLE; /*外设地址禁止自增*/
hdma_dac1.Init.MemInc = DMA_MINC_ENABLE; /*存储器地址自增*/
hdma_dac1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; /*外输操作数据宽度,半字*/
hdma_dac1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; /*存储器操作数据宽度,半字*/
hdma_dac1.Init.Mode = DMA_CIRCULAR; /*循环模式*/
hdma_dac1.Init.Priority = DMA_PRIORITY_HIGH; /*优先级高*/
HAL_DMA_Init(&hdma_dac1);
/* 关联DMA句柄到DAC句柄下 */
__HAL_LINKDMA(&DacHandle, DMA_Handle1, hdma_dac1);
/* 启动DAC DMA */
HAL_DAC_Start_DMA(&DacHandle, DAC_CHANNEL_1, (u32 *)g_usWaveBuffn, DACSAMPLEUMBER, DAC_ALIGN_12B_R);
} |
|