标题: keil5中的scanf函数使用问题 [打印本页]

作者: wzl-mcu    时间: 2019-8-29 15:49
标题: keil5中的scanf函数使用问题

问大佬们,sacnf(),括号中需要写入什么?小白一枚

作者: wzl-mcu    时间: 2019-8-29 15:56
是stm32f103单片机,我往USART2发送一串字符,该如何接收这一串字符?请大佬不吝赐教
作者: wzl-mcu    时间: 2019-8-29 15:59
我用的是stm32f103,我往usart2中发送字符串,该如何用scanf接收这字符串?请大佬赐教
作者: aaaaabangw    时间: 2019-8-29 16:48
scanf()函数是系统提供的函数,是从系统缓冲区中获取内容,你单片机没有系统的话是不能用的吧,毕竟没有系统去给你提供缓冲区。。。
作者: 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.51hei.com/bbs/) Powered by Discuz! X3.1