本帖最后由 你好我好大家好! 于 2015-11-13 11:08 编辑 最近在做项目,遇到一个很奇怪的问题。ch1通道输出pwm波,关闭ch2,ch3,ch4,但是用示波器测量的ch2却有不规则波形输出。有两种办法可以解决这个情况,但感觉这样解决不了根本问题: 1,不修改代码:将同样的程序放入了官方的开发板,输出波形非常标准,ch2没有一点输出波形 2,修改代码:有干扰时,将各通道的配置放在主函数的while循环中的。后来把各通道的配置放在主函数中while之外,下载到自己做控制板中,ch2就没有干扰输出了。 以上任何一种方法就可以解决问题,但是还是不知道为什么ch2会有波形输出。要说是我的板子坏了的话,可是修改程序波形就正常了。要说程序的事吧,可是把同样的代码下载到官方的开发板,波形也是非常标准的,,,郁闷了 |
ch1导通时,ch2输出的干扰波形
对程序修改前的代码
对程序修改后的代码
配置信息干嘛放到while里面?你放在while里面意味着什么你知道吗?放while里面还不加延时,你一秒钟初始化几十万次TIM,你还想让TIM好好工作?
那为什把当配置信息放在while中时的代码,下载到官方开发板中时能好好工作呢。还有就是,虽然一秒钟初始化几十万次定时器,但是没有改动配置信息啊,一直是那个配置,为什么不能好好工作呢????????
1、你都没描述清楚到底通道几开通道几关闭,CH1开,测量CH2?
2、官方开发板不能说能用,只能说没有出你的那种异常,如果芯片是相同的只能说你硬件设计不同导致官方板在这种情况下没出现异常,你如果非要追究原因的话,建议你尝试修改配置包括占空比、通道号等来排查哪里导致的差异,然而这并没有多大意义,原因请看3.
3、你这用错误的方法来使用TIM,就相当于你敲错误的代码还想让编译器通过然后给你运行正常一样,还是那句话,没意义。
既然同样代码在开发板没事,可以考虑一下是不是外设引起的,尤其是电容。
ch2也要用,我想让ch1到ch4轮流导通。ch2没接电容,直接接的驱动。