
我用STM32G473RC的timer 8做如下的功能 1. Timer 8 upcounting模式,产生一个周期是20us的中断。 2. Timer 8,CH1, CH2, CH3, CH4配置成输出比较模式,生成4个周期是20us的PWM信号。 3. 在timer的update 中断中,使能4个通道DMA传输,就是说在CC1,CC2, CC3, CC4 event产生时,触发DMA,从memory 搬一些数到外设。 结果发现功能不正常,所以我激活了4个DMA 的传输完成中断,在DMA中断函数中输出一个IO管脚,用逻辑分析仪监视,发现TIMER update中断后,立即跟随4个DMA中断(我设置CC1 CC2, CC3, CC4的触发时间是10us,12us, 14us, 16us, 这些时间从timer 8 counter溢出开始计算)。 在初始化时,把CR2中的CCDS 位设置成0就解决了问题。 我的问题是 :CR2中的CCDS 位缺省是0,为何还要手工设置? Bit 3 CCDS: Capture/compare DMA selection 0: CCx DMA request sent when CCx event occurs 1: CCx DMA requests sent when update event occurs |
关于STM32G474 双BANK的测试问题
HAL_TIM_IC_Start_DMA的回调函数是HAL_TIM_IC_CaptureCpltCallback吗?为什么进不去?
STM32G473CBUx的模拟地
STM32G474, I2C设备地址,总出现多余地址0x20,是什么原因?
最近在做单极倍频SPWM
为什么STM32G431的串口用不了2.5M的波特率
上电连接USB显示DFU模式
STM32G491RE上电出现DFU模式
STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入
如何利用TIM1触发HRTIM TIMA生成频率为20Hz的100ns脉冲波?