历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2020年01月30日 | 使用STM8S003定时器的PWM功能输出PWM波

2020-01-30 来源:eefocus

一、使用定时器TIM2的CH1、CH2、CH3通道PWM输出


1.在使用stm8s系列的单片机的时候,使用的头文件大部分都是通用的stm8s.,第一步修改头文件:


/* Uncomment the line below according to the target STM8S or STM8A device used in your

   application. */


 /* #define STM8S208 */      /*!< STM8S High density devices with CAN */

 /* #define STM8S207  */    /*!< STM8S High density devices without CAN */

 /* #define STM8AF52Ax */    /*!< STM8A High density devices with CAN */

 /* #define STM8AF62Ax */    /*!< STM8A High density devices without CAN */

 /* #define STM8S105 */      /*!< STM8S Medium density devices */

 /* #define STM8AF626x */    /*!< STM8A Medium density devices */

  #define STM8S103       /*!< STM8S Low density devices */

 /* #define STM8S903 */      /*!< STM8S Low density devices */


2.取消stm8s103的注释,103和003的寄存器地址都是一样的,所以我们这里用103替代003.


3.引脚使用PWM功能时无需配置GPIO状态,直接配置寄存器即可。例如TIM2的库函数配置如下:


    TIM2_TimeBaseInit(TIM2_PRESCALER_1, 7999);         /*    1分频 ,计数值8000,频率=16M/8000=2kHZ   */

   

    /* PWM1 Mode configuration: Channel1 */

    TIM2 Channel1 duty cycle = [TIM2_CCR1/(TIM2_ARR + 1)] * 100 = 50%*/ 

    TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,2000, TIM2_OCPOLARITY_HIGH);

    TIM2_OC1PreloadConfig(ENABLE);



    /* PWM2 Mode configuration: Channel2 */

    TIM2_OC2Init(TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE,2000, TIM2_OCPOLARITY_HIGH);

    TIM2_OC2PreloadConfig(ENABLE);


     /* PWM3 Mode configuration: Channel3*/


    TIM2_OC3Init(TIM2_OCMODE_PWM2, TIM2_OUTPUTSTATE_ENABLE,2000, TIM2_OCPOLARITY_HIGH);

    TIM2_OC3PreloadConfig(ENABLE);

    

    TIM2_Cmd(ENABLE);


4.配置完成后,调试输出2kHz 占空比为25%的PWM波,如下图所示:

5.因为TIM2的这3个PWM通道都没有用到Alternative功能,不需要配置Options Bytes。


二、使用定时器TIM1的CH1、CH2、CH3通道的PWM功能


1. TIM1的CH1、CH2为需要配置的引脚复用功能,在调试程序之前,需要配置Option Bytes。AFR0设置为Alternate active.

2. TIM1三通道输出PWM寄存器实例:


  CLK->CKDIVR= 0x00; //内部16M时钟不分频

  TIM2->PSCR = 0x00; //定时器2预分频系数为1

  TIM2->CR1 = 0x01; //内部计数器使能;

  TIM2->ARRH = 0x00;//0140,320分频,16M/320=50K,实测49.75K

  TIM2->ARRL = 0x8a;//自动装载寄存器低位;实测013e正好为50.0K

  /*PWM通道1设置*/

  TIM2->CCER1 |= 0x01; //开启OC1信号输出脚

  TIM2->CCMR1 = 0x60; //PWM1模式

  TIM2->CCR1H = 0x00; //占空比高位

  TIM2->CCR1L = 0x37; //占空比低位

  TIM2->CCMR1 |= 0x08; //输出比较1预装载使能

  /*PWM通道2设置*/

  TIM2->CCER1 |= 0x10; //开启OC2信号输出脚

  TIM2->CCMR2 = 0x60; //PWM1模式

  TIM2->CCR2H = 0x00; //占空比高位

  TIM2->CCR2L = 0x37; //占空比低位

  TIM2->CCMR2 |= 0x08; //输出比较2预装载使能

  /*PWM通道3设置*/

  TIM2->CCER2 |= 0x01; //开启OC3信号输出脚

  TIM2->CCMR3 = 0x60; //PWM1模式

  TIM2->CCR3H = 0x00; //占空比高位

  TIM2->CCR3L = 0x37; //占空比低位

  TIM2->CCMR3 |= 0x08; //输出比较3预装载使能

  TIM2->CR1 |= 0x01;


推荐阅读

史海拾趣

Habia Cable公司的发展小趣事

在电子行业中,高博(GBG)公司的发展涉及多个领域和维度,以下是根据不同业务线整理出的五个相关发展故事,每个故事均基于事实描述:

1. 高博教育:私立高等教育与终身学习的引领者

高博教育作为全球教育管理集团(GEM)在中国的旗舰机构,由前摩托罗拉中国区总裁赖炳荣先生创立。公司坐落于苏州工业园区独墅湖高等教育区,致力于发展私立高等教育和终身学习。高博教育成功与香港大学及苏州科技学院合作,创办了苏州港大思培学院,成为江苏省首家香港与内陆合作的院校。此外,高博还与微软(中国)有限公司合资建设苏州高博软件技术学院,开展多层次的软件人才教育,成为江苏省软件人才培养的重要基地。高博教育通过整合全球优质教育资源,为学员提供国际化的课程和学习空间,培养了大量高素质、实用型和国际化的软件人才。

2. 高博(鞍山)半导体有限公司:LED技术的创新者

高博(鞍山)半导体有限公司成立于2019年,位于辽宁省鞍山市,是一家专注于研发、生产及销售LED发光二极管的企业。公司为客户提供多元化的产品,广泛应用于计算机、通讯、消费类电子、汽车电子、工业自动化及医疗等领域。高博(鞍山)半导体有限公司凭借其在LED技术领域的创新能力和完善的产品链,迅速在市场中占据一席之地。公司不仅拥有多项专利和著作权,还积极投资研发,推动LED技术的不断进步。

3. 高博起重设备:物料输送解决方案的提供者

高博公司(GORBEL)自1977年在美国纽约州成立以来,便以提供高效、安全、人性化的物料高架输送解决方案而闻名。公司在北美市场拥有极高的市场占有率,其组合式起重机和旋臂起重机等产品深受客户信赖。为了更好地服务亚洲市场,高博(天津)起重设备有限公司于2006年在天津滨海新区成立,成为美国Gorbel International Inc.在中国的首个生产基地。高博起重设备以其卓越的产品性能和优质的客户服务,在工程机械制造、汽车制造、铁路、风能、航空航天等多个领域赢得了广泛赞誉。

4. 高博医疗集团:血液病与肿瘤治疗的创新者

高博医疗集团是一家专注于血液病和肿瘤治疗的医疗机构集团。近年来,集团通过不断开拓创新,实现了地理版图的快速扩张。在北京、广东、上海等地设立了多家以血液病为专科特色的医疗机构,并成立了以肿瘤为特色的上海阿特蒙医院。高博医疗集团拥有一支由国内外权威专家组成的医疗团队,为患者提供个性化的治疗方案和高质量的医疗服务。同时,集团还积极投入科研创新,取得了一系列卓越的临床和科研成果,在国内外学术界产生了广泛影响。

5. 高博职场文化:激发人才潜能的典范

高博公司在职场文化建设方面也取得了显著成效。公司打破了传统的“论资排辈”体系,以技术、人才为导向,为优秀人才提供了广阔的发展空间。中高管通过高管进阶之旅提升综合能力,新生代员工则通过量身定制的管培生项目进行培养。高博还注重提升员工的职场体验,推出了“高博文化平台和福利平台”,打造数字化职场社交新体验。同时,公司倡导“悦生活·享工作be better@GHG”的健康理念,重视员工的身心健康和职业发展。这些举措不仅增强了员工的归属感和幸福感,也为企业的发展注入了源源不断的动力。

Emhiser Research Inc公司的发展小趣事

Emhiser Research在成立之初就专注于半导体技术的研究。随着市场对更高效能、更小体积的芯片需求的增长,公司研发团队成功开发出了一种新型的高性能低功耗芯片。这一技术突破迅速吸引了众多手机厂商和电子设备制造商的关注。Emhiser抓住这一市场机遇,与多家大型企业建立了合作伙伴关系,其产品迅速在市场上占据了一席之地。

Great American Electronics公司的发展小趣事

随着业务的不断发展,Emhiser Research开始实施国际化战略。公司首先在欧洲设立了研发中心和销售机构,随后又在美国和亚洲等地建立了分公司。这些分支机构不仅帮助公司更好地了解当地市场需求,也为公司拓展国际市场提供了有力支持。通过国际化战略的实施,Emhiser Research的产品逐渐打入了全球电子市场。

Echelon公司的发展小趣事

在激烈的市场竞争中,Echelon始终保持对技术的热情和追求。公司不断投入研发资源,对LonWorks技术进行升级和优化,推出了一系列创新的产品和服务。这些新产品和服务不仅提升了Echelon的市场竞争力,还为客户带来了更加高效、便捷的能源管理体验。同时,Echelon还积极与其他科技公司合作,共同研发新技术、新产品,推动整个行业的发展。

磁联达(CND-tek)公司的发展小趣事

随着5G技术的快速发展,磁联达(CND-tek)公司意识到无线充电技术将成为未来的重要趋势。公司投入大量资源进行无线充电发射线圈的研发,经过多次试验和改进,终于成功推出了一款性能稳定、效率高的无线充电产品。这一创新不仅为公司带来了丰厚的利润,也进一步巩固了公司在行业内的领先地位。

Davies Molding公司的发展小趣事

Davies Molding公司自创立之初,就将产品质量视为企业的生命线。在早期,公司创始人意识到,只有提供高品质的塑料注塑成型产品,才能在竞争激烈的电子行业中立足。因此,公司投入大量资源在研发、生产和质量控制上,确保每一件产品都符合严格的标准。这种对品质的坚持,不仅赢得了客户的信任,也为Davies Molding公司赢得了良好的口碑。

问答坊 | AI 解惑

无形的屏幕

哇,我的电脑屏幕隐形了,成透明的了,这...这...怎么可能?淡定淡定,这不是灵异事件,奥秘来自于墙纸...厌倦了常规的墙纸当屏幕背景,那就看一下这一组怪异墙纸,它们会让你的屏幕变无形。但是事实是,屏幕还在,只不过是视觉欺骗了我们的感觉。 ...…

查看全部问答>

有人知道用920T的盒做个ARM9的板子,大约要多少钱吗?

有人知道用920T的盒做个ARM9的板子,大约要多少钱吗?芯片在哪买?…

查看全部问答>

能否根据windows驱动程序(release bin)编写linux驱动

有没有可能通过反编译等方式生成一个linux驱动 有没有捷径可以走…

查看全部问答>

请教一个简单的C51程序,

#include main() {         TMOD=0X10;         TH1=0XFE;         TL1=0X0C;         TR1=1;         ET1=1;       ...…

查看全部问答>

wince下调用软键盘的问题

在wince下调用软键盘,代码如下 void CRecorderDlg::OnBnClickedButton6() {         // TODO: Add your control notification handler code here         SipShowIM(SIPF_ON);  //Shows&nb ...…

查看全部问答>

在wince 下怎么能读取 一个像素 alpha 通道的值

我想把一个带 透明通道的bitmap作为前景贴到一个不带透明通道的背景bitmap上,试了几种方法 都不理想,包括 TransparentBlt(...),alphablend(...),还使用过maskdc 的方法,都不理想。 前两种方法把我的小的前景,拉伸到跟背景一样大;而且Transpa ...…

查看全部问答>

发个清华蓬远地取模软件

前几天取汉字模从网上下个软件,不太好,就因为取然的格式带H地,我要C语言数组地,以前用过清华蓬远的取模软件,我认为是最好地,今天翻出特发上来,大家共享,我也MARK,省得以后再找不到,呵呵…

查看全部问答>

一个晶振引发的问题

本来是51好板,就是CPU座松了,让同事搞一下变紧,拿回来突然不好用,仿真器上也不好用,本来屏幕可显开机画面,但怎么也搞不定,由于急有找了另一台机器总算把程序实验完,第二天对着这个坏板研究起来,首先是换51的40脚DIP座,小心得很,因为板上 ...…

查看全部问答>

菜农友情为STM32设计一种通用加密方法之原理

今天连续看了两篇关于加密方面的帖子,感觉自己应该友情奉献一回了~~~ 设想一种加密办法,大家看看可行吗? 关于STM32F器件电子签名以及加密问题-请指点 今日方知STM32的UID为96位即12个字节,以前知道STM32内嵌CRC32. 网上在线CRC演算工 ...…

查看全部问答>

急求一个实际应用中的反向比例运算放大电路

简要说明一下放大电路的原理和作用…

查看全部问答>