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

基于STM32CUBEIDE的printf打印经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-8 22:40
概述
    本章STM32CUBEMX配置STM32F103,配置printf进行打印。

7 r1 r/ Y  M! {, E  u  [生成例程0 T3 g7 J2 m* j
   使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板。
. Z' T4 E/ _, j% _
微信图片_20230408224013.png
4 M2 r, {0 C! O) ?
    查看原理图,PA2和PA3设置为开发板的串口。

. s+ c" t2 Y5 X
微信图片_20230408224008.png

, T8 y0 N4 d/ Z. f
    配置串口。
微信图片_20230408223958.png
/ n4 q! ], ^. Z( l0 A+ z1 O8 ]7 n
STM32CUBEIDE配置7 t4 b9 x/ K' m8 `8 D1 f. |

7 o( t% t: u/ [1 c+ l, \* r$ u% h
微信图片_20230408223953.png

+ y/ f$ q* T  U, \* d
    若需要打印浮点型,需要勾选下面的选项。

6 Z2 C: i; j4 h) I3 p1 e9 Q
微信图片_20230408223949.png

, v: m; g6 G8 `: H& h9 V: v1 N+ P& E1 F& V. m+ h
串口重定向( ^: r) v. e' T! Z( {& K
    在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。
  1. /* USER CODE BEGIN Includes */' p  `9 S/ x! r! t5 s
  2. #include "stdio.h"
    9 v" h: o( G2 |
  3. /* USER CODE END Includes */
复制代码
! D' X% P' L! F
    函数声明和串口重定向:
  1. /* USER CODE BEGIN PFP */2 i- v1 W' }, s4 W: q2 ?% E2 d) t
  2. #ifdef __GNUC__                  //串口重定向9 S- F5 O. z& X( E2 s% M) y
  3. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)! k! U. k* C0 `/ r. }& }7 P. a) I
  4. #else, T1 i3 j. O3 m) m" t
  5. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)/ G$ \4 S; Q0 O
  6. #endif
    1 |7 B# _) x$ \) Q* ?. R
  7. PUTCHAR_PROTOTYPE
    4 i  l6 H; o( K8 @1 ^
  8. {
    , `* @+ c  e5 Q2 f( B' D- n( I
  9.     HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);- @! N( X/ G( @5 j# I
  10.     return ch;
    ; r1 g0 |+ M* C+ K9 t+ N/ i
  11. }8 S* A2 Z. l4 h& \, `
  12. /* USER CODE END PFP */
复制代码
) O2 e4 ~& t0 X  y( y0 a
+ X# C# F2 ~4 Q& N8 o$ G
打印测试
  1.   /* USER CODE BEGIN WHILE */  m! j& D0 }' _. A  g2 Z5 v8 h" X* S
  2.   while (1)& z, [' u8 `& Q. \5 Z8 }* [7 M# e
  3.   {
    $ Q  F( r9 K  t& w" m  d- N0 @
  4.     /* USER CODE END WHILE */7 q$ ^% p) G2 H- K7 \: @

  5. $ Q1 s! z+ h( @) a4 O
  6.     /* USER CODE BEGIN 3 */  
    " e' |) N8 _+ H4 \& j: A' \
  7.     3 {1 j4 X0 e1 c9 b3 C' e; f" z$ d4 S
  8.     printf("float=%.2f\r\n",1.2f);
    ' [& ~# l+ X9 ]4 Y0 ^! t! |* Q' |1 L
  9.     HAL_Delay(1000);        : i) D4 H- x" i$ _0 [
  10.   }
    ) F. f) V& F0 U
  11.   /* USER CODE END 3 */
复制代码

2 {6 r0 Q. g  I$ C' C% o结果
& n6 G" M/ F; [) J. J  E
微信图片_20230408223944.png

4 x" f9 r7 E5 e6 j+ h3 [  q* B& S
转载自:记帖
如有侵权请联系删除7 S" g1 I: A' K/ r6 n8 Z! J

. w" J8 r9 }' @. H' R* L6 @. }4 U* n+ x) q; G% V/ I- i# d# l6 }  K
收藏 评论0 发布时间:2023-4-8 22:40

举报

0个回答

所属标签

相似分享

官网相关资源

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