SCI 接收FIFO 数据读取及 Debug 状态更新函数
extern void DebugComandRx(void) { uint16_t bTemp; uint16_t i;
bTemp = SCI_getRxFIFOStatus(SCIA_BASE);
i = 0;
while((SCI_getRxFIFOStatus(SCIA_BASE) != SCI_FIFO_RX0))
{
i++;
bTemp = SCI_readCharBlockingFIFO(SCIA_BASE);
i++;
if((DebugStatus!= SCI_RX)&&(bTemp == 0xFF)) //#define SCI_RX 1
{
DebugStatus = SCI_RX;
DebugRxDataIndex = 0;
}
if(DebugStatus==SCI_RX)
{
DebugRxBuff[DebugRxDataIndex] = bTemp;
DebugBusIdleCount = 0;
DebugRxDataIndex++; //接受数据索引
}
}
}
此函数的作用是从 SCI 接收 FIFO 中读取数据,并根据读取的数据判断当前的 Debug 状态和接收到的数据是否为 '0xFF',从而更新相关的 Debug 状态和接收到的数据缓冲区。
原文地址: https://www.cveoy.top/t/topic/n96O 著作权归作者所有。请勿转载和采集!