2017-05-25 5 views
0

Ich möchte eine scanf() -Funktion in STM32F401RE_NUCLEO mit IAR-Compiler verwenden.scanf() fehlt ein erster Buchstabe

Dies ist meine überladene Fgetc-Funktion.

int fgetc(FILE *f) { 
    char ch; 
    while (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) == RESET); 
    HAL_UART_Receive(&UartHandle, (uint8_t*)&ch, 1, 0xFFFF); 
    return ch; 
} 

Und ich benutze scanf in Hauptfunktion wie unten.

Wenn ich eine "123" von Terminal eingeben, dann gedruckt "23".

% d,% u,% f war gleich.

Aber nur% c funktioniert korrekt.

Wie kann ich dieses Problem lösen?

Antwort

0

Wahrscheinlich haben Sie das gleiche Problem wie der Typ im mikrocontroller.net Forum.

Er brauchte die Funktionen __write und __read statt fgetc und fputc zu implementieren.

Prototypen:

size_t __write(int Handle, const unsigned char * buf, size_t count); 
size_t __read(int Handle, unsigned char * buf, size_t count); 

Kann auch für Sie interessant sein: How to override and redirect library modules.

Verwandte Themen