標題: keil5中的scanf函數使用問題 [打印本頁]

作者: wzl-mcu    時間: 2019-8-29 15:49
標題: keil5中的scanf函數使用問題

問大佬們,sacnf(),括號中需要寫入什么?小白一枚

作者: wzl-mcu    時間: 2019-8-29 15:56
是stm32f103單片機,我往USART2發(fā)送一串字符,該如何接收這一串字符?請大佬不吝賜教
作者: wzl-mcu    時間: 2019-8-29 15:59
我用的是stm32f103,我往usart2中發(fā)送字符串,該如何用scanf接收這字符串?請大佬賜教
作者: aaaaabangw    時間: 2019-8-29 16:48
scanf()函數是系統(tǒng)提供的函數,是從系統(tǒng)緩沖區(qū)中獲取內容,你單片機沒有系統(tǒng)的話是不能用的吧,畢竟沒有系統(tǒng)去給你提供緩沖區(qū)。。。
作者: angmall    時間: 2019-8-29 20:48
C語言庫函數中有一批“標準輸入輸出函數”,它是以標準的輸入輸出設備(一般為終端設備)為輸入輸出對象的,其中用得比較多的是printf和scanf函數了。

在嵌入式設備中加入C語言的標準輸入輸出函數,對調試是很有幫助, 這樣就可以通過串口來顯示結果。根據Keil的幫助文檔,雖然printf和scanf函數的高層部分和所使用的目標硬件沒有關系,但是底層部分(物理層)卻與所使用的硬件密切相關,因此在使用這兩個函數之前,需先將與底層相關的程序寫好(一般是串口的初始化函數),放到合適的地方。

  1. #include <stdio.h>

  2. void tst_scanf (void) {
  3.   char a;
  4.   int b;
  5.   long c;

  6.   unsigned char x;
  7.   unsigned int y;
  8.   unsigned long z;

  9.   float f,g;
  10.   char d, buf [10];
  11.   int argsread;

  12.   printf ("Enter a signed byte, int, and long\n");
  13.   argsread = scanf ("%bd %d %ld", &a, &b, &c);
  14.   printf ("%d arguments read\n", argsread);

  15.   printf ("Enter an unsigned byte, int, and long\n");
  16.   argsread = scanf ("%bu %u %lu", &x, &y, &z);
  17.   printf ("%d arguments read\n", argsread);

  18.   printf ("Enter a character and a string\n");
  19.   argsread = scanf ("%c %9s", &d, buf);
  20.   printf ("%d arguments read\n", argsread);

  21.   printf ("Enter two floating-point numbers\n");
  22.   argsread = scanf ("%f %f", &f, &g);
  23.   printf ("%d arguments read\n", argsread);
  24. }

復制代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1