找回密码
 立即注册
查看: 137|回复: 9

请教 STC32G单片机运行结果比实际设置频率慢很多 | 已提供正确程序

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-05 08:53:57
已绑定手机

1

主题

4

回帖

21

积分

新手上路

积分
21
发表于 2025-6-3 09:32:39 | 显示全部楼层 |阅读模式
我用STC32G 用keil开发环境keil设置频率为24M 编程器烧写也选的24M,
但程序写入单片机实际运行程序慢很多,
我程序延时是500ms,但实际延时是4秒,是怎么回事呢

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

734

主题

1万

回帖

1万

积分

管理员

积分
16690
发表于 2025-6-3 13:58:26 | 显示全部楼层
截图202506031358008646.jpg

https://www.stcaimcu.com/data/download/Datasheet/STC32G.pdf

截图202506031403098660.jpg

#include <STC32G.H>                //包含AI8051U的头文件


void Delay500ms(void)        //@24.000MHz
{
        unsigned long edata i;

        _nop_();
        _nop_();
        i = 2999998UL;
        while (i) i--;
}

void main(void)
{
    EAXFR = 1;                      //允许访问扩展的特殊寄存器,XFR
                                          //(32位模式请使用这句,注释下一句)
//  P_SW2 |= 0x80;              //允许访问扩展的特殊寄存器,XFR
                                          //(8位模式请使用这句,注释上一句)。
    WTST = 0;                      //设置取程序代码等待时间,
                                         //赋值为 0表示不等待,程序以最快速度运行
    CKCON = 0;                    //设置访问片内的 xdata速度,
                                         //赋值为 0表示用最快速度访问,不增加额外的等待时间

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4312

积分

荣誉版主

无情的代码机器

积分
4312
发表于 2025-6-3 09:38:34 | 显示全部楼层
此处应该贴代码。
延时函数不准?被中断频繁打断?使用定时器呢?
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2025-06-17 08:26:33
已绑定手机

17

主题

472

回帖

1345

积分

金牌会员

积分
1345
发表于 2025-6-3 09:56:57 | 显示全部楼层
直接取反GPIO测试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-05 08:53:57
已绑定手机

1

主题

4

回帖

21

积分

新手上路

积分
21
发表于 2025-6-3 10:47:14 | 显示全部楼层
erci*** 发表于 2025-6-3 09:38
此处应该贴代码。
延时函数不准?被中断频繁打断?使用定时器呢?

现在就只是驱动一个LED取反显示 其它程序都屏蔽了呢 我不知道这款STC32单片机程序需不需要对频率设置呢,还是STC像8位单片机只需在烧写时勾选频率即可呢

点评

一般用AiApp-ISP软件调节的频率,程序内不作特殊设置。找不到问题建议上传代码看看  发表于 2025-6-3 10:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-05 08:53:57
已绑定手机

1

主题

4

回帖

21

积分

新手上路

积分
21
发表于 2025-6-3 10:47:45 | 显示全部楼层
Ayb_*** 发表于 2025-6-3 09:56
直接取反GPIO测试

现在就只是驱动一个LED取反显示 其它程序都屏蔽了呢 我不知道这款STC32单片机程序需不需要对频率设置呢,还是STC像8位单片机只需在烧写时勾选频率即可呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2025-06-17 08:26:33
已绑定手机

17

主题

472

回帖

1345

积分

金牌会员

积分
1345
发表于 2025-6-3 13:12:34 | 显示全部楼层
huxudo*** 发表于 2025-6-3 10:47
现在就只是驱动一个LED取反显示 其它程序都屏蔽了呢 我不知道这款STC32单片机程序需不需要对频率设置呢, ...

一样的,ISP下载时设置即可
LED取反,还需要跳转指令3个周期,这个你考虑了没有呢,一共是4个周期,理论上是24/6,约4M的频率,用示波器看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-05 08:53:57
已绑定手机

1

主题

4

回帖

21

积分

新手上路

积分
21
发表于 2025-6-5 08:53:57 | 显示全部楼层
神*** 发表于 2025-6-3 13:58
https://www.stcaimcu.com/data/download/Datasheet/STC32G.pdf

感谢指导 问题已经解决需要设置以下,CKCON = 0x00;                        //STC32需设置外部数据总线速度为最快
WTST = 0x00;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-06-05 08:53:57
已绑定手机

1

主题

4

回帖

21

积分

新手上路

积分
21
发表于 2025-6-5 08:56:32 | 显示全部楼层
Ayb_*** 发表于 2025-6-3 13:12
一样的,ISP下载时设置即可
LED取反,还需要跳转指令3个周期,这个你考虑了没有呢,一共是4个周期,理论上是24/ ...

感谢指导!问题解决了,需要设置一下就好了:  CKCON = 0x00;                        //STC32需设置外部数据总线速度为最快
WTST = 0x00;
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 07:40 , Processed in 0.167633 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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