Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件: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 中的内容一致。
是什么原因导致了这种情况?
此致