OpenEdv-开源电子网

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

希望用定时器TIME4_CH3,TIME4_CH4的PWM功能分别产生不同频率的问题请教,谢谢啦!!

[复制链接]

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-8-2
在线时间
0 小时
发表于 2015-3-24 21:56:52 | 显示全部楼层 |阅读模式
5金钱
大家好,我希望用定时器TIME4_CH3,TIME4_CH4的PWM功能分别产生不同频率,例如8000HZ和9000HZ,但用示波器观察所输出的波形均为相同的频率,不知道这个思路对吗?能够实现吗?下面是我的程序请大家给我看看,有什么问题,谢谢啦

一、主程序
int main(void)
{
Stm32_Clock_Init(9);   //系统时钟设置
delay_init(72);     //延时初始化  
TIM4_PWM_CH3_Init();   //不分频。PWM频率=72000/(8999+1)=8Khz
TIM4_PWM_CH4_Init();   //不分频。PWM频率=72000/(7999+1)=9Khz  

while(1)
{  

}
   
}

二、两个子程序
void TIM4_PWM_CH3_Init(void)
{

RCC->APB1ENR|=1<<2; //TIM4时钟使能    
RCC->APB2ENR|=1<<3;     //使能PORTB.8时钟
GPIOB->CRH&=0XFFFFFFF0; //PB.8输出,TIM4_CH3
GPIOB->CRH|=0X00000003; //复用功能输出   
RCC->APB2ENR|=1<<0;     //开启辅助时钟

TIM4->ARR=8999;//arr; //设定计数器自动重装值,PWM频率=72000/(8999+1)=8Khz 
TIM4->SC=0;//psc; //预分频器不分频

TIM4->CCMR2|=6<<4;   //CH3 PWM3模式  
TIM4->CCMR2|=1<<3;    //CH3预装载使能  
TIM4->CCR3=4000;        //固定值占空比,形成方波;  

TIM4->CCER|=1<<9;   //CC3P 输入/捕获3输出使能
TIM4->CCER|=1<<8;   //CC3E 输出使能
 
TIM4->CR1=0x0080;   //ARPE使能 
TIM4->CR1|=0x01;     //使能定时器    
}    


void TIM4_PWM_CH4_Init(void)
{  
   
RCC->APB1ENR|=1<<2; //TIM4时钟使能    
RCC->APB2ENR|=1<<3;     //使能PORTB时钟   

GPIOB->CRH&=0XFFFFFF0F; //PB.9输出,TIM4_CH4
GPIOB->CRH|=0X00000030; //复用功能输出   
RCC->APB2ENR|=1<<0;     //开启辅助时钟

TIM4->ARR=7999; //设定计数器自动重装值,PWM频率=72000/(7999+1)=9Khz 
TIM4->SC=0; //预分频器不分频  

TIM4->CCMR2|=6<<12;   //CH4 PWM4模式  
TIM4->CCMR2|=1<<11; //CH4预装载使能  
TIM4->CCR4=4500;        //固定值占空比,形成方波;  

TIM4->CCER|=1<<13;      //CC4P:输入/捕获4输出极性
TIM4->CCER|=1<<12;   //CC4E:输入/捕获4输出使能
 
TIM4->CR1=0x0080;   //ARPE使能 
TIM4->CR1|=0x01;     //使能定时器4  
}  

最佳答案

查看完整内容[请看2#楼]

用输出比较模式,可以。但是要不停的中断。比较麻烦。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-24 21:56:53 | 显示全部楼层
用输出比较模式,可以。但是要不停的中断。比较麻烦。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11558
金钱
11558
注册时间
2014-4-1
在线时间
1318 小时
发表于 2015-3-24 22:23:52 | 显示全部楼层
一个定时器,应当做不到。
回复

使用道具 举报

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2015-3-25 22:18:34 | 显示全部楼层
谢谢大家,很感谢!!
回复

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-3-26
在线时间
0 小时
发表于 2015-3-26 18:42:04 | 显示全部楼层
你好,我想问一下,这个程序能使pwm输出方波吗?如果使pwm产生正弦波,应该怎么改呢??
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 15:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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