OpenEdv-开源电子网

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

设置timer4的通道CH1,即PB6为PWM输出,程序如下,但输出为高电平,请问何故?

[复制链接]

27

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2012-12-4
在线时间
0 小时
发表于 2013-3-2 20:12:50 | 显示全部楼层 |阅读模式
5金钱

void PWM_Init(u16 arr,u16 psc)
{        
 //此部分需手动修改IO口设置
 RCC->APB1ENR|=1<<2;       //TIM4时钟使能   

// GPIOA->CRH&=0XFFFFFFF0;//PA8输出
// GPIOA->CRH|=0X00000004;//浮空输入
    
 GPIOB->CRL&=0XF0FFFFFF;//PB6输出
 GPIOB->CRL|=0X0B000000;//复用功能输出   
 GPIOB->ODR|=1<<6;//PB6上拉 

 TIM4->ARR=arr;//设定计数器自动重装值
 TIM4->SC=psc;//预分频器不分频
 
 TIM4->CCMR1|=7<<4;  //CH1 PWM2模式  
 TIM4->CCMR1|=1<<3; //CH1预装载使能   

 TIM4->CCER|=1<<0;   //OC1 输出使能   

 TIM4->CR1=0x8000;   //ARPE使能
 TIM4->CR1|=0x01;    //使能定时器4           
}   

主程序中调用为:
PWM_Init(800,0);

最佳答案

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

1,PB时钟貌似没使能. 2,TIM4->CCR1没赋值.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-3-2 20:12:51 | 显示全部楼层
1,PB时钟貌似没使能.
2,TIM4->CCR1没赋值.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

27

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2012-12-4
在线时间
0 小时
 楼主| 发表于 2013-3-3 10:33:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
非常感谢原子哥,是因为TIM4->CCR1没有赋值
回复

使用道具 举报

16

主题

253

帖子

0

精华

高级会员

Rank: 4

积分
565
金钱
565
注册时间
2013-10-16
在线时间
52 小时
发表于 2014-5-5 11:13:30 | 显示全部楼层
谢谢楼主分享,我也想要PB6+TIM4_CH1输出PWM,可以实现了,
然后想用库函数的方法来驱动,
TIM3_PWM_Init(899,0);
while(1)
{
TIM_SetCompare2(TIM3,pwmval);
}
这种形式就更好用了,直接改pwmval,就可以改变占空比
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-10 10:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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