void TIM3_PWM_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1; //TIM3 时钟使能
RCC->APB2ENR|=1<<3; //使能 PORTB 时钟
GPIOB->CRL&=0XFF0FFFFF; //PB5 输出
GPIOB->CRL|=0X00B00000; //复用功能输出
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XFFFFF3FF; //清除 MAPR 的[11:10]
AFIO->MAPR|=1<<11; //部分重映像,TIM3_CH2->
B5
TIM3->ARR=arr; //设定计数器自动重装值
TIM3->
SC=psc; //预分频器不分频
TIM3->CCMR1|=7<<12; //CH2 PWM2 模式
TIM3->CCMR1|=1<<11; //CH2 预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CR1=0x0080; //ARPE 使能
TIM3->CR1|=0x01; //使能定时器 3
}
还有就是四路PWM都分别可调吗?
每路PWM都是可调的.
参考下下面的帖子:http://www.openedv.com/posts/list/7235.htm
{
RCC->APB1ENR|=1<<1; //TIM3时钟使能
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=0X04000000; //关闭JTAG
GPIOA->CRL&=0X00FFFFFF;//PA7.PA6输入
GPIOA->CRL|=0X88000000;//下拉输入
GPIOA->ODR|=1<<7;//PA7上拉
GPIOA->ODR|=1<<6;//PA7上拉
Ex_NVIC_Config(GPIO_A,7,FTIR); //上升沿触发
Ex_NVIC_Config(GPIO_A,6,FTIR);//上升沿触发
TIM3->ARR=arr;//设定计数器自动重装值
TIM3->CCMR1|=1<<0; //CC1S=01
TIM3->CCMR1|=1<<8; //CC2S=01
TIM3->CCER|=0<<1; //CC1P=0
TIM3->CCER|=0<<5; //CC2P=0
TIM3->SMCR|=3<<0; //SMS=011
TIM3->CR1|=1<<0;; //CEN使能
TIM3->CR1|=0x01; //使能定时器3
}
怎么是设置成输入模式啊? 不是输出模式吗? 而且TIM3->CR1这个寄存器都没见有介绍
---------------------------------
不好意思,我很忙.
论坛有网友写了多路PWM的代码,你搜索找找了.
---------------------------------
E嗯 已经可以了 映射的话有些引脚是没有输出的 不知道怎么设置
---------------------------------
映射的话你要看你的那款芯片是否支持。芯片手册里有,在多功能复用寄存器那块
一周热门 更多>