Atollic TrueStudio開發工具printf函式輸出使用
有時候想收藏一些相關的文章,又不想重新百度,因此直接轉載到這裡來了,方便自己回想、複習,下次新建工程時候,又可以直接複製貼上了。在此謝謝原作者Y-D
在TrueStudio開發工具中使用printf函式如果第一次接觸可能會找不到方向,現將最近剛剛接觸STM32cubemx配置生成TrueStudio工程串列埠列印的使用過程進行如下說明:
(1) STM32cubemx建立基本工程開啟軟體在Pinout選項卡下按照如圖選擇配置串列埠1
A、選擇系統時鐘來源外部晶振
B、此處我現在JLINK的SWD模式做程式的除錯,所以選擇如下:
C、串列埠1配置為非同步通訊模式
2、配置微控制器執行頻率按照下圖設定為主頻72Mhz
3、在Configuration選項卡下配置串列埠相關引數
點開USART1
就此基本配置完成,現在開始生成TrueStudio工程,開啟工程設定設定程式工程儲存的路勁、名稱、環境支援堆疊大小設定、.c/.h檔案獨立建立等設定。如下圖:
設定完成,點選如下圖示開始生成工程。
生成工程編譯無誤
4、開始編寫及設定讓你的程式支援printf輸出
A、首先我在usart.c中新增如下函式即可讓TrueStudio支援printf輸出(注意程式碼必須新增在USER CODEBEGIN x和USER CODE ENDX
/* USER CODE BEGIN 0 */
#include "stdio.h"
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
PUTCHAR_PROTOTYPE
{
// 注意下面第一個引數是&huart1,因為cubemx配置了串列埠1自動生成的
HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
return ch;
}
#endif
int
{
int DataIdx;
for (DataIdx = 0; DataIdx < len;DataIdx++)
{
__io_putchar(*ptr++);
}
return len;
}
/* USER CODE END 0 */
就此便可直接通過printf輸出資料但是沒法輸出浮點數,我們可以進行如下設定即可完美支援浮點數的輸出。在工程屬性下找到C/C++ build->Settings->Tool Settings->C Linker->Miscellaneous->Other options 選項空中填寫:-u_printf_float即可。到此為止TrueStudio即可支援printf的所有資料型別輸出。
程式輸出:
效果圖如下:
10.jpg (52.28 KB, 下載次數: 21)
2018-7-21 16:23 上傳
高手請繞過。。。。。。。