zoukankan      html  css  js  c++  java
  • [Keil 学习] printf, scanf函数的用法

    C语言库函数中有一批“标准输入输出函数”,它是以标准的输入输出设备(一般为终端设备)为输入输出对象的,其中用得比较多的是printf和scanf函数了。

    在嵌入式设备中加入C语言的标准输入输出函数,对调试是很有帮助, 这样就可以通过串口来显示结果。根据Keil的帮助文档,虽然printf和scanf函数的高层部分和所使用的目标硬件没有关系,但是底层部分(物理层)却与所使用的硬件密切相关,因此在使用这两个函数之前,需先将与底层相关的程序写好(一般是串口的初始化函数),放到合适的地方。

    以LM4F120 Cortex-M4目标芯片为例,来说明printf, scanf函数的使用方法。

    Step 1. 编写以下两个输入输出函数

    1 int fputc(int ch, FILE *f)
    2 {
    3     UARTCharPut(UART1_BASE, ch);
    4 }
    5 
    6 int fgetc(FILE *f)
    7 {
    8   return UARTCharGet(UART1_BASE);
    9 }

    上面代码中L3是LM4F120 通过串口发送一个字符串的函数,L8是通过串口接收一个字符串的函数(该函数会一直等待直到接收到数据)

    Step 2. 按照下图配置工程

    Step 3. 添加头文件<stdio.h>后即可使用

     1 int
     2 main(void)
     3 {
     4     char ubuf[20];
     5 
     6     /* 设置系统时钟为 50MHz */
     7     SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN);
     8     
     9     /* 初始化串口 */
    10     InitConsole();
    11 
    12     /* 输入一个字符串 */
    13     scanf("%s", ubuf);
    14 
    15     /× 显示输入的字符串 */
    16     printf("%s", ubuf);
    17     
    18     while(1);
    19 }
  • 相关阅读:
    菜鸟打印模板
    centos8安装nginx1.9.1
    centos8安装tomcat8.5
    构建微信公众号服务实例和小程序服务实例
    wxMpMenuService.menuGet()和wxMpMenuService.getSelfMenuInfo()返回值对比
    spring cloud 实现基于Nacos权重的负载均衡
    go开发环境搭建
    国内公共的DNS服务&Centos7 配置公共DNS服务
    Redis
    Spring Boot 集成 PageHelper
  • 原文地址:https://www.cnblogs.com/mr-bike/p/3553236.html
Copyright © 2011-2022 走看看