2.STM32CubeMx+Clion的printf重定向

本文介绍了如何使用Clion开发STM32F407项目,配置外部高速晶振和时钟树,设置USART1为异步通信模式。重点讲解了printf重定向到UART1的方法,以及解决中文乱码问题,需将Clion的字符编码改为GBK。最后,文章提醒在使用printf时注意添加 以确保输出。
摘要由CSDN通过智能技术生成


前言

利用Clion对STM32进行编程实现printf重定向及注意事项。


一、使用步骤

1.创建工程,选择STM32F407芯片,设置外部高速晶振

在这里插入图片描述

2.配置时钟树

在这里插入图片描述

3.选择USART1异步通信模式,其余默认

在这里插入图片描述

4.选择工具链,因为用到Clion开发(Clion开发STM32需要配置),所以选择SW4STM32

在这里插入图片描述

5.生成代码,打开文件夹,选择用Clion打开

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

6.在usart.c文件底部输入代码(同样适用于keil5中V5编译器)

#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;
 }

在这里插入图片描述

7.在usart.h文件引入头文件

#include <stdio.h>

在这里插入图片描述

8.在main.c文件下while(1)循环体中输入测试代码

注意事项,在Clion中printf中必须加上\r\n,否则没有输出,keil中不加有输出

        static float i = 3.14;
        printf("你好\r\n");
        printf("%.1f\r\n", i);
        HAL_Delay(500);

在这里插入图片描述

9.编译生成HEX文件下载进开发板,打开串口助手发现中文乱码

在这里插入图片描述

10.进入设置将Clion的UTF-8字符型改为GBK

在这里插入图片描述

10.编译下载HEX文件到开发板,中文乱码变为正常

在这里插入图片描述

总结

利用Clion进行STM32的编程有许多问题是需要注意的。

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值