• STM32CUBEMX开发GD32F303(7)----配置printf


    概述

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。需要GD样片的可以加Q_QUN申请:6_15061293。

    视频教学

    https://www.bilibili.com/video/BV1kR4y1w7zt/

    STM32CUBEMX开发GD32F303(7)----配置printf

    csdn付费课程

    付费课程更加详细。
    https://download.csdn.net/course/detail/37152

    硬件准备

    这里准备了GD32303C_START开发板进行验证。
    在这里插入图片描述

    printf()函数

    printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为: printf(“<式样化字符串>”,<参数表>);
    其中式样化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是式样化规定字符, 以"%“开端, 后跟一个或几个规定字符, 用来确定输出内容式样。 参量表是需求输出的一系列参数, 其个数务必与式样化字符串所阐明的输出参数个数一样多, 各参数之间用英文逗号”,"分开, 且顺序逐一对应, 不然将会出现意想不到的错误。
    注意:函数printf从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。

    STM32CUBEMX配置

    在这里插入图片描述
    在这里插入图片描述

    keil配置

    microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。
    在这里插入图片描述

    代码

    在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。

    /* USER CODE BEGIN Includes */
    #include "stdio.h"
    /* USER CODE END Includes */
    
    • 1
    • 2
    • 3

    函数声明和串口重定向:

    /* USER CODE BEGIN PFP */
    void uart1_data(void);					//接收函数
    #ifdef __GNUC__									//串口重定向
    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    #else
    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    #endif 
    PUTCHAR_PROTOTYPE
    {
        HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
        return ch;
    }
    /* USER CODE END PFP */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    printf()打印。

      /* USER CODE BEGIN WHILE */
      while (1)
      {
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */	
        printf("串口打印例程\r\n");
        HAL_Delay(1000);			
      }
      /* USER CODE END 3 */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果演示

    在这里插入图片描述

    最后

    以上的代码会在Q群里分享。QQ群:615061293。
    或者关注微信公众号『记帖』,持续更新文章和学习资料,可加作者的微信交流学习!
    在这里插入图片描述

  • 相关阅读:
    ASP.NET Core - IStartupFilter 与 IHostingStartup
    【数据结构(二)】单链表(3)
    微信小程序客服功能
    64 最长公共子序列
    【性能】如何计算 Web 页面的 TTI 指标
    MobPush 推送查询API
    MySql -- 读写分离
    2022-07-30 mysql8执行慢SQL[Q17]分析
    GEE引擎架设好之后进游戏时白屏的解决方法——gee引擎白屏修复
    FFmpeg编译安装(windows环境)以及在vs2022中调用
  • 原文地址:https://blog.csdn.net/qq_24312945/article/details/124803294