[問題] UART RX Buffer設計
因為目前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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章
19
166