历史上的今天
今天是:2025年02月06日(星期四)
2020年02月06日 | stm8 pwm停止时电平的设定
2020-02-06 来源:eefocus
在用pwm驱动蜂鸣器的开发中,pwm停止输出后一直处于低电位,这样蜂鸣器虽然不工作却仍然消耗70mah的电流。所以设置pwm结束后电平非常重要。我采用的办法和网上其它方法有所不同:
1.在pwm初始化时一定要设置gpio的状态。你设置的初始状态将决定pwm结束的状态。
GPIO_Init(GPIOD, GPIO_Pin_5 , GPIO_Mode_Out_OD_HiZ_Slow);//初始化 漏极开路,高阻抗电平,2兆赫
GPIO_WriteBit(GPIOD,GPIO_Pin_5,SET);//
gpio设定成开漏和推挽对电流影响不大
2.用 TIM1_CtrlPWMOutputs(DISABLE); 这个指令在其它控制PWM关断。
上源码:
void Time1_Init(void)//输出PD5 timer1初始化的库函数模式
{
// PD_DDR_DDR5 =0;//设置为输出
// PD_CR1_C15 =0;//推挽输出
GPIO_Init(GPIOD, GPIO_Pin_5 , GPIO_Mode_Out_OD_HiZ_Slow);//初始化 漏极开路,高阻抗电平,2兆赫
GPIO_WriteBit(GPIOD,GPIO_Pin_5,SET);//
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);//开启TIM1时钟
TIM1_DeInit();
TIM1_TimeBaseInit(2,TIM1_CounterMode_Up,240,0); //分频1600,向上计数,TIM1_ARR=200,重复计数器为0
TIM1_OC3Init(TIM1_OCMode_PWM2,//PWM1模式2
TIM1_OutputState_Enable,//启用互补输出比较
TIM1_OutputNState_Disable,
50,//脉冲宽度初值是1000
TIM1_OCPolarity_Low,
TIM1_OCNPolarity_Low,
TIM1_OCIdleState_Set,
TIM1_OCNIdleState_Set);
TIM1_OC3PreloadConfig(ENABLE);
TIM1_Cmd(ENABLE); //定时器开始
TIM1_CtrlPWMOutputs(DISABLE); //用这个指令控制PWM关断
}
史海拾趣
|
我在WINCE下用DDRAW做UI,发现图片有时被撕裂了。现在我想用三缓冲的方法去做,希望能解决这个问题。可是我怎么做好像都不成功。下面是代码。还请高手看一下。 LPDIRECTDRAW4 g_ ...… 查看全部问答> |
|
求助:大家好,我是个新新手,想请教SIM300C无线数传的问题。 大家好! 我刚刚接触SIM300C,单片机通过串口连接SIM300C,要实现数据传输应该怎样设置SIM300C?哪位专家能否给我一个设置流程,万分感谢!… 查看全部问答> |
|
一直在作音视频驱动,总是在和硬件打交道。感觉还是硬件那边稳定,不用再学好多乱七八糟得编程语言。 python,jsp,vbscript,C#,。。。 硬件那边只要把电路搞得很通就行了。爽啊。… 查看全部问答> |
|
msp430f5438测频率成功,能测60K一下频率,误差50HZ以内! #include #include \"LCD_12864.h\" #include \"CLOCK.h\" unsigned int end,start; unsigned char overflow; unsigned long fre; int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL ...… 查看全部问答> |
|
atlium 作出来的lm3s下载器,漂亮! 不多说,上传图片! [ 本帖最后由 paulhyde 于 2012-5-17 10:20 编辑 ]… 查看全部问答> |




