stm8 pwm停止时电平的设定

在用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
           

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值