- 打卡等级:偶尔看看I
- 打卡总天数:17
- 最近打卡:2026-03-03 21:17:07
中级会员
- 积分
- 240
|
芯片:STC8H4K64TL
使用引脚 :P1.0,P1.1,P1.4,P1.5,P1.6是触摸按钮 。
同时,还启用了数码管的功能。
现在要从P1.3引脚输入PWM波,用来控制加热功能的。
如果没有启用PWM初始化函数,触摸数码管正常,触摸也正常。如果启用了,触摸钮,就不能用了。
/*************** PWM初始化函数 *****************/
void PWM_config(void) //如果不是互补输出,要使用pwm的N 端输出信号
{
PWMx_InitDefine PWMx_InitStructure;
PWMx_InitStructure.PWM_Mode = CCMRn_PWM_MODE1; //模式, CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
PWMx_InitStructure.PWM_Duty = PWMA_Duty.PWM2_Duty; //PWM占空比时间, 0~Period
PWMx_InitStructure.PWM_EnoSelect = ENO2N ; //输出通道选择, ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
PWM_Configuration(PWM2, &PWMx_InitStructure); //初始化PWM, PWMA,PWMB
// PWMx_InitStructure.PWM_Mode = CCMRn_PWM_MODE1; //模式, CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
// PWMx_InitStructure.PWM_Duty = PWMA_Duty.PWM4_Duty; //PWM占空比时间, 0~Period
// PWMx_InitStructure.PWM_EnoSelect = ENO4N; //输出通道选择, ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
// PWM_Configuration(PWM4, &PWMx_InitStructure); //初始化PWM, PWMA,PWMB
PWMx_InitStructure.PWM_Period = 2046; //周期时间, 0~65535 1500:8K
PWMx_InitStructure.PWM_DeadTime = 0; //死区发生器设置, 0~255
PWMx_InitStructure.PWM_MainOutEnable= ENABLE; //主输出使能, ENABLE,DISABLE
PWMx_InitStructure.PWM_CEN_Enable = ENABLE; //使能计数器, ENABLE,DISABLE
PWM_Configuration(PWMA, &PWMx_InitStructure); //初始化PWM通用寄存器, PWMA,PWMB
// PWM1_SW(PWM1_SW_P20_P21); //PWM1_SW_P10_P11,PWM1_SW_P20_P21,PWM1_SW_P60_P61
PWM2_SW(PWM2_SW_P12_P13); //PWM2_SW_P12_P13,PWM2_SW_P22_P23,PWM2_SW_P62_P63
// PWM4_SW(PWM4_SW_P26_P27);
NVIC_PWM_Init(PWMA,DISABLE,Priority_0);
}
可以帮看下,是哪没有设置好吗?
|
|