STM32CubeIDE使用%f


簡介

在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)

  2. 代碼配置
    在FreeRTOS Kernel啟動之前使用一次vsprintf、sprintf函數,可以是直接使用函數,或者是調用使用過這些函數的函數接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM