概述
在使用STM32CUBEIDE開發STM32H5項目時,串口打印被證明是一項極其有益的調試工具,能夠在開發過程中實時輸出信息和調試數據,起到了至關重要的作用。通過充分利用串口打印功能,開發者可以輕松地在代碼中插入打印語句,通過串口將這些信息傳輸至連接于PC端的終端軟件,從而方便地監測程序的狀態以及各變量的實時值。
在項目中,我們可以將標準C庫中的"printf"函數輸出進行重定向,使其輸出通過USART1通信接口進行傳輸。值得注意的是,USART1接口與CH340芯片相連接,而CH340則通過串口連接于PC端。這種設置允許我們使用串口助手等工具來實時捕獲和顯示"printf"函數的輸出內容,從而更加高效地進行程序的調試和性能優化。
最近在弄ST的課程,需要樣片的可以加群申請:615061293 。
樣品申請
https://www.wjx.top/vm/PpC1kRR.aspx
硬件準備
在開始進行開發之前,首先需要準備一塊合適的開發板,所選用的是搭載了STM32H503RB芯片的開發板,,具備了豐富多樣的外設和功能,非常適合各類應用領域的開發需求。
生成例程
通過查看原理圖,可以了解到PB14與USART1的Tx(發送)功能相連接,而PB15則與USART1的Rx(接收)功能相連接。這樣的連接配置使得您可以通過USART1接口進行雙向的串口通信。
在"Configuration"(配置)選項卡下,找到USART1的配置部分。選擇"Async Mode"(異步模式)以啟用異步串口通信。
通過確保將PB14設置為Tx引腳,將PB15設置為Rx引腳,將能夠正確地配置USART1的引腳,實現正確的串口通信連接。這將為開發提供了一個穩定的通信通道,使能夠在開發板上實現數據的雙向傳輸。記得在代碼中使用正確的引腳名稱,以確保與配置一致。
通過將USART1的波特率設置為115200,將確保與其他設備進行穩定和高效的串口通信。這個設置將影響數據傳輸速率,確保您的數據能夠及時、準確地在通信通道中傳遞。在編寫代碼時,確保使用正確的波特率設置,以便在通信的兩端保持一致。
本實驗的STM32H503以250 MHz運行。
配置調試口
代碼生成配置
項目配置
調試配置
點擊小蟲子按鈕進入調試器配置
或者點擊工程。
配置調試器,這里使用jlink進行調試。
串口重定向
在main.c中,添加頭文件,否則可能會出現"identifier 'FILE' is undefined"錯誤。
通過包含頭文件,可以解決"identifier 'FILE' is undefined"錯誤。這是因為該頭文件聲明了與文件輸入/輸出相關的標準函數和類型,包括FILE類型,它在標準輸入/輸出流的處理中非常重要。
請確保在main.c文件中添加該頭文件,并在需要使用文件輸入/輸出或其他標準I/O函數時,以正確的方式使用它們。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
函數聲明和串口重定向:
/* USER CODE BEGIN PFP */
#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 */
打印測試
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
printf("Hello World!nr");
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
結果
審核編輯:湯梓紅
-
STM32
+關注
關注
2270文章
10904瀏覽量
356338 -
串口
+關注
關注
14文章
1555瀏覽量
76583 -
串口通信
+關注
關注
34文章
1626瀏覽量
55560
發布評論請先 登錄
相關推薦
評論