- 打卡等级:初来乍到
- 打卡总天数:1
- 最近打卡:2025-04-01 08:48:28
注册会员
- 积分
- 78
|
发表于 2024-8-1 11:30:48
|
显示全部楼层
使用STC8G1K17(TSSOP20)芯片的PCA功能做PWM输出,没有使用ECI功能但是有异常
STC8G1K17 用的是TSSOP20的芯片PCA功能,有异常情况。使用的了PCA1(P3.6)、 PCA2(P3.7)两个功能引脚,没有用到ECI(P3.4)功能引脚(做普通的IO口使用),使用中不正常,无法使用P3.4普通IO口。如果把PCA功能删了,就能正常使用P3.4引脚。请问各位大侠有没有遇到这种情况。
参考例程用的是STC8G-STC8H-LIB-DEMO-CODE-20240429版本中的“22-PCA0输出PWM-PAC1捕获-PAC2定时-STC8G”,PCA1 PCA2两个端口都使用PWM模式。
初始化是这样,没有对P3.4的ECI功能初始化。
/******************** PCA IO口配置 ********************/
void PCA_GPIO_config(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //结构定义
GPIO_InitStructure.Pin = GPIO_Pin_6 | GPIO_Pin_7; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作
GPIO_InitStructure.Mode = GPIO_PullUp; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure); //初始化
}
/******************** PCA配置 ********************/
void PCA_config(void)
{
PCA_InitTypeDef PCA_InitStructure;
PCA_InitStructure.PCA_Clock = PCA_Clock_1T; //PCA_Clock_1T, PCA_Clock_2T, PCA_Clock_4T, PCA_Clock_6T, PCA_Clock_8T, PCA_Clock_12T, PCA_Clock_Timer0_OF, PCA_Clock_ECI
PCA_InitStructure.PCA_RUN = DISABLE; //ENABLE, DISABLE
PCA_Init(PCA_Counter,&PCA_InitStructure); //设置公用Counter
PCA_InitStructure.PCA_PWM_Wide = PCA_PWM_8bit; //PCA_PWM_8bit, PCA_PWM_7bit, PCA_PWM_6bit, PCA_PWM_10bit
PCA_InitStructure.PCA_Value = 128 << 8; //对于PWM,高8位为PWM占空比
PCA_Init(PCA1,&PCA_InitStructure);
PCA_InitStructure.PCA_PWM_Wide = PCA_PWM_8bit; //PCA_PWM_8bit, PCA_PWM_7bit, PCA_PWM_6bit, PCA_PWM_10bit
PCA_InitStructure.PCA_Value = 128 << 8; //对于PWM,高8位为PWM占空比
PCA_Init(PCA2,&PCA_InitStructure);
NVIC_PCA_Init(PCA_Counter,DISABLE,Priority_0);
NVIC_PCA_Init(PCA1,PCA_Mode_PWM,Priority_0); //PWM
NVIC_PCA_Init(PCA2,PCA_Mode_PWM,Priority_0); //PWM
PCA_SW(PCA_P34_P35_P36_P37); //PCA_P12_P11_P10_P37,PCA_P34_P35_P36_P37,PCA_P24_P25_P26_P27
CR = 1; //启动PCA
pwm2 = 128;
B_PWM0_Dir = 0;
B_PWM0_Dir = 0; UpdatePcaPwm(PCA1,pwm2); //对比度
B_PWM0_Dir = 0; UpdatePcaPwm(PCA2,pwm2); //背光
}
//=====================================================================
|
|