推 wuzen:是七月的關係嗎 為什麼我看不到迴圈 08/21 19:23
※ 編輯: aegishow 來自: 61.229.50.16 (08/22 11:45)
推 ruemann:i, 和 buf 的宣告? 08/22 12:23
→ ruemann:我猜是記憶體溢位 08/22 12:24
→ aegishow:char buf[]=""; 08/22 13:36
→ aegishow:int i; 08/22 13:36
→ aegishow:如果真的是記憶體溢位,該怎麼做處理阿? 08/22 13:37
→ aegishow:我要存的資料量很大說.... 08/22 13:42
→ aegishow:但是這種陣列宣告方式,用在我自己宣告的陣列上OK阿 08/22 17:16
→ aegishow:我宣告code char mes[]="$LGIN,275.35,22,15" ;跟 08/22 17:17
→ aegishow:code char mat[]="$LGIN" ;兩個做比對時 08/22 17:18
→ aegishow:用if(mes[i]==mat[j])來判斷是否相同 OK! 08/22 17:19
→ aegishow:用SBUF去接收的就不行... 08/22 17:19
推 wuzen:code char是佔用程式的空間 , 但是你接收資料的buffer 是RAM 08/22 19:08
→ wuzen:如果是用純種的8051 只有128 byte 的ram 可以用 很容易爆 08/22 19:10
→ wuzen:另外你的buf 這個陣列的宣告很有問題ㄚ... 08/22 19:12
推 ruemann:你先改成 unsigned char buf[10] 08/22 22:39
→ ruemann:這樣應該是可以繼續下去,再來就是思考是否真的要存那麼多 08/22 22:39
→ ruemann:資料,如果你的MCU有內建xdata,就用 xdata去宣告 08/22 22:40
推 ast9869:如果沒有xdata那就暫存幾筆然後丟回PC端繼續接資料,可以 08/23 02:46
→ ast9869:省很多空間 08/23 02:46
→ aegishow:有沒有xdata要怎麼看啊? 我用keil C compile 08/25 09:10
→ aegishow:Program size:data=32.0 xdata=0 code=579這樣沒有xdata? 08/25 09:12
推 ruemann:看 MCU 的 datasheet 08/25 12:36