简介

在STM32CubeIDE编译器下使用sprintf、vsprintf等函数时出现处理%f会导致硬件错误,此处记录修改方法.

平台

  1. 软件版本
    STM32CubeIDE v1.3.1 + STM32CubeMX v5.6.1

  2. 库版本
    STM32L0 HAL v1.11.2 + FreeRTOS v10.0.1

问题记录

在FreeRTOS创建的任务内部使用vsprintf函数处理%f导致硬件错误,但是在FreeRTOS任务之外的程序使用vsprintf函数处理%f可以整行运行

解决方法

  1. 工程配置
    Project->Properties->C/C++ Build->Setting->Tool Setting->勾选 Use float with printf from newlib-nano(-u_printf_float)
    STM32CubeIDE使用%f

  2. 代码配置
    在FreeRTOS Kernel启动之前使用一次vsprintf、sprintf函数,可以是直接使用函数,或者是调用使用过这些函数的函数接口

相关文章:

  • 2021-09-26
  • 2021-10-08
  • 2022-01-22
  • 2021-06-11
  • 2021-11-07
  • 2022-12-23
  • 2021-09-14
  • 2021-04-03
猜你喜欢
  • 2021-05-31
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-24
  • 2022-12-23
相关资源
相似解决方案