scanf() について

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() から戻るところをデバッガーで見るとインクリメントしたデーターを戻しているのです
標準関数に問題はないのでしょうか?

Parents
  • 大変お世話になっております。
    SAM です。

    分かりにくい文面ですみません。
    int getchar(void) は説明のために追加したものです。
    while ループのところがタスクです。

    下書きのようなものが流れてしまいました。すみません。
    標準関数は、ソースコードが無いので
    もし分かる方がいらっしゃればと思い質問させて頂きました。
    よろしくお願いします。

Reply
  • 大変お世話になっております。
    SAM です。

    分かりにくい文面ですみません。
    int getchar(void) は説明のために追加したものです。
    while ループのところがタスクです。

    下書きのようなものが流れてしまいました。すみません。
    標準関数は、ソースコードが無いので
    もし分かる方がいらっしゃればと思い質問させて頂きました。
    よろしくお願いします。

Children
No Data