历史上的今天
返回首页

历史上的今天

今天是:2024年09月03日(星期二)

正在发生

2021年09月03日 | STM8S003 STM8S103 PWM实现

2021-09-03 来源:eefocus

通过仔细看stm8参考手册里有关pwm这一节,我们可以根据手册上的讲解,很容易配置出来一个pwm通道。


具体讲解下,首先看参考手册17.5.7 pwm模式这一节,这一节是针对TIM1定时器来实现的pwm:

pwm

通过看这些内容,我们知道如下信息:

1:设置TIM1_ARR寄存器设定频率,TIM1_CCR1确定占空比;

至于为何通过TIM1_ARR来设定寄存器频率,可以参考如下图:

pwm_1

看完上图就知道这个计数器的频率公式为:

F = 时钟频率/(预装载计数+1)

2:TIM1_CCMR1寄存器的OC1M位写入110或者111来确定PWM模式1或者2,而且,必须设置TIM1_CCMR1寄存器的OC1PE位使能预装载寄存器,也可以设置TIM1_CR1寄存器的ARPE位使能自动重装预装载寄存器;

3:必须通过设置TIM1_EGR寄存器的UG位来初始化寄存器。

知道如上信息后,我们针对TIM1的通道3设置为pwm,占空比位50%,代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include
 
#ifndef BIT
    #define BIT(n)    (1<<(n))
#endif
 
void pwm320k(void)
{
    TIM1_CR1 &= ~BIT(0);   //关闭TIM1
    //
    TIM1_PSCRH = 0;
    TIM1_PSCRL = 0;        //不分频16MHz
    //
    TIM1_ARRH = 0;
    TIM1_ARRL = 49;        //16MHz/(49+1) = 320KHz
    //
    TIM1_CR1 |= BIT(7);    //使能ARP
    TIM1_EGR |= BIT(0);    //更新TIM1,使PSC有效
    //
    TIM1_CCR3H = 0;
    TIM1_CCR3L = 25;       //占空比50%
    //
    TIM1_CCMR3 = 104;      //配置TIM1_CH3为PWM1模式输出
    //
    TIM1_CCER2 |= BIT(0);  //使能TIM1_CH3通道
    //
    TIM1_CR1 |= BIT(0);    //使能TIM1
 
    TIM1_BKR |= BIT(7);    //禁止刹车
}
 
//***********端口配置******************/
void IO_Config(void) {     
    //接收端led定义
    PC_DDR |= 0X08;     //设置PA3端口为输出模式
    PC_CR1 |= 0X08;     //设置PA3端口为推挽输出模式
}
/***********************************/
 
void main() {
    IO_Config();
    while (1) {
        pwm320k();
    }
}


推荐阅读

史海拾趣

骏晔科技(DreamLNK)公司的发展小趣事

骏晔科技非常重视知识产权的积累与保护。公司拥有一支专业的研发团队,致力于新产品的研发和技术创新。同时,公司还积极申请专利和软件著作权,保护自身的技术成果。截至目前,骏晔科技已经拥有8个专利信息和12个软件著作权,这些知识产权的拥有,为公司的发展提供了强有力的支撑。

Chipcon AS公司的发展小趣事

面对日益激烈的市场竞争,Chipcon AS公司积极寻求与其他企业的技术合作。通过与一家知名的半导体公司建立战略合作关系,双方共同研发了一款具有划时代意义的智能传感器芯片。这款芯片不仅集成了多种传感器功能,还具备高度集成和智能化的特点,为物联网领域的发展提供了有力支持。通过技术合作,Chipcon AS公司不仅提升了自身的技术实力,还拓展了市场份额。

Aavid Niagra公司的发展小趣事

近年来,电子行业正经历着深刻的变革,新兴技术的不断涌现对传统散热技术提出了严峻挑战。Aavid Niagra公司面对这一变革,积极调整战略方向,加大在新兴技术领域的研究力度。通过与高校、研究机构的合作,公司成功研发出了一系列适应新兴技术需求的散热产品,成功应对了行业变革带来的挑战。

Comus_International公司的发展小趣事

随着时间的推移,Comus International的产品逐渐从最初的恒温器开关拓展到更广泛的领域。如今,公司的产品已经广泛应用于医疗、汽车、白色家电、警报和安全以及军事/航空航天等多个领域。这种多元化的应用领域不仅增加了公司的收入来源,也提高了公司的市场影响力。

Cynergy 3公司的发展小趣事

Cynergy 3公司最初以生产干簧开关起家,位于英国多塞特郡的工厂见证了公司从一个小型制造商到全球领先者的蜕变。通过不断创新和改进,Cynergy 3的干簧继电器产品逐渐获得了市场的认可。公司注重产品质量和可靠性,确保每一个出厂的产品都能达到最高的标准。这种对质量的坚持使得Cynergy 3在竞争激烈的电子行业中脱颖而出。

AF International公司的发展小趣事

随着公司业务规模的不断扩大,AF International意识到建立完善的质量管理体系至关重要。公司引进了先进的质量管理理念和方法,建立了严格的质量控制流程,确保从原材料采购到产品生产的每一个环节都符合质量标准。同时,AF International还加强了对员工的培训和教育,提高员工的质量意识和操作技能。这些措施使得公司的产品质量得到了有效保障,赢得了客户的广泛赞誉。

问答坊 | AI 解惑

DIY心型LED的活动,,七夕的最好礼物!

点击图标查看详细?嘿嘿 [ 本帖最后由 aldd 于 2008-8-2 00:34 编辑 ]…

查看全部问答>

芯片资料

各位好!目前我手上有个贴片元件,封装为SOT-23-5,元件表面丝印内容简单标注为A1,不知大伙可否遇到过类似元件,求该元件的技术资料,非常感谢!      hgpwgp@yahoo.com.cn…

查看全部问答>

烧写NK的时候出现的错误,附串口消息

我直接从韩国下载的 MP2530F的BSP,编译能通过,在烧写完NK.NB0的时候进入不了系统,串口消息如下,请各位大侠帮我看一下怎么回事,谢谢 NK.nb0 will be downloaded 31457280 bytes at 0x400000 Now, Downloading [ADDRESS:400000h, TOTAL:0x01E0 ...…

查看全部问答>

pocket pc 与 webservice 连接方式?

初识智能设备,要做一个pda点菜系统,我现在用的是vs2005,建的是pocket pc项目,问我应该怎么让pda与webservice连接? 1、在pda端是new一个成员webservice引用还是每进行一个操作new一个局部ws的引用(这样会不会影响效率)? 2、如果是nwe一个成 ...…

查看全部问答>

液晶黑屏

我用的液晶显示器平时显示是正确的 但是偶尔会在初始化之后黑屏了 这样就看不到屏上的信息了 请高手指点一下!! 谢谢…

查看全部问答>

关于PWM的问题!!!

我今天看了周立功的213X的书,PWM(脉宽调制器),里面说到PWMX有单边缘控制模式和双边缘控制模式,请问大侠们这里的单边缘和双边缘是是什么意思?????…

查看全部问答>

从SIM卡上获取语音信箱号码

大家好!    请问大家有人知道,如何获得存放在SIM卡上的语音信箱号码吗?因为有些SIM卡将语音信箱号码预先设置到了SIM卡的某个地方,我现在想把这个号码取出来.那如何做到呢?    在GSM11.11规范中有EF-SDN(6F49)着个文件, 但是 ...…

查看全部问答>

关于用QuartusII仿真的问题??????

今天遇到一个奇怪的问题:用QuartusII仿真的时候,波形图总是不会出现时钟,就只有电平而已,但是程序确定无误是设定了时钟类型的,仿真的时候也设定了,但就是仿真不了!到底是什么问题呢??…

查看全部问答>

PIC单片机的应用设计技巧(转)

PIC单片机的应用设计技巧(转)   document.write(overlap1); 美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是 ...…

查看全部问答>

关于ARM开发板

最近想弄块A8或者ARM11的板子玩玩,不知道大家都有没有兴趣如果人多,我们可以组织团购!!~…

查看全部问答>