您好、TI、
我正在前大灯上工作、并尝试从故障寄存器中读取故障状态信息。 在故障排除时、我意识到它实际上不会向我发送来自接收缓冲区的任何数据。 在等待收集的字节时、它将进入无限循环。 我正在复制修改后的代码。 此函数最初由 TI 编写。
void LMM_rd_1_byte (uint8 LMM、uint8 regaddr)
{
uint16 i;
//我们必须首先对请求进行汇编并对其进行 CRC 校验
TxBuf[0]=(0xC0 | LMM);
TxBuf[1]= regaddr;
//恢复 CRC
I = CRC_16_IBM (TxBuf、2);
//并处理它
TxBuf[2]=(I & 0x00FF);
TxBuf[3]=((I >> 8)& 0x00FF);
//还要确保我们准备好从 LMM 接收数据
ReturnBytes = 1+1+2;// 1 Init + 1 Data + 2 CRC
GatheredBytes = 0;
//现在我们可以发货了
对于(I = 0;I < 4;I++)
{
LMM_UART_xmit (TxBuf[i]);
}
//现在等待读取
while (GatheredBytes < ReturnBytes)
{
//此循环保持无限模式,超时是否起作用? 如何操作?
while (((SciaRegs.SCIRXST.bit.RXRDY = 0) //等待新数据?
//返回收集的字节
RxBuf[GatheredBytes++]= SciaRegs.SCIRXBUF.bit.RXDT;
}
}