概述
本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過GD32303C_START開發板內進行驗證。
樣品申請
https://www.wjx.top/vm/mB2IKus.aspx
硬件準備
這里準備了GD32303C_START開發板進行驗證。
printf()函數
printf()函數是式樣化輸出函數, 一般用于向準則輸出設備按規定式樣輸出消息。正在編寫步驟時經常會用到此函數。printf()函數的挪用式樣為: printf(“<式樣化字符串>”,<參數表>); 其中式樣化字符串包括兩部分內容: 一部分是正常字符, 這些字符將按原樣輸出;另一部分是式樣化規定字符, 以"%“開端, 后跟一個或幾個規定字符, 用來確定輸出內容式樣。 參量表是需求輸出的一系列參數, 其個數務必與式樣化字符串所闡明的輸出參數個數一樣多, 各參數之間用英文逗號”,"分開, 且順序逐一對應, 不然將會出現意想不到的錯誤。 注意:函數printf從右到左壓棧,然后將先讀取放到棧底,最后讀取的放在棧頂,處理時候是從棧頂開始的,所以我們看見的結果是,從右邊開始處理的。
STM32CUBEMX配置
keil配置
microlib 進行了高度優化以使代碼變得很小。 它的功能比缺省 C 庫少,并且根本不具備某些 ISO C 特性。 某些庫函數的運行速度也比較慢,如果要使用printf(),必須開啟。
代碼
在main.c中,添加頭文件,若不添加會出現 identifier "FILE" is undefined報錯。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
函數聲明和串口重定向:
/* USER CODE BEGIN PFP */
void uart1_data(void); //接收函數
#ifdef __GNUC__ //串口重定向
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
printf()打印。
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
printf("串口打印例程\\r\\n");
HAL_Delay(1000);
}
/* USER CODE END 3 */
結果演示
審核編輯 黃昊宇
-
STM32
+關注
關注
2270文章
10910瀏覽量
356615 -
Printf
+關注
關注
0文章
83瀏覽量
13677
發布評論請先 登錄
相關推薦
評論