历史上的今天
今天是:2024年09月03日(星期二)
2021年09月03日 | STM8S003 STM8S103 PWM实现
2021-09-03 来源:eefocus
通过仔细看stm8参考手册里有关pwm这一节,我们可以根据手册上的讲解,很容易配置出来一个pwm通道。
具体讲解下,首先看参考手册17.5.7 pwm模式这一节,这一节是针对TIM1定时器来实现的pwm:

通过看这些内容,我们知道如下信息:
1:设置TIM1_ARR寄存器设定频率,TIM1_CCR1确定占空比;
至于为何通过TIM1_ARR来设定寄存器频率,可以参考如下图:

看完上图就知道这个计数器的频率公式为:
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(); } } |
上一篇:STM8S103 IO口控制
下一篇:STM8使用TIM1测量PWM波
史海拾趣
|
我直接从韩国下载的 MP2530F的BSP,编译能通过,在烧写完NK.NB0的时候进入不了系统,串口消息如下,请各位大侠帮我看一下怎么回事,谢谢 NK.nb0 will be downloaded 31457280 bytes at 0x400000 Now, Downloading [ADDRESS:400000h, TOTAL:0x01E0 ...… 查看全部问答> |
|
初识智能设备,要做一个pda点菜系统,我现在用的是vs2005,建的是pocket pc项目,问我应该怎么让pda与webservice连接? 1、在pda端是new一个成员webservice引用还是每进行一个操作new一个局部ws的引用(这样会不会影响效率)? 2、如果是nwe一个成 ...… 查看全部问答> |
|
大家好! 请问大家有人知道,如何获得存放在SIM卡上的语音信箱号码吗?因为有些SIM卡将语音信箱号码预先设置到了SIM卡的某个地方,我现在想把这个号码取出来.那如何做到呢? 在GSM11.11规范中有EF-SDN(6F49)着个文件, 但是 ...… 查看全部问答> |
|
今天遇到一个奇怪的问题:用QuartusII仿真的时候,波形图总是不会出现时钟,就只有电平而已,但是程序确定无误是设定了时钟类型的,仿真的时候也设定了,但就是仿真不了!到底是什么问题呢??… 查看全部问答> |
|
PIC单片机的应用设计技巧(转) document.write(overlap1); 美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是 ...… 查看全部问答> |




