STM32F030C8T6单片机PWM呼吸灯寄存器配置

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

上一篇:Go使用Govendor


下一篇:Golang包管理工具govendor的使用&go mod