各位大佬,新人初学嵌入式,现在在配一个ADC采样,配置Timer1通道1,2,3输出三路PWM,现在想要用Timer3TRGO通道触发ADC,ADC在三路输出PWM高电平中间点采样,该如何配置呢?目前搜索得到的配置方式是Timer1配置成中央对齐方式,然后ADC使能外部触发,为了观察是否在高电平中间点采样,在ADC中断做了一个IO口翻转操作,现在观察PWM和IO口波形,发现IO口翻转还是在PWM高电平上升沿时出现,请教一下各位大佬 该怎么配置呢 |
我猜测有可能应用要在MOS管打开后稳定时采集相电流的需要吧~ |
为什么要这样子。如果你采样时序有要求。你可用重新计算一个新的PWM,控制占空比。让其在中间部分出现上升沿。 |
没有更新事件触发ADC的话,中央对其方式就有点行不通。 那么换成单边模式,将ADC设为注入通道,用定时器1的通道4比较信号触发,就是每次都要根据PWM的脉宽计算一下 |
如果使用TIM3来做的确有点困难,如果说使用TIM1,在那个中间点产生更新事件是没有什么问题,但是又有个问题,这个事件没法传输过来,因为我看了下F1系列的ADC的外部触发源并不包括来做TIM1的更新事件。所以,这个还是看你最终的需求来定方案。 |
如果使能中央对齐方式时, PWM脉冲也需要中央对其,这样利用重复寄存器可以在每个中间点产生更新事件触发ADC转换。 另外ADC转换是有时间的,楼主观察时注意时间延迟,或者说PWM的宽度时间不能太短 |
谢谢各位大佬回复,做这个只是用板子输出了多路PWM控制,想达到好一点的AD采样效果,所以打算在PWM输出控制高电平中间点进行AD采样 |
哪位大哥有stm32f103c8t6的keil编程实例源码呀?求
如何利用timer对一个频率变化范围比较广的中低频脉冲信号进行精确脉冲长度/周期/频率测定
能在一个程序中同时使用TIM的callback和uart的callback函数吗?
为什么我的stm32cubemx里高级定时器只能配置输出比较的互补输出,而不能直接配置PWM互补输出?
TCP客户端 周期性 发送数据,一段时间后会突然停止,是什么原因。
STM32F103VCT6有64K的RAM?
使用串口双机通信的问题
STM32F407输出方波最高频率
如何添加一个中断服务函数?
定时器回调函数只能执行一次