找回密码
 立即注册
查看: 620|回复: 12

32F12K54 48Mhz频率点灯失败

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-09-20 15:50:00

3

主题

4

回帖

75

积分

注册会员

积分
75
发表于 2024-10-8 21:24:24 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-10-8 22:25 编辑

使用32F12K54 内部IRC 32Mhz以上的频率点灯失败,IO口无法实现高低电平交替

目前已知30MHZ以下能正常工作,32以上灯不闪烁。

不知道是什么原因导致的!
程序如下:


void GPIO_config(void)
{
                P0M0 = 0xff; P0M1 = 0x00;
                P1M0 = 0xff; P1M1 = 0x00;
                P2M0 = 0xff; P2M1 = 0x00;
                P3M0 = 0xff; P3M1 = 0x00;
                P4M0 = 0xff; P4M1 = 0x00;
                P5M0 = 0xff; P5M1 = 0x00;
        
}
void Delay100ms(void)        //@48MHz
{
        unsigned long edata i;

        _nop_();
        _nop_();
        i = 1199998UL;
        while (i) i--;
}
void main(void)
{
        WTST = 0;                //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXSFR();                //扩展SFR(XFR)访问使能
        CKCON = 0;      //提高访问XRAM速度

        GPIO_config();
        Delay100ms();
        while(1)
        {
               
                P2=0xff;
                //P0=P1=P2=P3=P4=P5=0xff;
                Delay100ms();Delay100ms();Delay100ms();
        //        P0=P1=P2=P3=P4=P5=0x00;
                P2=0x00;
                Delay100ms();Delay100ms();Delay100ms();
        }
}

回复

使用道具 举报 送花

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

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-8 21:42:46 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-10-8 21:45 编辑

手头没有STC32F12K54的开发板,只有STC32G12K128-BETA核心的实验箱V9.4,实测你的程序在35MHz下驱动P6闪烁正常。
你尝试WTST使用默认值1看看可否正常运行。
QQ20241008-214533.png
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-10-8 21:46:02 | 显示全部楼层
stc32f12k54不是最高主频64M吗?不应该48M就出问题吧

点评

我怀疑是WTST = 0 这条代码作祟,没有按照手册中“特别注意”中描述的要求来配置,时钟那么高支持不了“零等待”。官方建议17MHz以上等待值就需要设置为1了,实测到30MHz以上才出问题,这已经超速太多了。  详情 回复 发表于 2024-10-8 22:46
回复 支持 反对

使用道具 举报 送花

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

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-8 22:46:24 | 显示全部楼层
so*** 发表于 2024-10-8 21:46
stc32f12k54不是最高主频64M吗?不应该48M就出问题吧

我怀疑是WTST = 0 这条代码作祟,没有按照手册中“特别注意”中描述的要求来配置,时钟那么高支持不了“零等待”。官方建议17MHz以上等待值就需要设置为1了,实测到30MHz以上才出问题,这已经超速太多了。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-10-8 23:08:33 | 显示全部楼层
建议 使用 Ai8051U做新设计,32F12K54 还在完善设计中
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-05-01 07:25:06

0

主题

206

回帖

1522

积分

金牌会员

积分
1522
发表于 2024-10-9 06:57:15 | 显示全部楼层
尝试WTST使用默认值1看看可否正常运行?结果怎么样?我也蛮关心结果的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:343
  • 最近打卡:2025-05-01 06:56:36

0

主题

17

回帖

1452

积分

金牌会员

积分
1452
发表于 2024-10-9 07:19:22 | 显示全部楼层
频率高时,若设置  WTST = 0;  会出问题,将这条指令去掉即可。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-09-20 15:50:00

3

主题

4

回帖

75

积分

注册会员

积分
75
发表于 2024-10-10 22:31:19 | 显示全部楼层
大*** 发表于 2024-10-9 06:57
尝试WTST使用默认值1看看可否正常运行?结果怎么样?我也蛮关心结果的

设置1可以
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-09-20 15:50:00

3

主题

4

回帖

75

积分

注册会员

积分
75
发表于 2024-10-10 22:31:54 | 显示全部楼层

去掉默认WTST为2
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-09-20 15:50:00

3

主题

4

回帖

75

积分

注册会员

积分
75
发表于 2024-10-10 22:35:11 | 显示全部楼层
晓*** 发表于 2024-10-8 21:42
手头没有STC32F12K54的开发板,只有STC32G12K128-BETA核心的实验箱V9.4,实测你的程序在35MHz下驱动P6闪烁 ...

我也是从32G移植程序时候发现这个问题

点评

搞开发一定要看官方手册  详情 回复 发表于 2024-10-10 23:14
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:10 , Processed in 0.151355 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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