找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

求助代码设置频率iap代码失效问题

昨天 09:09 来自 aerror 发布 @ 综合讨论

你好,我遇到一个问题, 就是我打算请人帮我烧录固件, 但是irc的频率是在烧写的时候指定的,我计划使用代码来指定这个irc的频率,以免烧写的时候对方没沟通烧录是配错了频率。
我已经完成了代码编写,同时看到代码生效的,即无论烧录是频率如何指定, 代码都可以以设计的24mhz工作。绝大部分的代码都工作的非常完美,但是iap去读写eprom这个功能会失效, 且仅当烧录频率不是24m时失效,即 同样的iap代码,烧录时指定24m是正常的。


    具体测试:  
1. 在isp的时候专门把IRC设为11mhz,
2.示波器测试发现timer1的时间工作频率是正常的,即是24MHz确认代码是可以把工作频率改为24Mhz的。
3. 发现有一个副作用,就是iap无效。 即发现无法保存iap数据 或者是读取iap数据.  loadConfigFromIap和 saveConfigToIap
4. 同样的固件,重新在isp指定为24mhz, 设置时钟为24Mhz, loadConfigFromIap和 saveConfigToIap 代码读写正常。

  请问为什么会这样? 需要更长的时候等时钟稳定吗?还是其它原因?


  以下是我的代码:


        P3M1=0x03;      // 将P3M1寄存器设置为0x00 (二进制 0000 0011)。这通常用于设置P3端口的模式。根据您提供的模式表 (P3M1位, P3M0位):
        P3M0=0x0C;      //                             0000 1100 P3.2  P3.3 推挽输出 (强上拉), P3.0 , P3.1 高阻输入

        P5M1=0x0F;      // 将P5M1寄存器设置为0x00 (二进制 0000 0000)。这通常用于设置P5端口的模式。根据您提供的模式表 (P5M1位, P5M0位)://(0, 0): 准双向口 (弱上拉)      
        P5M0=0xF0;      //11 0000  -- P5.5 P5.4 推挽输出 (强上拉)
      
        P3=0;              // 上电时将P3端口设置为0xF0 (二进制 1111 0000)。
        //         这通常用于设置端口的初始电平状态。
        // 具体哪些引脚被设置为高电平或低电平取决于微控制器的硬件连接。
        P5=0;

        //设置时钟为24Mhz
        P_SW2 =0x80;
        CLKDIV = 0x04;
        IRTRIM = T24M_ROMADDR;
     

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

上一篇: 15W404AS 可以用 15W408AS去代吗 | 可以

下一篇: 暂无下一篇

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

GMT+8, 2025-6-28 04:49 , Processed in 0.197540 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部