在用 AN4666 中所述的 DMA 传输。使用 STM32CubeIDE 和 STM32F4 Discovery。从 GPIO 端口的输入寄存器通过DMA中获取数据 目前,我将定时器 2、通道 1 配置为输出比较、并启用 DMA1 流 5、通道 3 作为内存外设。 所有初始化均由 STM32CubeIDE 和 HAL 驱动程序完成。 启用定时器,如下所示: uint8_t tmpbuf[10] = {9,9,9,9,9,9,9,9,9,9}; HAL_DMA_Start(&hdma_tim2_ch1, (uint32_t)&tmpbuf, (uint32_t)&DMABuf, 10); __HAL_TIM_ENABLE_DMA(&htim2, TIM_DMA_CC1); TIM_CCxChannelCmd(htim2.Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE); __HAL_TIM_ENABLE(&htim2);当运行代码时,可以看到计时器开始工作,输出引脚上有方波,但当查看 DMABuf 时,仍保持为初始值。
|