RL78/G23 FreeRTOS 10.5.1 で以下のようなタスクを作りました。 char c;int ret;
while(1){ ret = scanf("%c", &c); ret = printf("%c", c);}/* while */int getchar(void){ size_t result; uint8_t chr;
while (1) { result = xStreamBufferReceive(stream_bff_handle_UART0, &chr, sizeof chr, portMAX_DELAY); if (result > 0) { break; } else { } }//while
return chr;}シリアル受信割り込み内部の xStreamBufferSendFromISR() で受信データーを getchar() -> scanf() と渡すのですがABCDEFGH が ACEG となりました。受信データーが getchar() にくることは確認したので getchar() -> scanf() に絞り%c を %d に換え、getchar() から 0 から +1 する(インクリメント)データーを送ると scanf() 側は A5A5 固定となります。getchar() から戻るところをデバッガーで見るとインクリメントしたデーターを戻しているのです。標準関数に問題はないのでしょうか?
大変お世話になっております。SAM です。分かりにくい文面ですみません。int getchar(void) は説明のために追加したものです。while ループのところがタスクです。下書きのようなものが流れてしまいました。すみません。標準関数は、ソースコードが無いのでもし分かる方がいらっしゃればと思い質問させて頂きました。よろしくお願いします。