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

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

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

STM32CubeMX生成的代碼中串口如何發(fā)送數(shù)據(jù)?

撞上電子 ? 2025-01-13 21:02 ? 次閱讀

第一節(jié) 硬件解讀

大家的開發(fā)板到手之后,可以看見,只有一個USB口,那個口就是串口,開發(fā)板A和開發(fā)板B共用一個串口,通過按鍵切換。

我們以開發(fā)板A為例,原理圖如下:

a120974e-d1ae-11ef-9434-92fbcf53809c.png

開發(fā)板A芯片上面的PA2和PA3分別是NODEA_USART_TX和NODEA_USART_RX,而開發(fā)板A和Debugger開發(fā)板的連接如下:

a139f266-d1ae-11ef-9434-92fbcf53809c.png

a14d66c0-d1ae-11ef-9434-92fbcf53809c.png

通過查看CH443K芯片的引腳可以得到,SEL引腳的高低電平,可以讓CH443K芯片在1腳4腳連接或者3腳4腳連接中選擇。CH443K芯片引腳說明如下:

a1606f72-d1ae-11ef-9434-92fbcf53809c.png

當CH443K芯片的SEL為高電平時,其芯片COM和CH1引腳導通。DEBUGGER_TX和B_TX導通,DEBUGGER_RX和B_RX導通;反之DEBUGGER_TX和A_TX導通,DEBUGGER_RX和A_RX導通。

那么,DEBUGGER_TX和DEBUGGER_RX連接在哪?當然是DAPLINK板的MCU上面啦,如下圖:

a177debe-d1ae-11ef-9434-92fbcf53809c.png

連接到Debugger板的MCU之后,這個MCU通過內(nèi)部程序(不需要我們寫,比賽的時候已經(jīng)寫好了)轉(zhuǎn)到唯一的USB口上,也就是我們的串口上。

a1870d12-d1ae-11ef-9434-92fbcf53809c.png

第二節(jié) CuebMX的配置

第一步:選擇PA2的引腳的USART2_Tx功能,如下圖:

a1a18ce6-d1ae-11ef-9434-92fbcf53809c.png

第二步:選擇PA3引腳的USART_RX功能,如下圖:

a1bb1e2c-d1ae-11ef-9434-92fbcf53809c.png

第三步:發(fā)現(xiàn)USART相關(guān)的引腳是黃色的,不是綠色的,這是為什么呢?注意:黃色是異常提醒,綠色是正常的。

a1d1c0a0-d1ae-11ef-9434-92fbcf53809c.png

第四步:如下圖配置USART2。注意:2代表的是異步全雙工通信;6代表波特率,數(shù)據(jù)長度,校驗位和停止位。這里波特率是115200,比賽基本上都是9600。

a1da9c5c-d1ae-11ef-9434-92fbcf53809c.png

其中:具體Mode配置信息如下:

Mode:代表串口模式,配置為(異步)Asynchronous,(同步主機)Synchronous Master,(同步從機)Synchronous Slave,(單線半雙工)Single Wire (Half - Duplex),(多處理器通信)Multiprocessor Communication,(紅外通訊)IrDA ,(局域互聯(lián)網(wǎng)模式)LIN ,(智能卡模式)SmartCard ;

Hard Flow Control RS232:代表RS232的硬件控制流,常用引腳為CTS,RTC,CTS/RTS或者Disabled;

Hard Flow Control RS485:代表RS485的硬件控制流;

其中:具體Configuration配置信息如下:

Baud Rate:代表串口波特率,常用波特率為9600,115200等;

Word Length:代表字節(jié)位,常用字節(jié)為:7位,8位或者9位;

Parity:代表校驗位;常用為:(無校驗)None,(奇校驗)Even或者Odd(偶校驗)Odd;

Stop Bits:代表停止位,常用為:0.5,1,1.5或者2;

Data Direction:代表數(shù)據(jù)傳輸方向,常用為(發(fā)送和接收)Receive and Transmit,(接收)Receive或者(發(fā)送)Transmit;

Over Sampling:代表過采樣,常用為8倍采樣和16倍采樣,8倍采樣,也就是一個數(shù)據(jù)位采樣8次,16倍則是16次。采樣率高精度會高一些,當然相應(yīng)的功耗也會變高;

Single Sample:代表單次采樣,使能時使用單次采樣值,否則使用三次采樣值。前面的過采樣會有8或16次采樣值,當選擇單次采樣時,會使用其中的一次采樣值作為數(shù)據(jù)位邏輯電平的結(jié)果。三次采樣則用三次采樣的判斷結(jié)果為準。同樣三次采樣也是為了確保數(shù)據(jù)的準確性。

ClockPrescaler:代表時鐘預分頻器;

Fifo Mode:代表數(shù)據(jù)緩存模式;

Txfifo Threshold:代表發(fā)送數(shù)據(jù)的閾值;

Rxfifo Threshold:代表接收數(shù)據(jù)的閾值;

Auto Baudrate:代表自動波特率,顧名思義,可以根據(jù)接收到的數(shù)據(jù)進行波特率自適應(yīng);

TX Pin Active Level Inversion:代表發(fā)送電平反轉(zhuǎn),發(fā)送引腳電平極性反轉(zhuǎn),正常情況下空閑電平為高電平,使能該功能后變成空閑電平為低電平;

RX Pin Active Level Inversion:代表接收電平反轉(zhuǎn),接收引腳電平極性反轉(zhuǎn),正常情況下空閑電平為高電平,使能該功能后變成空閑電平為低電平;

Data Inversion:代表數(shù)據(jù)電平反轉(zhuǎn)收發(fā)數(shù)據(jù)的邏輯電平極性反轉(zhuǎn),正常是高電平為邏輯1,低電平為邏輯0,使能該功能后則變成低電平為邏輯1,高電平為邏輯0。校驗位也隨著反轉(zhuǎn);

TX and RX Pins Swapping:代表收發(fā)引腳互換,接收和發(fā)送引腳互換,適用于外部硬件連線錯誤時進行切換。

Overrun:代表溢出檢測,:用于開啟接收溢出檢測,使用該功能后,當接收數(shù)據(jù)未取出時,又接收到一個數(shù)據(jù),此時會觸發(fā)一個溢出標志。

DMA on RX Error:代表接收錯誤時不禁用DMA,使能該功能后,即使出現(xiàn)接收錯誤也不會關(guān)閉DMA傳輸;

MSB First:代表數(shù)據(jù)高位先發(fā),正常數(shù)據(jù)是先發(fā)低位再發(fā)高位,使能該功能后可以先發(fā)高位數(shù)據(jù);

第三節(jié) MDK代碼

第一步:編寫串口發(fā)送函數(shù),如下圖:

a1f60cee-d1ae-11ef-9434-92fbcf53809c.png

第二步:聲明串口發(fā)送函數(shù),如下圖:

a20c40cc-d1ae-11ef-9434-92fbcf53809c.png

第三步:編寫主函數(shù),如下圖:

a219ef88-d1ae-11ef-9434-92fbcf53809c.png

第四步,配置MicroLIB庫,如下:【注意:不使用printf,可以不配置;如果使用printf但是不配置,程序?qū)⒖ㄋ馈?/strong>

a22d861a-d1ae-11ef-9434-92fbcf53809c.png

第五步:配置好下載器之后,編譯代碼,下載即可。

第六步:打開串口軟件,如下圖配置:選擇串口號;接收緩存區(qū)選擇HEX模式,波特率選擇115200;串口號請掃描,選擇正確的串口號,不一定是COM4;最后打開串口。

a2467242-d1ae-11ef-9434-92fbcf53809c.png ? ?

第四節(jié) 實驗現(xiàn)象

注意:

1,請用USB線連接電腦與開發(fā)板;

2,請選擇A開發(fā)板;

3,一定要勾選微庫。

現(xiàn)象:

1,串口發(fā)送以115200波特率發(fā)送數(shù)據(jù)。

來源:撞上電子微信公眾號

版權(quán):東莞市東城墨竹公子電子工作室

日期:2024.11.13

第五節(jié) 課后作業(yè)

利用按鍵,串口打印按鍵按下的次數(shù)。

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

    關(guān)注

    2270

    文章

    10914

    瀏覽量

    356723
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1557

    瀏覽量

    76717
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5087

    瀏覽量

    97792
收藏 人收藏

    評論

    相關(guān)推薦

    請問simulink/STM32CubeMX如何聯(lián)合生成STM32串口發(fā)送代碼?

    請問simulink/STM32CubeMX如何聯(lián)合生成STM32串口發(fā)送代碼
    發(fā)表于 11-19 06:46

    STM32cubeMX串口使用教程免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM32cubeMX串口使用教程免費下載。
    發(fā)表于 12-03 11:31 ?27次下載
    <b class='flag-5'>STM32cubeMX</b>的<b class='flag-5'>串口</b>使用教程免費下載

    STM32CUBEMX配置教程(八)STM32串口輪詢發(fā)送中斷接收+重定義+優(yōu)化

    有些遺忘,因此寫下這一系列教程以供記憶,順便讓我這個大萌新給廣大小萌新提供一些學習幫助。此次工程效果:串口115200波特率,接收串口助手XCOM發(fā)送數(shù)據(jù)
    發(fā)表于 11-19 13:36 ?11次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(八)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>輪詢<b class='flag-5'>發(fā)送</b>中斷接收+重定義+優(yōu)化

    stm32CubeMX生成程序完成流水燈以及完成STM32的USART串口通訊程序?qū)崿F(xiàn)STM32系統(tǒng)給上位機(win10)連續(xù)發(fā)送

    一、STM32CubeMX簡介及安裝STM32CubeMX 是 ST 意法半導體近幾年來大力推薦的STM32 芯片圖形化配置工具,目的就是為了方便開發(fā)者, 允許用戶使用圖形化向?qū)?b class='flag-5'>生成C
    發(fā)表于 11-26 12:51 ?6次下載
    在 <b class='flag-5'>stm32CubeMX</b>下<b class='flag-5'>生成</b>程序完成流水燈以及完成<b class='flag-5'>STM32</b>的USART<b class='flag-5'>串口</b>通訊程序?qū)崿F(xiàn)<b class='flag-5'>STM32</b>系統(tǒng)給上位機(win10)連續(xù)<b class='flag-5'>發(fā)送</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'>STM32CubeMX</b>

    STM32CubeMX生成代碼在SW4STM32下移植STemWin(CLion+CubeMX

    STM32CubeMX生成代碼在SW4STM32下移植STemWin(CLion+CubeMX)文章目錄
    發(fā)表于 12-04 14:36 ?12次下載
    <b class='flag-5'>STM32CubeMX</b><b class='flag-5'>生成</b><b class='flag-5'>代碼</b>在SW4<b class='flag-5'>STM32</b>下移植STemWin(CLion+<b class='flag-5'>CubeMX</b>)

    使用STM32CubeMX簡化編程以及串口通信和波形觀察

    目錄一、使用STM32CubeMX點亮流水燈1.準備工作2.用STM32CubeMX生成代碼參數(shù)2.1配置環(huán)境2.2配置參數(shù)2.3在keil下添加亮燈
    發(fā)表于 12-06 20:21 ?11次下載
    使用<b class='flag-5'>STM32CubeMX</b>簡化編程以及<b class='flag-5'>串口</b>通信和波形觀察

    STM32CubeMX完成USART串口通信

    STM32CubeMX完成USART串口通信
    發(fā)表于 12-06 20:36 ?24次下載
    <b class='flag-5'>STM32CubeMX</b>完成USART<b class='flag-5'>串口</b>通信

    STM32CubeMX使用串口中斷方式實現(xiàn)串口通信

    中斷方式),要求:1)設(shè)置波特率為115200,1位停止位,無校驗位;2)STM32系統(tǒng)給上位機(win10)連續(xù)發(fā)送“hello windows!”。win10采用“串口助手”工具接收二、C
    發(fā)表于 12-07 10:36 ?10次下載
    <b class='flag-5'>STM32CubeMX</b>使用<b class='flag-5'>串口</b>中斷方式實現(xiàn)<b class='flag-5'>串口</b>通信

    STM32CubeMX HAL庫串口+DMA數(shù)據(jù)發(fā)送不定長度數(shù)據(jù)接收,解決第一筆數(shù)據(jù)無法收發(fā)問題

    具:STM32CubeMX 6.01 生成代碼DfuSe V3.0.6 DFU驅(qū)動STM32虛擬COM端口驅(qū)動程序 在App端需要用到USB虛擬
    發(fā)表于 12-20 19:36 ?2次下載
    <b class='flag-5'>STM32CubeMX</b> HAL庫<b class='flag-5'>串口</b>+DMA<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>發(fā)送</b>不定長度<b class='flag-5'>數(shù)據(jù)</b>接收,解決第一筆<b class='flag-5'>數(shù)據(jù)</b>無法收發(fā)問題

    STM32CUBEMX配置教程(九)STM32串口DMA收發(fā)數(shù)據(jù)

    ,因此寫下這一系列教程以供記憶,順便讓我這個大萌新給廣大小萌新提供一些學習幫助。此次工程效果:串口115200波特率,接收串口助手XCOM發(fā)送數(shù)據(jù)
    發(fā)表于 12-24 18:47 ?24次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(九)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>DMA收發(fā)<b class='flag-5'>數(shù)據(jù)</b>

    STM32CubeMX實現(xiàn)串口通信(中斷方式)

    這里寫目錄標題一、STM32CubeMX工程創(chuàng)建1、題目要求2、配置STM32CubeMX工程一、STM32CubeMX工程創(chuàng)建1、題目要求完成一個STM32的USART
    發(fā)表于 12-24 19:18 ?11次下載
    <b class='flag-5'>STM32CubeMX</b>實現(xiàn)<b class='flag-5'>串口</b>通信(中斷方式)

    使用stm32cubemx的usb-host-cdc庫驅(qū)動EC20模塊

    運行,成功發(fā)送at并接收到at指令回復??偨Y(jié)開發(fā)環(huán)境:開發(fā)板:正點原子F407探索者代碼生成工具:STM32CubeMX v5.4.0IDE: eclipse + ac6工具鏈實現(xiàn)功能
    發(fā)表于 12-28 19:48 ?43次下載
    使用<b class='flag-5'>stm32cubemx</b>的usb-host-cdc庫驅(qū)動EC20模塊

    STM32CubeMX用于STM32配置并初始化C代碼生成

    STM32CubeMX用于STM32配置 并初始化C代碼生成.STM32CubeMXSTM32
    發(fā)表于 02-14 11:00 ?5次下載

    STM32CubeMX的配置和C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX的配置和C代碼生成.pdf》資料免費下載
    發(fā)表于 09-20 09:53 ?8次下載
    <b class='flag-5'>STM32CubeMX</b>的配置和C<b class='flag-5'>代碼</b>的<b class='flag-5'>生成</b>