OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9082|回复: 9

PWM输出实验调节输出频率

[复制链接]

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
发表于 2015-3-29 11:23:51 | 显示全部楼层 |阅读模式
5金钱

 根据

     

如果我想设置输出频率为4KHz,那么输出代码就应该是这样的:

TIM1_PWM_Init(17999,0);//不分频。PWM频率=72000/(17999+1)=4Khz 

LED0_PWM_VAL=450;

但是输出不成功!

是不是因为超过了65535,要分频,如果分频的话怎么设置?

下面是对应的代码,为什么不分频也要设置?怎样更改psc的值?

void TIM3_IRQHandler(void)
{                 
 if(TIM3->SR&0X0001)//溢出中断
 {
  LED1=!LED1;                             
 }      
 TIM3->SR&=~(1<<0);//清除中断标志位     
}
//通用定时器中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{
 RCC->APB1ENR|=1<<1; //TIM3时钟使能   
  TIM3->ARR=arr;   //设定计数器自动重装值
 TIM3->SC=psc;   //预分频器设置
 TIM3->DIER|=1<<0;   //允许更新中断    
 TIM3->CR1|=0x01;    //使能定时器3
   MY_NVIC_Init(1,3,TIM3_IRQn,2);//抢占1,子优先级3,组2         
}
//TIM1_CH1 PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM1_PWM_Init(u16 arr,u16 psc)
{        
 //此部分需手动修改IO口设置
 RCC->APB2ENR|=1<<11;  //TIM1时钟使能   
 GPIOA->CRH&=0XFFFFFFF0; //PA8清除之前的设置
 GPIOA->CRH|=0X0000000B; //复用功能输出
 
 TIM1->ARR=arr;   //设定计数器自动重装值
 TIM1->SC=psc;   //预分频器设置
 
 TIM1->CCMR1|=7<<4;   //CH1 PWM2模式  
 TIM1->CCMR1|=1<<3;   //CH1预装载使能 
  TIM1->CCER|=1<<0;    //OC1 输出使能   
 TIM1->BDTR|=1<<15;    //MOE 主输出使能   

 TIM1->CR1=0x0080;    //ARPE使能
 TIM1->CR1|=0x01;     //使能定时器1            



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
 楼主| 发表于 2015-3-29 11:25:26 | 显示全部楼层
如果占空比为50%,也超过65535,用不用分频,该怎么作? 新手求回复!
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5757
金钱
5757
注册时间
2013-11-22
在线时间
1208 小时
发表于 2015-3-29 13:51:12 | 显示全部楼层
占空比太小了,pwm输出高点电平了,led是低电平点亮,试着把LED0_PWM_VAL改到10000试试
回复

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
 楼主| 发表于 2015-3-29 20:33:18 | 显示全部楼层
用示波器看,没有输出,老师说可能是17999超过65536!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-3-29 22:53:24 | 显示全部楼层
回复【4楼】佚居士:
---------------------------------
17999怎么会超过65536...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5757
金钱
5757
注册时间
2013-11-22
在线时间
1208 小时
发表于 2015-3-29 23:09:43 | 显示全部楼层
回复【4楼】佚居士:
---------------------------------
我读书少  别骗我
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-3-29 23:14:47 | 显示全部楼层
回复【4楼】佚居士:
---------------------------------
我小学的时候每学期都是三好学生,努力学习考上了我们那里的好初中,又努力的学习考上了我们市最好的高中,但是高中没有好好学习,没有考上好的大学,但还是考上了一个大学,努力的完成了学习,为什么要说这些呢,因为要告诉你,我其实是读了很多书的,所以我很负责任的告诉你:17999超过65536是不可能滴!!!说了,我读书很多的。
开往春天的手扶拖拉机
回复

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
 楼主| 发表于 2015-3-31 21:45:57 | 显示全部楼层
回复【7楼】zuozhongkai:
---------------------------------
不好意思 !
回复

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
 楼主| 发表于 2015-3-31 21:46:21 | 显示全部楼层
回复【6楼】lycreturn:
---------------------------------
自己忘记看仪看 了  !
回复

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-2-9
在线时间
0 小时
 楼主| 发表于 2015-3-31 21:46:41 | 显示全部楼层
回复【6楼】lycreturn:
---------------------------------
不好意思,没看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表