找回密码
 立即注册
查看: 784|回复: 5

STC8G1K17 用的是TSSOP20的芯片PCA功能,导致有异常情况

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 08:48:28

3

主题

5

回帖

78

积分

注册会员

积分
78
发表于 2024-7-31 17:36:43 | 显示全部楼层 |阅读模式
本帖最后由 ya123456 于 2024-8-1 08:01 编辑

STC8G1K17 用的是TSSOP20的芯片PCA功能,导致有异常情况。使用的了PCA1 PCA2两个功能引脚,没有用到ECI功能引脚(用做不用的IO口),使用中不正常,无法使用P3.4普通IO口。如果把PCA功能删了,就能正常使用P3.4引脚。请问各位大侠有没有遇到这种情况。 855.bmp
初始化是这样,没有对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);         //背光

}
//================================================================================================

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4850

回帖

8384

积分

超级版主

DebugLab

积分
8384
发表于 2024-8-1 00:06:02 | 显示全部楼层
检查CPS2、CPS1、CPS0的设置
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 08:48:28

3

主题

5

回帖

78

积分

注册会员

积分
78
发表于 2024-8-1 08:13:19 | 显示全部楼层
本帖最后由 ya123456 于 2024-8-1 08:14 编辑
Debu*** 发表于 2024-8-1 00:06
检查CPS2、CPS1、CPS0的设置

我的参考例程用的是STC8G-STC8H-LIB-DEMO-CODE-20240429版本中的“22-PCA0输出PWM-PAC1捕获-PAC2定时-STC8G”,PCA1 PCA2两个PWM模式引脚。
//==============================================================================================
/******************** 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);         //背光

}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 08:48:28

3

主题

5

回帖

78

积分

注册会员

积分
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功能初始化。
855.bmp
/******************** 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);         //背光

}
//=====================================================================



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-8-1 14:31:37 | 显示全部楼层
P3.4的IO口模式设置了吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 08:48:28

3

主题

5

回帖

78

积分

注册会员

积分
78
发表于 2024-8-1 15:54:05 | 显示全部楼层
本帖最后由 ya123456 于 2024-8-2 07:59 编辑
乘风*** 发表于 2024-8-1 14:31
P3.4的IO口模式设置了吗?
终于解决了,原来是IO定义有问题,PCA没有问题。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:11 , Processed in 0.170898 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表