STM8L052C6T6定时器3通道1PWM输出

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

第一次写文章。以前没有在网上写文章的习惯,最多自己写点代码笔记写在电脑里。但是后来电脑坏、U盘坏、莫名其妙被电脑删了、文件太多懒得去翻笔记等等原因,导致笔记也不写了。随着代码越写越多,接触的知识与技巧也越来越多,一些问题开始浮现,那就是:遇到了一些bug或者问题是以前遇到过并且解决了的,但是我又不记得怎么解决了。这就是我开始写文章的契机,为了以后遇到bug可以来看看自己的文章。

PWM输出控制蜂鸣器

虽然STM8L052C6T6内嵌有蜂鸣器的引脚和函数,但是频率不能随意改变,于是打算用pwm控制蜂鸣器来输出。

代码如下(示例):

void Tim3_PWM_Init(void)
{
    CLK_PeripheralClockConfig(CLK_Peripheral_TIM3,ENABLE);//开启定时器3时钟
    TIM3_DeInit();
    TIM3_TimeBaseInit(TIM3_Prescaler_4,TIM3_CounterMode_Up,2000);//2ms/(4/16M)=2000;
    TIM3_ARRPreloadConfig(ENABLE);//使能自动重装
    TIM3_OC1Init(TIM3_OCMode_PWM1,TIM3_OutputState_Enable,1000,TIM3_OCPolarity_Low,TIM3_OCIdleState_Set);
    //TIM3_OC1PreloadConfig(ENABLE);
    
    TIM3_Cmd(ENABLE);
    TIM3_CtrlPWMOutputs(ENABLE);//开PWM
}

总结

这些初始化代码,开时钟和开PWM是最关键的,一定要记得开。像引脚初始化和改占空比的函数,这里就懒得写了,因为我下班了。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值