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.

[参考译文] TM4C123GH6PM:无法挂起中断

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/970059/tm4c123gh6pm-unable-to-pend-interrupt

器件型号:TM4C123GH6PM
主题中讨论的其他器件:TM4C123

我正在尝试使用 TM4C123进行 USB 大容量器件类、并希望临时挂起中断以避免与其他函数发生冲突。

我尝试了以下 API、但无法停止中断。
我的方法是错误的吗? 有人可以给我任何想法吗?

IntPendSet( INT_USB0 );

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

    Yamazaki-San、您好!

    您是否尝试避免与另一个 ISR 或与非中断函数发生冲突?

    下面是 DriverLib 中 IntPendSet 的完整说明:

    //! 指定的中断在中断控制器中挂起。
    //! ui32Interrupt 参数必须是列出
    的有效的\n INT_*值之一//! 在外设驱动程序库用户指南中、并在 inc/hw_ints.h
    //! 头文件。 挂起中断会导致中断控制器
    //! 在下一个可用时间执行相应的中断处理程序、
    //! 基于当前中断状态优先级。 例如、如果由
    //调用! 更高优先级的中断处理程序、指定的中断处理程序不是
    //! 在当前中断处理程序完成执行之前调用。
    //! 必须启用中断才能调用中断。 

    正如描述中提到的、中断的挂起会导致中断控制器根据优先级在下一个可用时间执行处理程序。 因此、在某些情况下、您可以使用此选项来防止较高优先级的中断中断中断。

    如果您不会在主机认为设备超时的情况下导致问题、我不确定您将忽略 USB 接口的时间长短。 根据您正在执行的操作以及所需的时间、您可能只需断开总线、然后重新连接... 中断 USB 可能有点棘手、无需担心连接断开或数据丢失。 需要记住的一点。