历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | STM8S103定时器1,定时器2多路PWM波输出

2020-01-28 来源:eefocus

一、时钟配置


1、STM8S的4种时钟源可用做主时钟:

● 1-24MHz高速外部晶体振荡器(HSE)

● 最大24MHz高速外部时钟信号(HSE user-ext)

● 16MHz高速内部RC振荡器(HSI)

● 128KHz低速内部RC(LSI)

STM8默认时钟源为16MHz高速内部RC振荡器(HSI)

对 CLK_CKDIVR设置可以设置时钟为HSI的分频


如 CLK_CKDIVR|= (uint8_t)0x00;/*设置时钟为内部16M高速时钟*/


2分频为 CLK_CKDIVR=0x08;4分频为 CLK_CKDIVR=0x10;8分频为 CLK_CKDIVR=0x18;


二、定时器1设置


1、定时器1CH3输出PWM


代码如:


     CLK_PCKENR1 |= 0x80;//开启定时器1外设时钟 

     TIM1_EGR = 0x01;   //重新初始化TIM1 

 

    TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件

    TIM1_RCR = 0x00;  

    

      //设定预分频为,16分频 16M

    TIM1_PSCRH =0x00;  //PWM的时钟 影响周期

    TIM1_PSCRL =0x08;  //PWM的时钟 影响周期

    

    TIM1_ARRH = 0x01;     //设定重装载值

    TIM1_ARRL = 0x40;  //PWM的周期 

    

    TIM1_CCER2 = 0x03; //开启CH3,高电平有效   

    TIM1_CCMR3 = 0x68; //PWM模式1,CC1配置入输出

    TIM1_CCR3H = 0x00;

    TIM1_CCR3L = 0x40;  // 占空比值

   // TIM1_DTR = 0x50;        // Deadtime generator

    TIM1_BKR |= 0x80;       //刹车

    TIM1_CR1 |= 0x01; //使能TIM1计数器


2、定时器1CH1输出PWM


代码如:


   TIM1_EGR = 0x01;   //重新初始化TIM1 

    //TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件

   // TIM1_RCR = 0x00;  

      //设定预分频为,16分频 16M

    TIM1_PSCRH =0x00;  //PWM的时钟 影响周期

    TIM1_PSCRL =0x00;  //PWM的时钟 影响周期

    

    TIM1_ARRH = 0x00;     //设定重装载值

    TIM1_ARRL = 0x64;  //PWM的周期 100,f=20K,CLK=20*10=2M

 

    //CH1

    TIM1_CCER1 = 0x01; //CC2ER1开启CH1  

    TIM1_CCMR1 = 0x68; //PWM模式1,CC1配置入输出

    TIM1_CCR1H = 0x00;

    TIM1_CCR1L = 0x40;  // 占空比值

    

     TIM1_OISR &= ~0x03;

   // TIM1_DTR = 0x50;        // Deadtime generator

    TIM1_BKR |= 0x80;       //刹车

    TIM1_CR1 |= 0x01; //使能TIM1计数器


CH1要产生PWM,GPIO要配为推挽输出模式


    PC_DDR|=0xff;//输出

    PC_CR1|=0xff;//推挽

    PC_CR2|=0xf0;//速度


其次,C6引脚要复用为定时器1的CH1通道

先DEBUG AND RUNINIG,之后会出现ST-LINK选项,点击后配置option bytes,按图配置,Alternate即为1.

3、定时器1CH1与CH3输出互补的PWM


代码如:


  CLK_PCKENR1|= 0x80;//开启定时器1外设时钟

   TIM1_EGR = 0x01;   //重新初始化TIM1 

   TIM1_CR1 = 0x00;   //B7(0)可以直接写入 B65(00)边缘对齐模式B4(0)向上计数B3(0)计数器不停止发生更新事件

  TIM1_RCR = 0x00;  

  //PWM1,预装载

  TIM1_CCMR1=0x68;

 //

  TIM1_PSCRH =0x00;  //PWM的时钟 影响周期

  TIM1_PSCRL =0x00;  //PWM的时钟 影响周期

  TIM1_ARRH = 0x07;     //设定重装载值

  TIM1_ARRL = 0xD0;  //PWM的周期 07D0=2000,CLK=2M,f=1Kh


  TIM1_CCER1=0x05; //CH1互补输出,高电平有效 

  TIM1_CCR1H = 0x03;

  TIM1_CCR1L = 0x00;  // 占空比值


  TIM1_CR1 |= 0x01; //使能TIM1计数器

  TIM1_DTR = 0x50;        // Deadtime generator

  

  TIM1_BKR |= 0x80;       //刹车


注意CH3的C3引脚也要复用为CH1的CH1N通道。


推荐阅读

史海拾趣

FCI / Amphenol公司的发展小趣事

Amphenol公司成立于1932年,最初由Arthur J. Schmitt和Gordon K. Klapmeier共同创办,专注于电磁线缆的制造。然而,随着技术的进步和市场需求的变化,Amphenol公司逐渐将重心转向电缆连接器的制造。凭借高品质的产品和服务,Amphenol公司的电缆连接器在市场上获得了广泛的认可,并逐渐发展成为全球最大的电缆连接器制造商之一。

CMOS Sensor Inc公司的发展小趣事

随着技术的不断发展,CMOS Sensor Inc公司不断推出创新产品。其中,线型CMOS图像传感器的研发成功,为公司带来了重要的突破。这一产品具有更高的分辨率和更低的噪声,为工业质量保证、商业成像等领域提供了更优质的解决方案。此后,公司又不断对产品进行升级和优化,以满足不同客户的需求。

Devar Inc公司的发展小趣事

随着环保意识的提高,Devar Inc公司也积极投身环保科技领域。公司研发了一系列环保型电子产品和解决方案,如可降解材料制成的电子产品外壳、节能型电源管理系统等。同时,Devar还积极参与电子废弃物的回收和处理工作,推动循环经济的发展。这些努力不仅有助于减少环境污染和资源浪费,也提升了公司的社会责任感和品牌形象。

CONEXANT公司的发展小趣事

作为一家在半导体和通信领域具有深厚技术底蕴的公司,Conexant始终致力于技术创新和市场拓展。在不断变化的市场环境中,Conexant紧跟行业趋势,加大在新技术研发和市场推广方面的投入。通过持续创新和市场拓展,Conexant成功巩固了在行业内的领先地位,并为全球用户提供了更加优质的产品和服务。

这些故事只是CONEXANT公司在电子行业发展中的一部分,它们展示了公司在不同时期的战略决策、技术创新和市场拓展能力。这些成就不仅为CONEXANT公司赢得了业界的尊重和认可,也为整个电子行业的发展做出了重要贡献。

HIT(日立)公司的发展小趣事
在电路设计时充分考虑各种因素,如元件的耐压、耐流能力,以及电路的抗干扰能力等,确保电路能够稳定工作。
Baumer Electric Ag公司的发展小趣事

1962年,赫尔穆特•维茨(Helmut Vietze)加入Baumer Electric Ag,成为一名模具制造工。他凭借出色的个人能力和工作表现,很快在公司中脱颖而出。1964年,公司创始人Herbert Baumer去世后,Helmut Vietze接管了管理层,并带领公司走向新的发展阶段。他的领导为公司注入了新的活力,推动了Baumer在技术和市场上的双重突破。

问答坊 | AI 解惑

单片机下C编程的问题

#include unsigned char i,j; unsigned char code tab[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,                         0x87,0xff,0xef} ; void Init_Com( ...…

查看全部问答>

急问:优龙2410通过usb的ms activesync连接不上pc

   我使用的是优龙2410开发板,usb连接是通过pc上的普通usb口连接到开发板上的方形usb口,可以通过此usb连接下载wince到开发板上,但是启动wince后却怎么也不能将pc和开发板通过ms activesync连接上。驱动已经安装好,设备管理器上显示有 ...…

查看全部问答>

lantronix程序对硬件进行设置时候出现问题,请高手帮忙解决!

单位购买了一套系统,使用非接触IC卡消费机实现对卡上消费数据的操作,串口处标识的为rs232 rs485。现在由于服务器故障,要重新安装调试服务器,但是我把当初对消费机设置的软件弄丢了,只能在网上找了lantronix的不同版本来做设置,总是不能通过。 ...…

查看全部问答>

USB设计和测试的问题

我在测试人家的USB仿真模型时碰到了大问题 我用自己写的数据发送模块仿真USB HOST的数据发送,将数据 发送给要测试的USB DEVICE的仿真模型,当我发送完第一个SETUP 包后 USB DEVICE是不是应该回一个ACK信号啊? 为什么我的USB DEVICE的仿真模型 ...…

查看全部问答>

紧急啊!紧急!求问

我在下载lm3s811时 出现了 如图情况,终解决不了。以至于下载无法完成!!紧急求解!!我该如何办!!…

查看全部问答>

想入手一块二手2440开发板

哪位大侠有限制的2440开发板,要是JZ的最好了,其他的也行,希望价格便宜,联系我QQ496142088…

查看全部问答>

HEX文件内容有点不了解

最近做一些备案工作,有一项是查看软件代码的起始结束地址,从map文件里可以看到,但是知道也可以从hex文件里看 碰到一个问题 :067FF000B0B0B0B0B6AF66 :020000021000EC :0A7FF600FFFFFFFFFFFFFFFFFFFF8B :00000001FF复制代码最后四行是这样的。 ...…

查看全部问答>

参与DLP应用产品设计,望大家给一些电子电路方面的建议

本帖最后由 cardin6 于 2016-3-11 15:53 编辑 当然,本人只负责产品的外观设计 我们想将设计做的更有意思,因此,除DLP的投影功能外,另外增加了一些附属功能  应了柱哥的想法,使之真正成为一个“大玩具” 设计原型为《机器总动员》 ...…

查看全部问答>

对于28069的IQmathLib.h的疑问

    我将IQmathLib.h设置为浮点库,在IQmathLib.h看到以下几行代码, #if MATH_TYPE == FLOAT_MATH #include #include #endif #define   _IQsin(A)           sin(A) 是不是 ...…

查看全部问答>

来看看 Intel 2016年关于物联网的盘点

2017年将至,作为信息技术行业的风向标企业,英特尔发布了面向2020年的最新展望。在英特尔看来,到2020年全世界将会有超过500亿台设备接入互联网并实现互相连接,包括可穿戴设备、商店库存传感器、无人驾驶汽车、医疗设备和城市基础设施等等,届 ...…

查看全部问答>