找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

keil5中的scanf函數(shù)使用問題

查看數(shù): 4027 | 評(píng)論數(shù): 4 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-8-29 15:49

正文摘要:

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

回復(fù)

ID:155507 發(fā)表于 2019-8-29 20:48
C語言庫函數(shù)中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,它是以標(biāo)準(zhǔn)的輸入輸出設(shè)備(一般為終端設(shè)備)為輸入輸出對(duì)象的,其中用得比較多的是printf和scanf函數(shù)了。

在嵌入式設(shè)備中加入C語言的標(biāo)準(zhǔn)輸入輸出函數(shù),對(duì)調(diào)試是很有幫助, 這樣就可以通過串口來顯示結(jié)果。根據(jù)Keil的幫助文檔,雖然printf和scanf函數(shù)的高層部分和所使用的目標(biāo)硬件沒有關(guān)系,但是底層部分(物理層)卻與所使用的硬件密切相關(guān),因此在使用這兩個(gè)函數(shù)之前,需先將與底層相關(guān)的程序?qū)懞茫ㄒ话闶谴诘某跏蓟瘮?shù)),放到合適的地方。

  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. }

復(fù)制代碼
ID:458699 發(fā)表于 2019-8-29 16:48
scanf()函數(shù)是系統(tǒng)提供的函數(shù),是從系統(tǒng)緩沖區(qū)中獲取內(nèi)容,你單片機(jī)沒有系統(tǒng)的話是不能用的吧,畢竟沒有系統(tǒng)去給你提供緩沖區(qū)。。。
ID:593646 發(fā)表于 2019-8-29 15:59
我用的是stm32f103,我往usart2中發(fā)送字符串,該如何用scanf接收這字符串?請(qǐng)大佬賜教
ID:593646 發(fā)表于 2019-8-29 15:56
是stm32f103單片機(jī),我往USART2發(fā)送一串字符,該如何接收這一串字符?請(qǐng)大佬不吝賜教

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表