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.

[参考译文] MSPM0C1106:有关中断期间 GPIO、UART 中断、I2C 读取/右的问题

Guru**** 2439560 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1548362/mspm0c1106-question-regarding-gpio-uart-interrupt-i2c-read-right-during-interrupt

器件型号:MSPM0C1106
主题:SysConfig 中讨论的其他器件

工具/软件:

你(们)好  

我的客户有两个问题、您能帮助评论吗? 谢谢!

  1. 我们可能需要启用 GPIO 边沿和 UART Rx 中断、其中 GPIO 中断的优先级高于 UART。 系统是否支持中断优先级?
  2. 我们可能会在 GPIO 中断内执行 I2C 传输(对特定器件的读取/写入)。 这是否安全、尤其是在器件问题导致 I2C 故障时? 我们不喜欢使用 RTOS。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、PYTsai、

    系统是否支持中断优先级?

    是的。  这是此器件的中断优先级表。  NVIC IRQ#越小、优先级越高。

     您可以在 TRM的第 3.3.1 节中找到有关中断的更多详细信息(注意:这是适用于 C1103/4 的 TRM、很快会更新。  在中断的平均时间描述中、适用于 C1105/6)

    在您的场景中、是的、您需要相应地设置 GPIO 和 UART 的优先级。 这可以在 SysConfig 工具中轻松完成、如此处所示。  请注意、有 4 个优先级。  根据您的描述、您需要的 I2C 要求最高、接下来是 GPIO、最后是 UART。 由于默认顺序的 UART 最高、依次是 GPIO 和 I2C、因此您可以尝试将最高电平分配给 I2C、将高电平分配给 GPIO、将低电平分配给 UART。

    关于#2

    我们可能会在 GPIO 中断内执行 I2C 传输(对特定器件进行读取/写入)。 这是否安全、尤其是在器件问题导致 I2C 故障时? [/报价]

    是的,但在你的 I2C 处理程序“前台“你将需要处理这样的错误,如果某处回到 main () 或“背景“它需要知道,你将需要设置一些全局标志来通知后台。

    否、RTOS 不是必需的。

    我希望这对您有所帮助;)