|
发表于 2018-12-26 14:48:47
|
显示全部楼层
1、GPIO配置
GPIO_Init(PORTB ,PIN5 , GPIO_MODE_ALTERNATE_FUNCTION , MODE_ALTERNATE_SELECT_1);//PWM输出
2、LPTIM配置
/*************************************************************************
函数名称:LPTIM_PWM
功能说明: LLPTIM PWM输出 (PB5输出) 输出频率自行修改 示例使用 2KHz
输入参数:无
输出参数:无
返回参数:无
*************************************************************************/
void LPTIM_PWM(void)
{
LPTCTRL = 0;//关闭计数器
LPTCFG0 = B0000_0000;//清0
LPTCFG1 = B0000_0000;//清0
/*时钟源选择*/
LPTCFG0 |= LPTIM_CNT_SRC_LSCLK;//时钟lsclk,外部32768时钟
// LPTCFG0 |= LPTIM_CNT_SRC_CORECLK;//核心频率时钟,程序运行时钟,默认8M
/*时钟分频*/
LPTCFG0 |= LPTIM_CNT_CLK_DIV1;//1分频
/*工作模式选择*/
LPTCFG1 |= LPTIM_MODE_WAVE_OUT_TIMER;//带波形输出的普通定时器模式
/*计数模式选择*/
LPTCFG1 |= LPTIM_CNT_MODE_CONTINUE;//连续计数模式
/*输出模式选择(PB5脚输出,工作模式需选择带波形输出的普通定时器模式)*/
LPTCFG1 |= LPTIM_PWM_WAVE_OUT;//pwm输出模式
LPTCFG1 |= LPTIM_POS_POL_OUT;//输出波形正极性
//LPTCFG1 |= LPTIM_NEG_POL_OUT;//输出波形负极性
LPTCNTL = 0x00; //计数寄存器
LPTCNTH = 0x00;
LPTCMPL = 0x08; //比较寄存器 //计数到这反转
LPTCMPH = 0x00;
TARGETL = 0x10; //目标寄存器(溢出寄存器)//计数到这再次反转,并清计数器
TARGETH = 0x00;
LPTIMIF = B0000_0000;//清标志
LPTIMIE = B0000_0000;//不中断
} |
|