|
发表于 2018-6-26 09:31:55
|
显示全部楼层
本帖最后由 Super169 于 2018-6-26 09:33 编辑
如樓上說, LED 將會是 '\n' 之前的一個 byte, 那要看傳過來的協定, '\n' 之前會否有其他東西, 比如結尾為 '\r\n' 的, 就會出錯了. 簡單的做法, 只針對自己需要的 char 才放進 LED 會比較好. 你的情況, 有多個不同的值, 用 switch (inChar) 就可以了.
其次, 在 interrupt 會更新的 single byte variable, 應該加上 volatile, 表示每次都要重新讀取.
例如:
volatile char LED = ' ';
雖然你這個程式中, 可能不介意使用了未更新的值, 但這是一個好習慣.
對你將來寫 ISR 會有幫助的.
此外, 你的情況, 是否有需要用 serialEvent, 由於我沒用過 Leonardo, 因為它的 serial 有點不同, 不太肯定.
一般情況下, 除非你有很大量的數據要接收, 或有什麼急於特別處理, 否則直接在 loop 之內讀取 serial 的數據就可以了. |
|