請問一下 如果想寫一個功能是
收到資料後 會回傳一個20 Bytes的封包的功能 會推薦怎樣寫
目前在寫的時候碰到了瓶頸
使用rx中斷的方式來接收資料 想先寫個測試結果發生問題
想說收到一筆資料後 如果首位判定是0xAA 就抓資料 進行回傳(中斷內執行)
封包長度固定是20Bytes
void __attribute__((interrupt, shadow, no_auto_psv)) _U2RXInterrupt()
{
int tmp=0;
IFS1bits.U2RXIF = 0;
while(!U2STAbits.TRMT);
if( U2STAbits.OERR ) // if overrun, clear OERR flag
U2STAbits.OERR = 0;
tmp = U2RXREG;
U2TXREG = 49;
}
如果我在電腦端送任意一個值
這樣我在電腦端看到的東西會是1(ascii)
基本上問一答一都沒問題
但是如果改成
U2TXREG = 49;
U2TXREG = 50;
前面一次傳 1~4都沒問題 依序收到12 1212 121212 12121212
當我輸入到第5個值的時候 開始出現問題(回傳沒有出現 會漏)
U2TXREG = 49;
U2TXREG = 50;
U2TXREG = 51;
變成傳1~3沒問題 123 123123 123123 傳4就出問題了
想請問該怎樣解決這個問題