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.

[参考译文] TMS320F28027F:大约28027F 串行端口接收中断

Guru**** 2763595 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/812959/tms320f28027f-about-28027f-serial-port-receiving-interrupt

器件型号:TMS320F28027F
主题中讨论的其他器件:C2000WARE

尊敬的团队:

以下是我的计划:

unsigned char Msg_Tx_Buf[10]={0x55、0xAA、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00};

中断空 sciARxISR (空)

HAL_Obj * obj =(HAL_Obj *) halHandle;
浮点温度= 0;
unsigned char loop = 2;

MSG_Rx_BUF[+RX_Data_counter]= halHandle->sciaHandle->SCIRXBUF;
PI_clearInt (obj->压 电筒、PI_GroupNumber_9);

if ((RX_Data_Counter = 0)&(Msg_Rx_BUf[0]!= 0xAA)

RX_Data_counter = 0;

返回;

if ((RX_Data_counter = 1)&(Msg_Rx_BUf[1]!= 0x55))

RX_Data_counter = 0;
返回;

if (RX_Data_counter >= 9)

第一步:清零操作 μ s
RX_Data_counter = 0;
sci_disableRxInt (halHandle->sciaHandle);
sci_disableRx (halHandle->sciaHandle);

for (;loop < 9;loop ++)

RX_Num_Check += Msg_Rx_Buf[LOOP];

if (((Msg_Rx_buf[0]= 0xAA)&(Msg_Rx_buf[1]= 0x55)& Msg_Rx_buf[9]=(Rx_Num_Check & 0x00FF))//检查校验和

RX_Num_Check = 0;
RX_Flag = 0;


SCI_TxMsg (Msg_Tx_Buf、10);

sci_enableRx (halHandle->sciaHandle);
SCI_enableRxInt (halHandle->sciaHandle);


}// sciARxISR()函数结束

这是我的中断程序。 该程序接收十个数据、然后对其进行处理。 在调试过程中、发现接收到的数据超过10个或更少时会出现异常。 当一次向 DSP 发送10多个数据时、DSP 发送的主机计算机数据与 Msg_Tx_Buf 中的数据不同。 程序中的 Msg_Tx_Buf 上没有操作。

当发送超过10次数据时、接收中断无法再进入、但其他中断正常。 在其他中断中、主机可以接收发送的数据、接收到的数据与 Msg_Tx_Buf 中的内容一致。

是什么原因导致了这种情况?

此致

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

    F.、

    检查您的配置代码以初始化 SCI。  作为参考、请将您的初始化代码与 C2000Ware 中的示例代码进行比较:

    C:\ti\c2000\C2000Ware_ \device_support\f2802x\examples\structs

    此外、仔细检查 SCICCR 寄存器是否使用空闲线模式或地址位模式。

    一般而言、我们不会查看或调试用户代码、但我们会就与我们的器件和开发工具相关的特定问题向您提供帮助。 这包括在使用我们的器件进行设计时阐明任何位、寄存器或功能的行为。 请注意、C2000Ware 中的所有外设都有示例代码。 我们建议将您的代码与示例代码进行比较、以确定问题可能存在的位置。 建议遵循标准和逻辑调试技术。 请继续调试您的代码、并随时使用此论坛提出具体问题。 问题越具体、我们就能越好地帮助您。

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

    - Ken