日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32C552開發(fā)(3)----配置串口打印

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2026-06-08 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

在傳統(tǒng) STM32 開發(fā)中,我們通常會(huì)通過 STM32CubeMX 配置 USART,并重定向 printf() 到串口,用于輸出調(diào)試信息。STM32C5 使用新的 STM32CubeMX2 和 HAL2 驅(qū)動(dòng)體系,工程結(jié)構(gòu)和部分 API 命名相比傳統(tǒng) HAL 有所變化,因此串口配置和代碼編寫也需要稍作適配。

需要樣片的可以加群申請(qǐng):925643491 / 615061293 。

視頻教學(xué)

[https://www.bilibili.com/video/BV1n2VZ6PE2Y/]

樣品申請(qǐng)

[https://www.wjx.top/vm/OhcKxJk.aspx#]

源碼下載

[https://download.csdn.net/download/qq_24312945/92952816]

硬件準(zhǔn)備

首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是自己繪制的開發(fā)板,需要的可以進(jìn)行申請(qǐng)。 主控為STM32C552CET6/STM32C552CEU6

參考程序

https://github.com/CoreMaker-lab/STM32C552_SENSOR

https://gitee.com/CoreMaker/STM32C552_SENSOR

生成STM32CUBEMX2

用STM32CUBEMX2生成例程,這里使用MCU為STM32C552CET6/STM32C552CEU6。

  1. 打開 STM32CubeMX2 后,進(jìn)入 Home 首頁
  2. 點(diǎn)擊 MCU,基于具體芯片型號(hào)創(chuàng)建工程

在 MCU name 中輸入STM32C552CET6/STM32C552CEU6,選擇對(duì)應(yīng)的 STM32C5 芯片型號(hào)后,點(diǎn)擊 Continue 進(jìn)入下一步工程配置。

填寫工程名稱和保存路徑后,點(diǎn)擊 “Automatically Download, Install & Create Project”,STM32CubeMX2 會(huì)自動(dòng)下載所需軟件包并創(chuàng)建工程。

STM32CubeMX2 提示 Project Successfully Created 后,點(diǎn)擊右下角 “Launch Project” 進(jìn)入工程配置界面。

時(shí)鐘樹配置

  1. 點(diǎn)擊左側(cè)外設(shè)配置入口,進(jìn)入 Peripherals 配置界面
  2. 在 System 分類下選擇 RCC,用于配置系統(tǒng)時(shí)鐘源
  3. HSE Source 選擇 Crystal/ceramic resonator,啟用外部高速晶振
  4. LSE Source 選擇 Crystal/ceramic resonator,啟用外部低速晶振

  1. 點(diǎn)擊左側(cè) Clock 圖標(biāo),進(jìn)入時(shí)鐘樹配置界面
  2. HSE OSC:設(shè)置外部高速晶振頻率,這里配置為 24 MHz
  3. PSI Mux / PLL:選擇并配置 PLL 時(shí)鐘源,用于倍頻生成系統(tǒng)主頻
  4. System Mux:選擇系統(tǒng)時(shí)鐘來源,當(dāng)前系統(tǒng)主頻配置為 144 MHz

DEBUG配置

在 Peripherals 中選擇 Cortex → DEBUG,將 Mode 配置為 Single-wire trace asynchronous,用于后續(xù)程序下載、在線調(diào)試和 Trace 調(diào)試功能。

串口配置

查看原理圖,PA9和PA10設(shè)置為開發(fā)板的串口。

  1. 在左側(cè) Peripherals 中選擇 Connectivity → USART1
  2. Mode 選擇 Async,表示配置為異步串口模式
  3. Function used by the component 顯示為 UART,說明 USART1 在異步模式下使用 UART HAL 驅(qū)動(dòng)
  4. 串口參數(shù)配置為:115200 波特率、8 位數(shù)據(jù)位、無校驗(yàn)、1 位停止位、收發(fā)模式

  1. GPIO Tx:USART1_TX 選擇 PA9
  2. GPIO Rx:USART1_RX 選擇 PA10
  3. PA9 / PA10 均配置為 Alternate 復(fù)用功能模式
  4. Pull 選擇 No pull-up and no pull-down,Output type 選擇 Push pull,Speed 選擇 Low

生成項(xiàng)目

  1. 修改配置后,左下角會(huì)提示 Click to save,需要先保存當(dāng)前工程配置
  2. 點(diǎn)擊左側(cè) Project settings,進(jìn)入工程生成設(shè)置頁面
  3. 在 IDE Project Generation 中選擇工程格式和工具鏈,本例選擇 CMake + GCC,然后點(diǎn)擊 Generate IDE project 生成工程

導(dǎo)入STM32CubeIDE

  1. 打開 STM32CubeIDE,點(diǎn)擊菜單欄 File
  2. 選擇 Import...,準(zhǔn)備導(dǎo)入 STM32CubeMX2 生成的 CMake 工程

  1. 在 Import 窗口中展開 Import STM32 Project
  2. 選擇 STM32 CMake Project
  3. 點(diǎn)擊 Next,進(jìn)入 CMake 工程路徑選擇頁面

  1. Project name:填寫導(dǎo)入到 STM32CubeIDE 中顯示的工程名稱
  2. Source directory:選擇 STM32CubeMX2 生成的 CMake 工程目錄
  3. 點(diǎn)擊 Next,繼續(xù)完成工程導(dǎo)入

  1. Toolchain:選擇 MCU ARM GCC,表示使用 ARM GCC 工具鏈進(jìn)行編譯
  2. MCU:確認(rèn)芯片型號(hào)為 STM32C552CETx,與前面 STM32CubeMX2 中選擇的 MCU 保持一致
  3. CPU/Core:確認(rèn)內(nèi)核為 Cortex-M33,Core 為 0
  4. 點(diǎn)擊 Finish,完成 CMake 工程導(dǎo)入

設(shè)置工程編碼

  1. 在 Project Explorer 中選中當(dāng)前工程
  2. 點(diǎn)擊菜單欄 Project
  3. 選擇 Properties,進(jìn)入工程屬性設(shè)置


5. 在工程屬性中選擇 Resource
6. Text file encoding 選擇 Other
7. 編碼格式輸入 GBK
8. 點(diǎn)擊 Apply and Close 保存設(shè)置

添加頭文件

在 main.c 中添加頭文件

#include "mx_usart1.h"
#include < stdio.h >
#include < string.h >

printf 重定向

為了讓 printf() 輸出到 USART1,需要重寫 _write() 函數(shù)。GCC 工程中,printf() 底層會(huì)調(diào)用 _write() 輸出字符,因此只需要在 _write() 中調(diào)用 HAL_UART_Transmit(),就可以把 printf() 的內(nèi)容通過串口發(fā)送出去。

int _write(int file, char *ptr, int len)
{
    hal_uart_handle_t *huart1 = mx_usart1_uart_gethandle();

    if (huart1 != NULL)
    {
        HAL_UART_Transmit(huart1, ptr, len, 1000);
    }

    return len;
}

串口打印測(cè)試

在 mx_system_init() 初始化完成后,可以直接調(diào)用 printf() 進(jìn)行串口打印測(cè)試

hal_uart_handle_t *huart1 = mx_usart1_uart_gethandle();

printf("Hello STM32C5 UART printfrn"); printf("STM32C5 串口打印測(cè)試rn"); char msg[] = "Hello STM32C5 UARTrn";

HAL_UART_Transmit(huart1, msg, strlen(msg), 1000);

演示

主程序

  1. 在 Project Explorer 中打開 main.c 文件
  2. 在 while(1) 主循環(huán)中添加 LED 控制代碼
  3. 使用 HAL_GPIO_TogglePin() 或 HAL_GPIO_WritePin() 實(shí)現(xiàn) LED 閃爍
  4. 底部 Console 顯示 Download verified successfully,說明程序已成功下載到開發(fā)板

while (1) {

        HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_14);
        HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_15);
        HAL_GPIO_TogglePin(HAL_GPIOA, HAL_GPIO_PIN_8);
        HAL_Delay(500);
        HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_14);
        HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_15);
        HAL_GPIO_TogglePin(HAL_GPIOA, HAL_GPIO_PIN_8);
        HAL_Delay(500);

        HAL_GPIO_WritePin(LED1_PORT, LED1_PIN, HAL_GPIO_PIN_SET);
        HAL_GPIO_WritePin(LED2_PORT, LED2_PIN, HAL_GPIO_PIN_SET);
        HAL_GPIO_WritePin(LED3_PORT, LED3_PIN, HAL_GPIO_PIN_SET);
        HAL_Delay(500);

        HAL_GPIO_WritePin(LED1_PORT, LED1_PIN, HAL_GPIO_PIN_RESET);
        HAL_GPIO_WritePin(LED2_PORT, LED2_PIN, HAL_GPIO_PIN_RESET);
        HAL_GPIO_WritePin(LED3_PORT, LED3_PIN, HAL_GPIO_PIN_RESET);
        HAL_Delay(500);

    }

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2315

    文章

    11223

    瀏覽量

    375710
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32H5開發(fā)(5)----串口打印配置

    在使用STM32CUBEIDE開發(fā)STM32H5項(xiàng)目時(shí),串口打印被證明是一項(xiàng)極其有益的調(diào)試工具,能夠在
    的頭像 發(fā)表于 12-01 15:04 ?2801次閱讀
    <b class='flag-5'>STM32</b>H5<b class='flag-5'>開發(fā)</b>(5)----<b class='flag-5'>串口</b><b class='flag-5'>打印</b><b class='flag-5'>配置</b>

    STM32WB55開發(fā)(4)----配置串口打印Debug調(diào)試信息

    STM32WB55系列微控制器上進(jìn)行開發(fā)時(shí),實(shí)時(shí)監(jiān)控應(yīng)用程序的運(yùn)行情況和調(diào)試潛在問題是至關(guān)重要的。使用串口(USART/UART)進(jìn)行Debug信息打印是一種簡便、高效的方法。下面是
    的頭像 發(fā)表于 12-01 15:48 ?2876次閱讀
    <b class='flag-5'>STM32</b>WB55<b class='flag-5'>開發(fā)</b>(4)----<b class='flag-5'>配置</b><b class='flag-5'>串口</b><b class='flag-5'>打印</b>Debug調(diào)試信息

    stm32實(shí)現(xiàn)串口打印輸出

    學(xué)習(xí)目標(biāo):stm32實(shí)現(xiàn)串口打印輸出學(xué)習(xí)內(nèi)容:1、串口原理圖分析右上圖可以看出:我們采用USB轉(zhuǎn)串口的形式,進(jìn)行pc與單片機(jī)之間的通信,其中
    發(fā)表于 11-26 13:51 ?52次下載
    <b class='flag-5'>stm32</b>實(shí)現(xiàn)<b class='flag-5'>串口</b><b class='flag-5'>打印</b>輸出

    STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX

    STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX
    發(fā)表于 11-29 16:06 ?56次下載
    <b class='flag-5'>STM32</b>F407的<b class='flag-5'>串口</b>UART 基礎(chǔ)<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX

    stm32開發(fā)3D打印機(jī)(零)——打印配置(未完成)

    stm32開發(fā)3D打印機(jī)(零)——打印配置(未完成)
    發(fā)表于 12-07 14:06 ?24次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>3</b>D<b class='flag-5'>打印</b>機(jī)(零)——<b class='flag-5'>打印</b>板<b class='flag-5'>配置</b>(未完成)

    stm32開發(fā)3D打印機(jī)(一)——介紹(已完成)

    如何運(yùn)用stm32開發(fā)3D打印機(jī)
    發(fā)表于 12-07 14:36 ?49次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>3</b>D<b class='flag-5'>打印</b>機(jī)(一)——介紹(已完成)

    K027 基于51/STM32 SD_mini/Micro卡模塊測(cè)試 串口打印讀取值

    函數(shù)3. 功能函數(shù)4. 主函數(shù)七.資料獲取一. 實(shí)現(xiàn)功能上電后串口助手打印讀取之前存儲(chǔ)的數(shù)據(jù)二. 硬件清單SD_mini/Micro卡模塊STM32F103C8T6/STC89
    發(fā)表于 12-23 19:29 ?0次下載
    K027 基于51/<b class='flag-5'>STM32</b> SD_mini/Micro卡模塊測(cè)試 <b class='flag-5'>串口</b><b class='flag-5'>打印</b>讀取值

    STM32 | 串口打印知多少?

    常規(guī)打印方法 在STM32的應(yīng)用中,我們常常對(duì)printf進(jìn)行重定向的方式來把打印信息printf到我們的串口助手。在...
    發(fā)表于 12-24 19:11 ?2次下載
    <b class='flag-5'>STM32</b> | <b class='flag-5'>串口</b><b class='flag-5'>打印</b>知多少?

    Arduino IDE配置STM32開發(fā)環(huán)境和程序燒錄

    Arduino IDE配置STM32開發(fā)環(huán)境和燒錄前言:最近在制作3D打印機(jī),自己畫了一塊STM32
    發(fā)表于 12-24 19:30 ?9次下載
    Arduino IDE<b class='flag-5'>配置</b><b class='flag-5'>STM32</b><b class='flag-5'>開發(fā)</b>環(huán)境和程序燒錄

    STM32串行通訊時(shí)打印到多個(gè)USART串口

    在我們使用STM32串行通訊時(shí),可能用到多個(gè)USART串口,而此時(shí)printf只能向一個(gè)串口打印,見上篇,此時(shí)我們需要按照如下編輯個(gè)新的函數(shù),實(shí)現(xiàn)向其它
    發(fā)表于 12-29 19:31 ?11次下載
    <b class='flag-5'>STM32</b>串行通訊時(shí)<b class='flag-5'>打印</b>到多個(gè)USART<b class='flag-5'>串口</b>

    STM32CUBEIDE(6)----printf打印配置

    板 查看原理圖,PA2和PA3設(shè)置為開發(fā)板的串口。 配置串口。 STM32CUBEIDE
    的頭像 發(fā)表于 11-28 17:23 ?5778次閱讀
    <b class='flag-5'>STM32</b>CUBEIDE(6)----printf<b class='flag-5'>打印</b><b class='flag-5'>配置</b>

    RA4M2開發(fā)(1)----使用串口進(jìn)行打印

    本篇文章主要介紹如何使用e2studio對(duì)瑞薩RA4M2開發(fā)板進(jìn)行串口打印配置
    的頭像 發(fā)表于 07-27 10:00 ?2932次閱讀
    RA4M2<b class='flag-5'>開發(fā)</b>(1)----使用<b class='flag-5'>串口</b>進(jìn)行<b class='flag-5'>打印</b>

    STM32C552開發(fā)(1)----點(diǎn)亮LED

    STM32C552 & SENSOR是一款基于STM32C5系列微控制器的評(píng)估套件。該微控制器采用了40nm工藝制造,具有更快的FLASH訪問,更高的性能以及更低的功耗。此外,該套件具有豐富
    的頭像 發(fā)表于 06-08 11:08 ?336次閱讀
    <b class='flag-5'>STM32C552</b><b class='flag-5'>開發(fā)</b>(1)----點(diǎn)亮LED

    STM32C552開發(fā)(2)----BOOT_SEL設(shè)置

    在實(shí)際項(xiàng)目開發(fā)或量產(chǎn)維護(hù)中,除了 ST-LINK 下載方式外,很多場景還會(huì)使用 USART 串口、USB DFU、SPI 或 FDCAN 等方式進(jìn)行程序升級(jí)。此時(shí) MCU 需要先進(jìn)入 ST 出廠
    的頭像 發(fā)表于 06-08 11:11 ?377次閱讀
    <b class='flag-5'>STM32C552</b><b class='flag-5'>開發(fā)</b>(2)----BOOT_SEL設(shè)置

    STM32C542開發(fā)(3)----配置串口打印

    在傳統(tǒng) STM32 開發(fā)中,我們通常會(huì)通過 STM32CubeMX 配置 USART,并重定向 printf() 到串口,用于輸出調(diào)試信息。
    的頭像 發(fā)表于 06-08 11:12 ?414次閱讀
    <b class='flag-5'>STM32C</b>542<b class='flag-5'>開發(fā)</b>(<b class='flag-5'>3</b>)----<b class='flag-5'>配置</b><b class='flag-5'>串口</b><b class='flag-5'>打印</b>
    长白| 怀化市| 延庆县| 晋州市| 营口市| 航空| 耒阳市| 威海市| 临邑县| 长岭县| 东阿县| 南宁市| 定远县| 光泽县| 西充县| 将乐县| 崇礼县| 南乐县| 娄底市| 财经| 台东县| 庄浪县| 澄迈县| 阿克陶县| 方城县| 龙胜| 南充市| 汶川县| 巴马| 曲麻莱县| 蕉岭县| 徐州市| 克山县| 保康县| 云和县| 施甸县| 贵港市| 上栗县| 新晃| 曲阜市| 颍上县|