找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3734|回复: 4
收起左侧

keil5中的scanf函数使用问题

[复制链接]
ID:593646 发表于 2019-8-29 15:49 | 显示全部楼层 |阅读模式
$Y]K75OP56O%865MIA]$TGQ.png
问大佬们,sacnf(),括号中需要写入什么?小白一枚
回复

使用道具 举报

ID:593646 发表于 2019-8-29 15:56 | 显示全部楼层
是stm32f103单片机,我往USART2发送一串字符,该如何接收这一串字符?请大佬不吝赐教
回复

使用道具 举报

ID:593646 发表于 2019-8-29 15:59 | 显示全部楼层
我用的是stm32f103,我往usart2中发送字符串,该如何用scanf接收这字符串?请大佬赐教
回复

使用道具 举报

ID:458699 发表于 2019-8-29 16:48 | 显示全部楼层
scanf()函数是系统提供的函数,是从系统缓冲区中获取内容,你单片机没有系统的话是不能用的吧,毕竟没有系统去给你提供缓冲区。。。
回复

使用道具 举报

ID:155507 发表于 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. }

复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表