初级会员

- 积分
- 71
- 金钱
- 71
- 注册时间
- 2014-7-10
- 在线时间
- 0 小时
|
5金钱
void PWM_Init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<3; //使能PORTB时钟
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽输出
GPIOA->ODR|=1<<8; //PA8 输出高
GPIOA->CRL&=0X0FFFFFFF;//PA7输出
GPIOA->CRL|=0XB0000000;//复用功能输出
GPIOA->ODR|=1<<7;//PA7上拉
GPIOB->CRL&=0XFFFFFFF0;
GPIOA->CRL|=0X00000003;//PB0
GPIOB->ODR|=1;
GPIOA->CRL&=0XFFFFFF0F; //PB1
GPIOA->CRL|=0X00000030;
GPIOA->ODR|=1<<1;
TIM3->ARR=arr;//设定计数器自动重装值
TIM3-> SC=psc;//预分频器
TIM3->CCMR1|=6<<12; //CH2 PWM1模式
TIM3->CCMR1|=1<<11; //CH2预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
//以下为重复程序
TIM3->CCMR1|=6<<4;
TIM3->CCMR1|=1<<3;
TIM3->CCER|=1;
TIM3->CCMR2|=6<<12;
TIM3->CCMR2|=1<<11;
TIM3->CCER|=1<<8;
TIM3->CCMR2|=6<<4;
TIM3->CCMR2|=1<<3;
TIM3->CCER|=1<<12;
TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
}
在网上找的通道的输出IO口,不知道对不对。请问一下各通道的输出IO口在哪查找啊?
上面的程序检测了PA7,8,PB0 , 1 ,
只有PA7正常输出。
求解释。
程序源码见附件。
|
最佳答案
查看完整内容[请看2#楼]
回复【2楼】正点原子:
---------------------------------
多谢,已经搞好了。
|