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

Ai8G1K08A芯片使用(初学遇到问题)

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-16 10:02:12
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 7 天前 | 显示全部楼层 |阅读模式
Ai8G1K08A芯片使用(初学遇到问题)

#include "STC8G.h"
void main(void)
{
   
    P3M0 |= 0x08;
    P3M1 &= 0xF7;
   
    while(1)
    {
        unsigned int i,j;
        P3 |= 0x08;   
        
      
        for(i=0;i<2000;i++)
            for(j=0;j<112;j++);
        
        P3 &= ~0x08;  
      
        for(i=0;i<2000;i++)
            for(j=0;j<112;j++);
    }
}

我设置了2秒反转一次p3.3IO口,,用下载软件下载进去了,发现远没有两秒,感觉0.5秒就来回反转了,哪里出问题了


回复

使用道具 举报 送花

3

主题

2031

回帖

910

积分

等待验证会员

积分
910
发表于 7 天前 | 显示全部楼层
STCG1K08A芯片是国芯科技推出的一款高性能、低功耗的8位单片机,适用于多种嵌入式应用。您在使用过程中遇到的问题可能与代码编写或硬件配置相关。以下是对您提供的代码片段的分析及建议。

首先,您引用了头文件“STC8Gh”,但该文件通常用于STC8G系列芯片,而STCG1K08A属于STC8H系列,正确的头文件应为“STC8H.h”。请确保您的开发环境已正确配置,并使用对应的头文件以避免编译错误。

接下来,您设置了P3M0和P3M1寄存器,将P3.3配置为推挽输出模式。这一部分逻辑正确,但需要注意的是,在实际应用中,还需根据具体需求设置其他引脚的功能。此外,P3端口的部分引脚具有复用功能,如串口、定时器等,需确保未与其他功能冲突。

在主循环中,您尝试通过P3 |= 0x08; 设置P3.3为高电平,但由于P3M0和P3M1的配置,该操作仅对P3.3有效。如果您的目标是控制某个外设(如LED),请确保该引脚连接正确,并检查外部电路是否正常。

关于循环中的变量i和j,您未完成循环体。建议补充完整代码逻辑,例如延时或状态检测,以实现预期功能。同时,注意变量类型的选择,避免因溢出导致程序异常。

最后,建议您参考国芯科技提供的官方文档和示例代码,了解STCG1K08A的具体寄存器配置及使用方法。如有进一步问题,可联系技术支持团队获取详细帮助。

综上所述,正确配置头文件、合理设置引脚模式,并完善代码逻辑是解决当前问题的关键。希望以上建议对您有所帮助。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:303
  • 最近打卡:2025-08-23 00:13:14
已绑定手机

13

主题

188

回帖

1837

积分

金牌会员

积分
1837
发表于 7 天前 | 显示全部楼层
可以用软件算下时间
截图202508161011101189.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-16 10:02:12
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 7 天前 | 显示全部楼层
C_w*** 发表于 2025-8-16 10:11
可以用软件算下时间

stc8g1k08A,是用哪一个头文件老师
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:303
  • 最近打卡:2025-08-23 00:13:14
已绑定手机

13

主题

188

回帖

1837

积分

金牌会员

积分
1837
发表于 7 天前 | 显示全部楼层
用STC8H就行

https://www.stcai.com/syx
找个8H实验箱的例程做参考

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:158
  • 最近打卡:2025-08-23 11:06:14

76

主题

6635

回帖

1万

积分

超级版主

积分
13859
发表于 7 天前 | 显示全部楼层
因为延时时间不是2秒。

#define   FOSC   24000000UL

//========================================================================
// 函数: void  delay_ms(u16 ms),  STC8xxx、AI8xxx系列
// 描述: 延时函数。
// 参数: ms: 要延时的ms数, 1~65535ms. 自动适应主时钟.
// 返回: none.
//========================================================================
void  delay_ms(unsigned int ms)
{
        unsigned int i;
        do
        {
                i = (FOSC+5000) / 10000UL;
                while(--i)        ;
        }while(--ms);
}

delay_ms(2000);  //这个才是延时2秒
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-23 20:15 , Processed in 0.140291 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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