Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1111
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2017-05-07 09:31
个人简介

喜欢书法的的程序员

文章分类

全部博文(1)

文章存档

2017年(1)

我的朋友
最近访客

分类: 嵌入式

2017-05-07 10:01:00

首先在STM32库函数里有这样一个函数
void TIM3_PWM_Init(u16 arr,u16 psc)

若TIM3_PWM_Init(7200,100)//设置频谱7200.分频100

我们初始化定时器得到得频率为PWM频率=72000000/7200=10000hz   10000/100=100hz;
TIM_SetCompare2(TIM3,pwmval);函数调节占空比;
占空比为arr/pwmval;

占空比在主循环里可修改通过TIM_SetCompare2(TIM3,pwmval);

若想要在程序进程中修改频率需要函数TIM_SetAutoreload(TIM3,arr); 
这个函数就是手动更改 TIMx->ARR 的意思     
使能预装载ARPE 可以保证ARR在 更新事件到来时(或者你说的周期结束) 被 送到影子寄存器
如果不使能ARPE,  写入的ARR值立即生效;

所以最终在程序进程中修改我们的pwm需要通过
TIM_SetCompare2(TIM3,pwmval);
TIM_SetAutoreload(TIM3,arr);
两个函数实现。
阅读(52) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~