你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32CUBEIDE的printf打印经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-8 22:40
概述
    本章STM32CUBEMX配置STM32F103,配置printf进行打印。
/ |& O. V; S+ p8 y
生成例程
: D- H7 n7 d; W
   使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板。
8 q  j0 Y7 R% h$ X6 r( q4 `: O0 t' r& n
微信图片_20230408224013.png
0 H& Q% C( V0 A( V0 y9 K
    查看原理图,PA2和PA3设置为开发板的串口。
9 y$ }3 e% q: `
微信图片_20230408224008.png

0 I( H' Q+ m; i+ G4 s7 b
    配置串口。
微信图片_20230408223958.png
: o# q. j4 x- ?' ]
STM32CUBEIDE配置" n2 f% w' s& e0 {
2 C3 x0 m* ]" @
微信图片_20230408223953.png

& ~! ?7 d& h0 T8 I, @* K
    若需要打印浮点型,需要勾选下面的选项。

0 l! |- {. k3 V2 @, Y
微信图片_20230408223949.png
  G" K( ?% R$ c

9 g$ |" a4 B+ [1 _# f串口重定向5 [) Y, l& Y* W9 n7 N
    在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。
  1. /* USER CODE BEGIN Includes */
    4 z( w5 {0 Y: _* e) o, h. L
  2. #include "stdio.h"
    # T3 a8 ?2 p1 I& x
  3. /* USER CODE END Includes */
复制代码
3 o! C- N' g+ G! j
    函数声明和串口重定向:
  1. /* USER CODE BEGIN PFP */
    # @+ q) y4 Z2 d& D5 l6 h( v8 R. f
  2. #ifdef __GNUC__                  //串口重定向$ b% j! N4 c. e& S) B* S. r
  3. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)  f4 a2 C2 i9 t
  4. #else
    ! f! [. N  k' D! b
  5. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    * {2 _6 q+ c$ m% `
  6. #endif
    2 H- C+ q; R8 ]/ V/ o
  7. PUTCHAR_PROTOTYPE
    # i" w% D+ h9 r6 f* c
  8. {- ?' G. @4 d7 e0 Y7 W
  9.     HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);- z2 D8 k) @. ~& \9 D! u
  10.     return ch;
    # K2 {. s4 [5 R7 P$ p$ l4 s
  11. }
    5 ~# `4 b/ D4 v* R
  12. /* USER CODE END PFP */
复制代码
* T* B- w' ^/ C  u* v7 r

* m; c2 k* A+ R$ }" m# k# B打印测试
  1.   /* USER CODE BEGIN WHILE */
    ) {' `+ {8 i3 `/ b+ _
  2.   while (1)) u  K9 u) ~+ N/ A' X  ~; p
  3.   {4 c' V" e0 T  _; F8 I; r# R0 b9 A
  4.     /* USER CODE END WHILE */
    ; U2 Y1 A" q; L- p1 M
  5. 1 ~6 B, |8 [9 R, t; i
  6.     /* USER CODE BEGIN 3 */  7 D; Q; I4 f/ h) ~. ?0 G
  7.     0 g7 Z$ {: W. g" u
  8.     printf("float=%.2f\r\n",1.2f);( F& r+ Y2 K9 }5 q
  9.     HAL_Delay(1000);        
    : S9 p6 H% Q* \- i9 R; b
  10.   }8 @3 ]7 U6 H# V0 t% F; o$ ]
  11.   /* USER CODE END 3 */
复制代码
9 {" K" a/ e) e5 D3 t( `% v: C
结果
2 E+ [3 z9 S) b& \! A/ q6 v1 i3 v0 X
微信图片_20230408223944.png

% b9 ]( S6 w" {! \1 P$ \" {
转载自:记帖
如有侵权请联系删除
. \7 ?3 K! s- E: C5 g( E3 h

4 C7 M. `+ m: X* V: t' H' n
. P+ ~. U; E: z! w2 g9 N
收藏 评论0 发布时间:2023-4-8 22:40

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版