作者gg1122 (99通未接来电)
看板ASM
标题[问题] UART RX Buffer设计
时间Wed Aug 15 22:13:15 2012
因为目前UART Receive的部份都必须判断收到CR
或某个End of char 才能办法收到完整资料
程式目前写成如下 Buffer一直收到 爆掉 就直接overflow 重新Reset index
目前遇到一个问题 我的真实资料前面会遇到0x0D 也就是CR
搞不太懂要怎处理 因为本来想说判断 资料没到多少长度就继续收
大於门槛值长度就整条直接做处理 今天测试是不行 不太懂什麽原因?
难道要End of Char 要变连续二个BYTE 某个值 做判断才能闪这个问题?
还请各位先进 能够帮忙 给意见 谢谢
#define Process_Len 5
while(1)
{
if(UART_Overflow==TRUE)
{
UART_Clear_Buffer();
}
for(i=0;i<Rx_Data_Len;i++)
{
if(UART_Bufferp[i]=='\0')
break;
}
if(i==Rx_Data_Len) continue;
if(Rx_Data_Len>Process_Len)
{
// Do....Protocol..Handle
}
UART_Clear_Buffer();
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.228.6.173