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.

[参考译文] CCS/TMS570LS1224:从未调用中断、sciNotification

Guru**** 2478765 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/693922/ccs-tms570ls1224-interruptions-scinotification-is-never-called

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

大家好、

在接收到某些数据(RX)时、我需要您的帮助来解决 SCI 中断问题。

我已经在 Halcogen 中设置了所有复选框并生成了一个代码。 实际上它是有效的,除了我的 sciNotification 根本不被调用。

调用 sciHighLevelInterrupt 函数、但不调用 sciNotification、因为 g_sciTransfer_t[0U].rx_length 始终为零:

void sciHighLevelInterrupt (void)
{
uint32 vec = sciREG->INTVECT0;
uint8字节;

开关(VEC)
{
...
案例11U:
/*接收*/
字节=(uint8)(sciREG->RD & 0x000000FFU);//<<<< 此值正确

if (g_sciTransfer_t[0U].rx_length > 0U)//<<<<<<< 由于某种原因,始终为 false,这就是不调用 sciNotification 的原因。
{
*g_sciTransfer_t[0U].rx_data =字节;
/*SAFETYMCUSW 567 S MR:17.1,17.4 "需要指针增量"*/
g_sciTransfer_t[0U].rx_data++;
g_sciTransfer_t[0U].rx_length--;
如果(g_sciTransfer_t[0U].rx_length == 0U)
{
sciNotification (sciREG、(uint32) SCI_RX_INT);
}
}
中断;
} 

我想要获取的内容:我需要在"中断"函数中读取传入数据。 我正在使用 FreeRTOS 执行大量任务、当我在单独的任务中读取 SCI 时、并非所有数据都从 SCI 读取。 这就是为什么我需要在这种情况下使用中断、不要错过任何东西。

您能不能建议出什么问题吗? 我是否需要实施另一种策略来从 RX 获取所有数据?

下面是我的测试代码(没有 FreeRTOS 和其他不重要的东西):

int main (void)
{
/*用户代码 begin (3)*/
sciInit();
sciEnableNotification (sciREG、SCI_RX_INT);
_enable_IRQ ();

while (1)
{
};
/*用户代码结束*/

返回0;
} 

我在 halcogen 的设置:

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

    请在scinInit()之后调用 sciReceive (sciREG1、length、&data[0])以定义数据的长度。

    例如:
    /**-在 Cortex R4中启用 IRQ 中断*/
    _enable_IRQ ();

    /**-初始化 SCI 例程以接收命令和传输数据*/
    sciInit();

    /**-将 SCI 配置为接收8个字节的命令信息*/
    sciReceive (sciREG1、8、receive_command);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哦,我现在已经了解了它的工作原理了,谢谢,它帮助了我。