zoukankan      html  css  js  c++  java
  • 《SLAM导航机器人基础》第三章:单片机与STM32:串口Printf打印实验

    3.5节串口Printf打印实验

    我们在上一节内容里使用了串口,但输出的数据是十六进制数据,难以阅读,在我们想使用串口打印调试信息时并不合适,在这种情况下,我们可以使用printf函数。

    a.实验准备:USB转串口模块,ST-Llink下载器,CHEAPX机器人控制板

    b.实验目的:使用STM32串口进行printf打印

    c.相关知识点:

    printf函数的使用,主要需要学习输出格式,详情在程序中介绍。我们在必应或百度上输入搜索关键字“printf输出格式”,就可以获得很多相关介绍。

    d.编程及运行

    (1)基于3.5节串口收发实验的程序进行修改,增加如下函数,即能使用printf()函数。

    //重定义fputc函数 
    int fputc(int ch, FILE *f)
    {      
        while((USART1->SR&0X40)==0);//等待发送完毕   
      USART1->DR = (u8) ch;      
        return ch;
    }

    (2)编写主函数

    //串口Printf打印实验
    int main(void)
    {        
        u8    a = 10;
        s8    b = -10;
        float c = 11.1; 
        
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //PriorityGroupConfig NVIC中断分组设置 组2(2位抢占优先级,2位响应优先级)
        initDebugSerial(500000);
        showVersion();//显示版本
        
        printf("串口Printf打印实验");//打印字符,直接在双引号内填写内容
        printf("
    ");             //换行使用
    
        printf("类型数据输出:a=%u,b=%d,c=%f 
    ",a,b,c);     //无符号整形%u,有符号整形%d,浮点数%f
        printf("进制数据输出:a=十进制%u,十六进制%X
    ",a,a);  //十六进制表示用%X或%x
        printf("数据占位输出:a=%5u,b=%5d,c=%3.2f 
    ",a,b,c);//整型数字用一个数字表示位置数,浮点数用两个数字分别表示整数部分(包括小数点)和小数部分的显示位置数
        
    }

    (3)实验结果如下,注意不用勾选“HEX显示”。

  • 相关阅读:
    python基础学习之路No.2 数据类型
    练习题 --- 猜数字游戏
    python基础学习之路No.1
    python+selenium第一步
    Self-introduction
    oracle中的number类型
    简单选项卡切换(二)
    简单选项卡切换(一)
    简单焦点轮播(二)(图片可滚动)
    简单焦点轮播(一)
  • 原文地址:https://www.cnblogs.com/Baron-Lu/p/13378418.html
Copyright © 2011-2022 走看看