📄 rgbled.c
字号:
#include "COMM.h"
#define LED_R TIM4->CCR1
#define LED_G TIM4->CCR3
#define LED_B TIM4->CCR2
//使能RGB LED的输出
//t:0,关闭输出,1,使能输出
void ENRGB(u8 t)
{
if(t)TIM4->CCER=0X0111; //OC1,2,3 输出使能
else TIM4->CCER=0X0000; //OC1,2,3 输出关闭
}
void RGBLED_Init(void)
{
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<2; //TIM4时钟使能
RCC->APB2ENR|=1<<3; //PB时钟使能
GPIOB->CRL&=0X00FFFFFF;//PB6.7输出
GPIOB->CRL|=0XBB000000;//PB6,7复用功能输出
GPIOB->CRH&=0XFFFFFFF8;//PB8输出
GPIOB->CRH|=0X0000000B;//复用功能输出
GPIOB->ODR|=0X07<<6;//PB6,7,8上拉
TIM4->ARR=500;//设定计数器自动重装值 144Khz的输出频率
TIM4->PSC=0; //预分频器不分频
TIM4->CCMR1=0X0060;//PWM1模式
//TIM4->CCR1=0X01F4; //50%占空比输出
//IM4->CCER=0X0001; //OC1 输出使能
TIM4->CCMR1|=0X6000;//PWM1模式
//TIM4->CCR2=0X0077; //37.5%占空比输出
//TIM4->CCER|=0X0010; //OC2 输出使能
TIM4->CCMR2=0X0060;//PWM1模式
//TIM4->CCR3=0X0204; //50%占空比输出
//TIM4->CCER|=0X0100;//OC3 输出使能
TIM4->CCMR1|=0X0808;//t1,2预装载使能
TIM4->CCMR2|=0X0008;//t3预装载使能
TIM4->CR1=0x0080; //ARPE使能
TIM4->CR1|=0x01; //使能定时器4
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -