PWM默认电平的控制

2019-08-14 07:11发布

小白想问一个简单的问题,看手册看糊涂了,以下是代码部分:

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_Pulse = nPDTemp>>1;//50%
        TIM_OC1Init(TIM2, &TIM_OCInitStructure);
        TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Disable);
        TIM_ARRPreloadConfig(TIM2, DISABLE);


我的需求是PWM口一开始是低电平,然后在Pulse之前是高电平,之后是低电平;

TIM_OCMode_PWM1搭配TIM_OCPolarity_High就是Pulse之前是高电平,之后是低电平,但是PWM一配置完就是高电平,我要的是低电平...
TIM_OCMode_PWM1搭配TIM_OCPolarity_Low就是配置完是低电平,但是Pulse之前是低电平,之后是高电平...
TIM_OCMode_PWM2也试过,不行...现象一样

我试过一开始PWM口配置成普通IO拉低,有PWM时才配置,输出完成后就恢复普通IO口拉低,这个方法倒是可以,但是IO口切换模式时有个小尖峰脉冲...感觉这个方法不大好...

由于我是用来触发一个响应非常快的高电平脉冲来驱动相机拍照,所以问下各位应该如何去配置?或者有更好的办法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
kaxilion
1楼-- · 2019-08-15 02:21
17602515236 发表于 2017-8-19 21:37
PWM1+Low或者PWM2+High就可以()向上计数模式,一开始就是低电平

这些搭配我试过了,都是一开始的电压和PWM第一个周期的前半周期电平一样,这样我的外部要触发的设备就要延迟半个周期了

一周热门 更多>