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

基于STM32CUBEIDE的printf打印经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-8 22:40
概述
    本章STM32CUBEMX配置STM32F103,配置printf进行打印。
  a, z- _4 `. H
生成例程
/ n; p) a: j. G) {8 K
   使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板。

/ w+ `4 O) i7 L5 C
微信图片_20230408224013.png

5 T) A- w" n' q8 r9 \% K; D
    查看原理图,PA2和PA3设置为开发板的串口。
8 j! ]+ ]6 T% S* [0 K: D1 m
微信图片_20230408224008.png

- W, c- A( r- u; K3 p' _
    配置串口。
微信图片_20230408223958.png

8 J* N8 n* p  F4 `1 kSTM32CUBEIDE配置
4 i( K5 z9 ?. z1 g- U* l  U6 I5 m

. r7 m: J, W" i" j; {
微信图片_20230408223953.png
3 l) e% C, f, _
    若需要打印浮点型,需要勾选下面的选项。

* C1 I3 W9 t: x+ ^# P
微信图片_20230408223949.png
8 \4 F# q2 U! Q. X
8 u9 r6 A: z0 Z$ Q
串口重定向/ g' T% K4 I: \) r# g7 G
    在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。
  1. /* USER CODE BEGIN Includes */
    6 h; f0 A! R5 p& J' t: o1 V+ G) Y
  2. #include "stdio.h"
    ; g% l' e: _: X6 Y0 S! u& W0 ^0 {
  3. /* USER CODE END Includes */
复制代码
+ c4 B' X0 _, ]  D/ H% I
    函数声明和串口重定向:
  1. /* USER CODE BEGIN PFP */
    ' K4 Y+ Q) f3 N; z8 Y. O' V- r
  2. #ifdef __GNUC__                  //串口重定向* s( t! k8 m0 \5 {( x- r, V8 J
  3. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    4 r2 g: b, h0 w: [
  4. #else
    # @0 I2 e* {& u+ \, S: _& ]
  5. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    * L% h0 E# r+ ~$ J2 ]6 p
  6. #endif
    3 m0 C4 W, P. ~& |5 H% l: c
  7. PUTCHAR_PROTOTYPE
    . s4 }+ N2 X' {1 _& K
  8. {6 S6 y1 Z  w% ~# `
  9.     HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);4 j: @4 k% L1 q2 R6 }# Q. ^$ C
  10.     return ch;4 u0 K7 s0 J, o/ i; @! N7 l- i
  11. }
    ( T5 v/ a4 J: e, N% [$ B% O& Q
  12. /* USER CODE END PFP */
复制代码
; {5 W" M$ N+ L! J: m
! f& M3 O& e- y  ^( S9 O6 [) p1 e
打印测试
  1.   /* USER CODE BEGIN WHILE */
    0 z* A2 f" N+ Z$ x
  2.   while (1)6 k; a% w4 ]- z
  3.   {
    ( t- E1 {0 U+ |! X6 N
  4.     /* USER CODE END WHILE */: r( d7 y8 `  P- k: k- H

  5. + j, `( C7 m) w
  6.     /* USER CODE BEGIN 3 */  5 R& e6 E' R  U. f& U
  7.     % x7 y' _5 R% G; N- T5 X8 A
  8.     printf("float=%.2f\r\n",1.2f);
    ! i; R9 n# a( A3 S2 G" d
  9.     HAL_Delay(1000);        ) w3 K9 Q' h. P# ~0 Q: H5 e
  10.   }. u- F2 S$ @% z0 J' ?
  11.   /* USER CODE END 3 */
复制代码
1 f! L3 j6 W. d9 d
结果

* j! p- o# Q, o( Z1 i
微信图片_20230408223944.png
4 _& U/ F: i# P( E$ U
转载自:记帖
如有侵权请联系删除0 K2 G6 L# t# s6 C- D5 K  F

9 d0 R$ z/ u2 r% H, U
; X1 A; x8 _, p6 e& V4 m, i
赞 收藏 评论0 发布时间:2023-4-8 22:40

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版