中级会员
 
- 积分
- 342
- 金钱
- 342
- 注册时间
- 2015-5-26
- 在线时间
- 49 小时
|
5金钱
本帖最后由 林春霞 于 2016-8-4 00:21 编辑
stm32f103rc的定时器3跟AD模块不能同时使用,不然会出现问题。我用定时器3产生3路pwm波驱动逆变桥H-pwm-L-on的方式。
(1)然后将定时器3作为主机,定时器4作为从机,工作在主从门控方式下。当TIM3输出的PWM为低电平时,打开TIM4,并利用TIM4触发AD转换。
(2)为了指示程序运行。我在AD中断程序里面写了一个 LED1on;delay_us(2); LED1off;,
(3)这样一来由tim3产生pwm斩波并在pwm波为低电平时候启动tim4,tim4的频率要比tim3要高,tim4的中断函数里面就启动AD转换。
也就是在TIM4中断里面加了ADC_SoftwareStartConvCmd(ADC2, ENABLE);因为AD工作在单次转换模式,所以每一个ENABLE就相当于触发一次。
接上分析仪,观察LED1的引脚是否有小脉冲就可以知道程序运行情况。一切都好像挺自然的,我自己也觉得没什么问题,但是现在发现一使能AD时候,TIM3的引脚输出就有问题了,请见图,不知道是不是AD跟TIM3冲突了,他俩确实在引脚上有复用,但我重映射TIM3之后,还是老样子。
————————————————————————————————————————————————————————
A图是没使能AD的时候,B图是A图的放大,一切都跟设想的一样。但是C图就是使能了AD之后的。我在上面说了,AD中断函数里面是加了个 LEDon; delay(); LEDoff 的,也就是对应的引脚会产生一个窄脉冲,最后窄脉也观察到了,可是,TIM3波形的输出却跟A和B图不一样了,我什么都没做,只是使能了AD。上述情况实在不知道怎么解决,已经困惑挺久了。麻烦知道的朋友提供点思路吧,谢谢
|
|