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

STM32H5開發(fā)(4)----開發(fā)板介紹

請(qǐng)問STM32L5和STM32H5對(duì)trustzone有哪些不同?
STM32H5和STM32U5在trustzone上有哪些不同?
高性能系列MCU STM32H5介紹
全新高性價(jià)比STM32H5讓性能和安全觸手可及
高性價(jià)比STM32H5 MCU系列手冊(cè)

【話題風(fēng)暴】看看新品STM32H5那些事

STM32H5 DA 之初體驗(yàn)(帶 TrustZone)

如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口

評(píng)論