// 配置DMA参数
DMA_InitTypeDef DMA_InitStruct = {0};
DMA_InitStruct.DMA_Channel = DMA_CHANNEL_4; // 假设使用DMA_CHANNEL_4
DMA_InitStruct.DMA_PeripheralBaseAddr = (uint32_t) &USART1->DR; // 串口外设基址
DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t) myTxBuffer; // 内存基址
DMA_InitStruct.DMA_DIR = DMA_DIR_PERIPH_TO_MEMORY; // 从外设到内存
DMA_InitStruct.DMA_BufferSize = myTxBufferSize; // 传输数据大小
DMA_InitStruct.DMA_PeripheralInc = DMA_PERIPHERAL_INCREMENT_DISABLE; // 外设地址不递增
DMA_InitStruct.DMA_MemoryInc = DMA_MEMORY_INCREMENT_ENABLE; // 内存地址递增
DMA_InitStruct.DMA_PeripheralDataSize = DMA_PERIPHERAL_DATASIZE_8BIT; // 外设数据宽度
DMA_InitStruct.DMA_MemoryDataSize = DMA_MEMORY_DATASIZE_8BIT; // 内存数据宽度
DMA_InitStruct.DMA_Mode = DMA_MODE_CIRCULAR; // 循环模式,可选
DMA_InitStruct.DMA_Priority = DMA_PRIORITY_HIGH; // 优先级设置
DMA_Init(DMA1_Stream5, &DMA_InitStruct);
// 使能DMA
DMA_Cmd(DMA1_Stream5, ENABLE); |