This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SW-EK-LM4F232:LM4F232在休眠后卡住

Guru**** 2463330 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/656845/sw-ek-lm4f232-lm4f232-stuck-after-hibernation

器件型号:SW-EK-LM4F232

您好!


我有一个 Stellaris LM4f232评估板、在休眠后无法将其唤醒。

我已经尝试使用 LM 闪存编程器来擦除闪存、但它显示"找不到器件"。 我在按下重置按钮时也尝试过、没有任何结果。 我使用微型 USB 电缆将板连接到计算机。 此外、该板不会出现在我的 PC 的设备管理器中。


感谢您的任何帮助、
谢谢

Guzman

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guzman 您好!

    这是一个较旧的开发套件、因此我建议您尽快使用我们的新 TM4C LaunchPad 或 DK 电路板。

    话虽如此、我可以为您的问题提供一些建议。

    该器件只能通过 WAKE_N 引脚从休眠模式唤醒。 因此、您需要首先通过该引脚将器件从休眠状态唤醒、然后才能对电路板进行编程。

    此外、下面还提供了一篇有用的文章、介绍了如何添加快速解决方案、以便在测试模块时恢复将器件编程到代码中以方便使用: e2e.ti.com/.../1353568
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回答、但这对我来说不起作用。 即使我只对微控制器进行编程以在 RTC 匹配时唤醒、这是否有效?  (以某种方式不会发生这种情况)

    Guzman

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Guzman 您好!

    如果是这种情况、我建议您不要在器件上电时执行代码、以便防止器件进入休眠模式。

    实际上、与具有复位按钮的 EK 相关的操作非常简单、如以下文章 中所述:https://e2e.ti.com/support/microcontrollers/stellaris_arm/f/471/p/45751/163228#163228

    也可能相关: https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/270528

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我在按下复位按钮的同时连接它、然后擦除闪存、从而成功地使它工作。 但我不知道我的代码为什么失败。 这就是:

    void Hibernate (){

    SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);

    HibernateEnableExpClk (SysCtlClockGet ());
    HibernateClockSelect (HIBERNATE_CLOCK_SEL_RAW);
    HibernateRTCEnable();
    HibernateWakeSet (HIBERNATE_WAKE_RTC);
    HibernateRTCSet (0);
    HibernateRTCMatch0Set (30);

    无符号长整型 ulStatus = HibernateIntStatus (0);
    HibernateIntClear (ulStatus);

    unsigned long ulNVData[64];
    HibernateDataSet (ulNVData、64);

    HibernateIntEnable (HIBERNATE_INT_RTC_MATH_0);

    void (* p)(void);
    P=休眠处理程序;
    HibernateIntRegister (p);

    HibernateRequest();

    while (1);





    然后是处理程序:


    void HibernateHandler (void){

    无符号长整型 ulStatus = HibernateIntStatus (0);
    HibernateIntClear (ulStatus);






    你知道我出了什么问题吗? 谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guzman 您好!

    您还需要以下 API 调用:IntEnable (INT_HIBERNATE);