回答編集履歴

1

補足

2023/08/26 10:36

投稿

thkana
thkana

スコア7659

test CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
  基本的には、データの受信には`R_Config_SCIF9_Serial_Receive(rx_buf, rx_num)`関数を呼び出すのでしょう。このとき、例えばrx_num(要求した受信データバイト数)より受信済のデータバイト数が少なかったときに何が起こるかとかはマニュアルを精読してください。(事前に`g_scifa9_rx_count`を調べてから必要なデータ数があることを確認して呼ぶのかな、とは思います)
16
16
 
17
- また、UART通信は**1バイト単位**の通信です。構造を持ったデータのフレームのデータが欠落したとき、ノイズで不要なデータが受信されてしまった時の処理は全てプログラムで対応する必要があります。つまり、データを9バイト受信したら"AF ... EF"の9バイトが受信できる期待をしてはいけません。"00 AF..."(余計なデータがつく)だったり”AF ... EF 00"(データが足りない)だったりしたときに、適切な方法でフレームを切り出せる状態に復帰する必要があります。そこはあなたのウデの見せ所、ということになりますね。
17
+ また、UART通信は**1バイト単位**の通信です。1バイトに満たないデータを気にする必要もありませんが、逆に1バイト以上のグループで構造を持ったデータのフレームのデータが欠落したとき、ノイズで不要なデータが受信されてしまった時の処理は全てプログラムで対応する必要があります。つまり、データを9バイト受信したら"AF ... EF"の9バイトが受信できる期待をしてはいけません。"00 AF..."(余計なデータがつく)だったり”AF ... EF 00"(データが足りない)だったりしたときに、適切な方法でフレームを切り出せる状態に復帰する必要があります。そこはあなたのウデの見せ所、ということになりますね。