STM32F030C8T6单片机PWM呼吸灯寄存器配置:
TIM3_CR1:控制寄存器
BIT8~BIT9:CKD
与外部输入时钟有关,不使用外部时钟输入,所以不操作BIT8~BIT9,设置为00
BIT7:ARPE
预装使能,置1有缓冲器,置0无缓冲器。
BIT6:CMS:
默认边沿对齐模式,使用边沿对齐模式,默认值00
BIT5:DIR:
计数器的计数方向,默认0,表示向上计数。
BIT4:OPM
单脉冲模式使能,默认0,默认不使能单脉冲模式。
BIT3:URS
更新请求源,默认不实用请求源,这里不需要产生中断或DMA事件,设置为默认值0
BIT2:UDIS
禁止更新位,需要连续PWM信号,所以重复更新事件产生,置0
BIT1:CEN
使能计数,在单脉冲模式下,CEN位会自动清除
总结:TIM3_CR1寄存器中ARPE=1,CEN=1
TIM3_CCMR2 捕捉比较模式寄存器2
BIT7:OC3CE:
输出比较清除允许,不需要清除输出比较,默认为0
BIT4~BIT6:OC3M
设置工作模式,设置为110,设置为PWM模式1,CNTCCR,输出低,
BIT3:OC3PE
输出预装使能,置1,对CCR的读写操作,仅对预装寄存器操作,当更新事件来的时候才送到影子寄存器中
BIT2:OC3FE:
输出比较快速使能,置1,可以加快输出对触发器对输入事件的快速响应,这里设置为0
BIT0~BIT1:CC3S
配置输入输出放向,默认00就是输出方向。
总结:TIM3_CCMR2寄存器中OC3M =110 OC3PE = 1
TIM3_CCER :捕捉比较使能寄存器
BIT11:CCNP
定时器3通道3配置为输出,默认是0。
BIT9:CC3P
设置比较器输出极性,0为高有效,1为低有效,这里设置0为高有效
BIT8:CC3E
使能比较输出,设置为1,开启使能输出
TIM3_CNT :表示定时器的计数器值(十六位数)
定时器开启时,这个寄存器的值一直在递增。初始化时,初始化为0。
TIM3_PSC:预分频寄存器 有影子寄存器
这里设置为0,不使用预分频寄存器,不分频。
TIM3_ARR:自动加载寄存器 有影子寄存器
用来设置PWM的周期长度。这里设置为7999,为1毫秒长度的周期。
TIM3_CCR3:捕捉比较寄存器3
用来设置PWM的占空比
总结:
设置TIM3_CH3产生PWM
1、设置GPIOB时钟使能
RCC_AHBENR |= 0X00040000
GPIOB_AFRL =0X00000001 //GPIOx_AFRL查规格书
2、设置PB0复用功能
GPIOB_MODER = 0X00000002
3、设置TIM3时钟使能
RCC_AHB1ENR |= 0X00000002
4、CCMR2
5、ARR =7999
6、CCER
7、CNT=0
8、CR1