本帖最后由 BUGMAN 于 2019-3-14 19:42 编辑
时序图
ICG为25HZ的PWM信号,下降沿触发产生信号A,信号A为500K的PWM脉冲,脉冲持续3700个后,变为低电平。
想要这样的脉冲是想要用来触发AD转换,然后后面多出来的时间用来USB传输数据到上位机。
目前我设想的方案是,ICG信号(TIM3产生)通过主从模式让其下降沿使能启动A信号(TIM4产生),A信号上升沿触发启动AD转换,AD转换再触发DMA将数据转移到前面设好的数组里,采集3700个数据后进入中断,关闭TIM4同时USB_USART_SendData()函数传输数据。在SH下一个下降沿到来前完成中断,SH下一个下降沿到来时又会使能TIM4。
目前的问题就是不知道如何在采集3700个数字后进入中断。
之前我以为将DMA设置里的DMA_BufferSize设为3700,在将DMA设为循环模式,AD转换一次传一个数据,传3700个数据之后就能进入传输完成中断了。结果发现并不是我预料的那样。
DMA与ADC设置代码
求各位指点一下,真的感谢!
假如25hz的信号是外部的 500k采样周期用 ADC_SampleTime 和ADC_TwoSamplingDelay 保证采样周期 应该SH下降沿的时候进外部中断 启动adc dma dma数据量3700 dma中断证明采集完成给信号usb发送
假如25hz是自己设定的 500k采样周期用 ADC_SampleTime 和ADC_TwoSamplingDelay 保证采样周期 启动adc dma 定时器触发模式 dma数据量3700 采样频率定时器触发模式设定25hz dma中断证明采集完成给信号usb发送
应该是这样的
一周热门 更多>