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

求助!STC32F自动追频CRE按照按照例程无法开启

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2023-6-19 15:23:47 | 显示全部楼层 |阅读模式
  1. #define FOSC 64000000UL
  2. #if (FOSC < 30000000UL)
  3. #define WAIT 0x00
  4. #elif (FOSC < 60000000UL)
  5. #define WAIT 0x01
  6. #else
  7. #define WAIT 0x02
  8. #endif
  9. // 自动追频定义
  10. // 定义IRCBAND(IRC频段选择)寄存器设置值
  11. #if (FOSC > 35000000UL)
  12. #define BAND 0x02
  13. #elif (FOSC > 20000000UL)
  14. #define BAND 0x01
  15. #else
  16. #define BAND 0x00
  17. #endif
  18. // 定义CLKDIV寄存器设置值(系统时钟主分频)
  19. #if (FOSC > 15000000UL)
  20. #define DIV 0x01
  21. #elif (FOSC > 12000000UL)
  22. #define DIV 0x02
  23. #elif (FOSC > 8000000UL)
  24. #define DIV 0x03
  25. #elif (FOSC > 6000000UL)
  26. #define DIV 0x04
  27. #else
  28. #define DIV 0x05
  29. #endif
  30. // 定义追频寄存器目标值
  31. #define MCLK (FOSC * DIV)
  32. #if (MCLK < 50000000UL)
  33. #define CNT ((16 * MCLK) / 32768) // 低频
  34. #define CREHF 0x00
  35. #else
  36. #define CNT ((8 * MCLK) / 32768) // 高频
  37. #define CREHF 0x08
  38. #endif
  39. #define XRES (CNT * 5 / 1000)
  40. void Core_Init(void)
  41. {
  42.     AUXR |= 0x80; // 定时器时钟1T模式
  43.     TMOD &= 0xF0; // 设置定时器模式
  44.     TL0 = 0x00;   // 设置定时初始值
  45.     TH0 = 0x06;   // 设置定时初始值
  46.     TF0 = 0;      // 清除TF0标志
  47.     TR0 = 1;      // 定时器0开始计时
  48.     ET0 = 1;      // 使能定时器0中断
  49.     EA = 1;
  50.     // IO初始化
  51.     P0M0 = 0x00;
  52.     P0M1 = 0x2f;
  53.     P1M0 = 0x28;
  54.     P1M1 = 0x3f;
  55.     P2M0 = 0xef;
  56.     P2M1 = 0x00;
  57.     P3M0 = 0x10;
  58.     P3M1 = 0xec;
  59.     P4M0 = 0x00;
  60.     P4M1 = 0xdf;
  61.     P5M0 = 0x10;
  62.     P5M1 = 0xf3;
  63.    
  64.     Open_ICache();//打开高速缓存
  65.     // 允许操作寄存器
  66.     P_SW2 = 0x80;
  67.     EAXFR = 1; // 使能访问外部XFR
  68.                // CKCON = 0x00; // 外部数据总线速度为最快
  69.                // WTST = 0x00;  // CPU执行程序等待时间设置为0,保证执行速度为最快
  70.                // STC32F兼容性屏蔽,WTST由宏定义计算自动调整
  71.     // 打开CRE自动追频
  72.     X32KCR = 0x80; // 打开外部32K振荡器
  73.     while (!(X32KCR & 1))
  74.         ;          // 等待稳定标志位
  75.     IRTRIM = 0x80; // 初始化为频段的中间频率
  76.     WTST = WAIT;
  77.     _nop_();
  78.     _nop_();
  79.     _nop_();
  80.     _nop_();
  81.     CLKDIV = DIV;   // 设置系统分频系数
  82.     IRCBAND = BAND; // 设置IRC频段范围
  83.     // 设置追频参数
  84.     CRECNTH = CNT >> 8;
  85.     CRECNTL = CNT;
  86.     CRERES = XRES; // 设置CRE校准误差
  87.     CRECR = 0x90 | CREHF;
  88. }
  89. void main(void)
  90. {
  91.     Core_Init();
  92.     Menu_Init();
  93.     Uart_Init();
  94.     while (1)
  95.     {
  96.         if (CRECR & 0x01) // CRE时钟追频校准完成
  97.         {
  98.             printf("test\r\n");
  99.             P20 = ~P20;
  100.         }
  101.     }
  102. }
复制代码
求助!STC32F自动追频CRE按照按照例程无法开启-1.png
这个是所使用的电路,下载程序后会出现无法启动的情况,只有屏蔽掉CRE部分才能正常使用。


开了CRE不正常的时候,偶尔还会出现使用Link1D在460800波特率下卡死在检测MCU的情况。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2023-6-19 15:25:55 | 显示全部楼层
这个电路在STC8H1K17T上使用正常,可以正常通过if (CRECR & 0x01)追频完成检测
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-04-28 08:49:07
已绑定手机

90

主题

961

回帖

2318

积分

超级版主

积分
2318
QQ
发表于 2023-6-21 15:13:16 | 显示全部楼层
技术晚些上来回复您
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-6-21 15:38:04 | 显示全部楼层
我用楼主的代码在追风剑板子上测了可以完成追频。
64MHz是这款芯片的上限频率,可能个别芯片由于制造误差导致这个频率下无法正常运行,建议降低频率试试。
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-6-21 15:58:41 | 显示全部楼层
现在推荐用 56MHz
1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2023-6-21 17:21:44 | 显示全部楼层
01-跑马灯.zip (72.23 KB, 下载次数: 140) 这个是官方的追风剑DEMO例程第一个,修改加入CRE后无法追频完成(体现在LED灯不亮了),使用的也是追风剑板子,能帮忙测试一下这个嘛?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2023-6-21 17:22:52 | 显示全部楼层
乘风*** 发表于 2023-6-21 15:38
我用楼主的代码在追风剑板子上测了可以完成追频。
64MHz是这款芯片的上限频率,可能个别芯片由于制造误差导 ...

能否给个测试的程序文件?我也在我这的追风剑上试一下,看看是不是我代码写的有问题
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-6-21 18:28:24 | 显示全部楼层
王*** 发表于 2023-6-21 17:22
能否给个测试的程序文件?我也在我这的追风剑上试一下,看看是不是我代码写的有问题 ...

附件例程在追风剑上运行成功,请参考。

01-自动追频跑马灯.zip

17.01 KB, 下载次数: 133

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2023-6-21 20:48:13 | 显示全部楼层
乘风*** 发表于 2023-6-21 18:28
附件例程在追风剑上运行成功,请参考。

测试追风剑可以正常完成追频,参考移植到我自己的程序里面也成功的完成了追频,十分感谢!
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-6-21 21:25:44 | 显示全部楼层
开心,追风剑 能鞍前马后的帮楼主干活了

网站更新 20230621  更新第2次

一,STC-ISP V6.91V 版本 发布
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.91V.zip

Ver6.91V(2023-6-21)  
1. 驱动程序安装过程中增加强制搜索驱动程序步骤  
2. 调整STC32F12K54系列的最高工作频率 56MHz  
3. STC32F12K54系列单片机下载完成后回显WTST设置的值

Ver6.91U (2023-6-19)  
1. 调整驱动程序安装菜单项  
2. USB驱动安装智能化

Ver6.91T (2023-6-16)  
1. 修正串口助手发送字符串时对转义字符处理不正确的问题  
2. 增加ADC转换速度计算器工具  
3. 修正OLED12864调试接口显示异常的问题  
4. 更新STC-USB Link1D仿真/下载器固件 (v1.11)  
5. 脱机下载板U8W固件更新为v1.47     
   (解决使用STC-USB Link1D对STC32F12K54系列进行ISP时高频IRC调整失败的问题)

二,STC32F12K54-56MHz-LQFP48/32 系列 32位8051 中文数据手册 ,  2023/6/21 第2次更新
http://www.stcmcudata.com/STC8F-datasheet/STC32F12K54.pdf
====56MHz 主频,三角/反三角函数运算器 + 单精度浮点运算器
====I2S 音频,高速12位ADC, 高级16位PWM
====edata = 8k; xdata = 4k

三,  追风剑-STC32F12K54核心功能实验板,程序包, 2023/6/21
http://www.stcmcudata.com/OpenSo ... DIP48-DEMO-CODE.zip

更新记录2023.06.21
1.  修改例程默认时钟频率;
2.  增加例程"32-自动追频跑马灯";

2023.06.19
1.  增加例程"28-老梁示波器-虚拟显示-CDC模式"及使用说明书;
2.  增加例程"29-老刘爱捣鼓示波器,使用OLED屏显示或者虚拟OLED接口显示"及使用说明书;
3.  增加例程"30-STC32_U8G2_DMA_OLED";
4.  增加例程"31-科学计算器使用CDC虚拟液晶屏显示";
5.  增加例程"A0-核心板简单测试程序";
6.  增加文件"通过USB CDC协议进行STC-ISP调试接口显示使用说明";
7.  增加文件"通过USB HID协议进行STC-ISP调试接口显示使用说明";
8.  增加文件"追风剑-烧录-不停电下载使用说明"。


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 09:07 , Processed in 0.138090 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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