3121|1

32

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm8 pwm [复制链接]

手头上有一块stm8L开发板,芯片是STM8L152k4,如何配置才能让TIM1输出pwm来控制led的亮度
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报

32

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

8l和8s不能通用吗

#include"STM8S207C_S.h"
voidCLK_Init(void);
voidTIM_Init(void);
// 函数功能:延时函数
// 输入参数:ms -- 要延时的毫秒数,这里假设CPU的主频为2MHZ
// 输出参数:无
// 返 回 值:无
// 备    注:无
voidDelayMS(unsigned int ms)
{
unsigned char i;
while(ms != 0)
  {
   for(i=0;i<250;i++)
   {
   }
   for(i=0;i<75;i++)
   {
   }
   ms--;  
}     
}
// 函数功能:初始化时钟
// 输入参数:无
// 输出参数:无
// 返 回 值:无
// 备    注:无
voidCLK_Init()
{
CLK_CKDIVR = 0x11;          // 10:fHSI = fHSI RC output/ 4
                             //          = 16MHZ / 4 =4MHZ
                             // 001: fCPU=fMASTER/2. = 2MHZ
}
// 函数功能:初始化定时器2的通道2,用于控制LED的亮度
// 输入参数:无
// 输出参数:无
// 返 回 值:无
// 备    注:无
void TIM_Init()
{
TIM2_CCMR2 = TIM2_CCMR2 | 0x70;// Output modePWM2.         
                                //通道2被设置成比较输出方式
                                // OC2M = 111,为PWM模式2,
                                // 向上计数时,若计数器小于比较值,为无效电平
                                // 即当计数器在0到比较值时,输出为1,否则为0
TIM2_CCER1 = TIM2_CCER1 | 0x30;// CC polarity low,enable PWMoutput      */
                                // CC2P = 1,低电平为有效电平
                                // CC2E = 1,开启输出引脚               
   
//初始化自动装载寄存器,决定PWM方波的频率,Fpwm=4000000/256=15625HZ      
TIM2_ARRH = 0;
TIM2_ARRL = 0xFF;
      
//初始化比较寄存器,决定PWM方波的占空比            
TIM2_CCR2H = 0;
TIM2_CCR2L = 0;
      
// 初始化时钟分频器为1,即计数器的时钟频率为Fmaster=4MHZ
TIM2_PSCR = 0;
// 启动计数
TIM2_CR1 = TIM2_CR1 | 0x01;
}
main()
{
unsigned char i;
  
CLK_Init();                // 初始化时钟
TIM_Init();                // 初始化定时器      
while(1)                   // 进入无限循环
  {
   // 下面的循环将占空比逐渐从0递增到50%
   for(i=0;i<128;i++)
   {
     TIM2_CCR2H = 0;
     TIM2_CCR2L = i;
     DelayMS(5);
   }
   // 下面的循环将占空比逐渐从50%递减到0
   for(i=128;i>0;i--)
   {
     TIM2_CCR2H = 0;
     TIM2_CCR2L = i;
     DelayMS(5);
   }
}
}
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表