1.系统时钟配置 2.TIM配置 3.DMA配置 4、自己增加的代码 uint32_t ccr_value[] = {1000, 2000, 3000}; HAL_TIM_OC_Start_DMA(&htim1, TIM_CHANNEL_1, ccr_value, 3); 这样是可以更新占空比信息的。但是调用函数: HAL_TIM_Base_Start_DMA(&htim1, ccr_value, 3);会执行失败。 会执行到
首先,建议你这里DMA传输的内存端和外设端宽度都选用32位; 另外,在调用库函数时注意那些状态机变量的适时手动调整,因为我们在调用库时往往 并没有完全按照库代码的思路走。 我这里具体指的就是相应外设的ready状态、busy状态这些。请适当地阅读下库代码。 再就是基本的配置问题,比方对于DMA到底哪里到哪里,别弄反了。
楼主配置的定时器通道1是产生PWM1方式,驱动函数用HAL_TIM_OC_Start_DMA,是不是应该用HAL_TIM_PWM_Start_DMA 呢