しかし,公式リファレンス では Called at the end of loop() when data is available. (loop()の最後で、データが利用可能になったときに呼び出される。) と書かれている様にloop関数が終了したタイミングで実行されるため,全く割り込み処理を行っている訳ではないことが分かった.
この関数について調査した ブログ でも, この機能を使えばシリアル受信で割り込み処理を行えると思っていたのですが、それは勘違いで、serialEvent()が実行されるのはloop()文の処理が終わってからです。ですので割り込み処理のように、即座に処理を行うことが出来ません。 という実験結果が書かれている.
シリアル通信にて受信イベントが発生した場合に割り込み処理を行いたいと考えた.
Arduino では serialEvent() という関数が標準で実装されており,日本語リファレンス では
データが利用可能な時に呼び出される関数を定義することができる
と書かれている.しかし,公式リファレンス では
Called at the end of loop() when data is available. (loop()の最後で、データが利用可能になったときに呼び出される。)
と書かれている様にloop関数が終了したタイミングで実行されるため,全く割り込み処理を行っている訳ではないことが分かった. この関数について調査した ブログ でも,この機能を使えばシリアル受信で割り込み処理を行えると思っていたのですが、それは勘違いで、serialEvent()が実行されるのはloop()文の処理が終わってからです。ですので割り込み処理のように、即座に処理を行うことが出来ません。
という実験結果が書かれている.つまり,シリアル通信による割り込み処理はこの関数では実行できないということである.