国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

STM32CUBEMX開發(fā)GD32F303(8)----USART收發(fā)配置

發(fā)布者:CaptivatingEyes最新更新時間:2024-09-14 來源: elecfans關(guān)鍵字:STM32CUBEMX  GD32F303  USART  收發(fā)配置 手機看文章 掃描二維碼
隨時隨地手機看文章

概述

本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發(fā),同時通過GD32303C_START開發(fā)板內(nèi)進行驗證。需要GD樣片的可以加Q_QUN申請:6_15061293。

硬件準(zhǔn)備

這里準(zhǔn)備了GD32303C_START開發(fā)板進行驗證。

在這里插入圖片描述

STM32CUBEMX配置

在這里插入圖片描述

勾選中斷。

在這里插入圖片描述

在這里插入圖片描述

keil配置

microlib 進行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫少,并且根本不具備某些 ISO C 特性。 某些庫函數(shù)的運行速度也比較慢,如果要使用printf(),必須開啟。

在這里插入圖片描述

串口接收發(fā)送函數(shù)

一般情況下,串口接收發(fā)送函數(shù)有如下所示。


● HAL_UART_Transmit();串口輪詢模式發(fā)送,使用超時管理機制。


● HAL_UART_Receive();串口輪詢模式發(fā)送,使用超時管理機制。


● HAL_UART_Transmit_IT();串口中斷模式發(fā)送


● HAL_UART_Receive_IT();串口中斷模式接收


● HAL_UART_Transmit_DMA();串口DMA模式發(fā)送


● HAL_UART_Receive_DMA();串口DMA模式接收


HAL_UART_Transmit()發(fā)送

通過輪詢,將數(shù)據(jù)發(fā)送出去。


uint8_t buffer1[10]='0123456789';

      HAL_UART_Transmit(&huart1, buffer1, 10,0xFFFF);//把buffer1的內(nèi)容通過uart1發(fā)送出去,長度為10,timeout的時間是0xffff

演示結(jié)果如下所示。

在這里插入圖片描述

HAL_UART_Transmit_IT()發(fā)送

通過中斷模式發(fā)送,這個模式下需要開啟串口中斷,否則無法發(fā)出數(shù)據(jù)。


/***********方法1********************/

      uint8_t buffer2[10]='9876543210';

      HAL_UART_Transmit_IT(&huart1, buffer2, 10);//把buffer1的內(nèi)容通過uart2發(fā)送出去,長度為10,

      while(huart1.gState != HAL_UART_STATE_READY);



      /***********方法2********************/

//      uint8_t buffer2[10]='9876543210';

//      HAL_UART_Transmit_IT(&huart1, buffer1, 10);//把buffer1的內(nèi)容通過uart2發(fā)送出去,長度為10,

//      while(HAL_UART_Transmit_IT(&huart1, buffer2, 10) != HAL_OK);


上述代碼中,可以不使用while進行等待也可以發(fā)送,但是需要注意不能未發(fā)送完畢又重新發(fā)送。 演示結(jié)果如下所示。

在這里插入圖片描述

HAL_UART_Transmit()和HAL_UART_Transmit_IT()對比

若HAL_UART_Transmit_IT()不使用while進行等待,他的波形圖如下所示。 黃色線為波形,紅色線為發(fā)送后的電平翻轉(zhuǎn)。

在這里插入圖片描述

HAL_UART_Transmit()發(fā)送如下所示。

在這里插入圖片描述

可以看到,HAL_UART_Transmit()發(fā)送必須要等待發(fā)送完畢才可以接著往下執(zhí)行。 HAL_UART_Transmit_IT()為中斷發(fā)送,可以在發(fā)送數(shù)據(jù)時候執(zhí)行其他指令。


HAL_UART_Receive()接收

串口輪詢模式接收,使用超時管理機制。 例如接收一個10個數(shù)據(jù)。


uint8_t rxdata1[10]={0,0,0,0,0,0,0,0,0,0};

      /* 判斷是否接收成功 */

      if(HAL_UART_Receive(&huart1, rxdata1, 10, 10000) == HAL_OK)

      {

          /* 將接收成功的數(shù)據(jù)通過串口發(fā)出來 */

          HAL_UART_Transmit(&huart1,rxdata1, 10, 0xffff);

      }


測試結(jié)果如下所示。

在這里插入圖片描述

HAL_UART_Receive_IT()接收

串口中斷模式接收,這樣就可以不需要等待,單片機在沒有數(shù)據(jù)接收時候可以進行其他工作。 例如接收一個10個數(shù)據(jù)。 定義接收數(shù)組。


/* USER CODE BEGIN PV */

  uint8_t Rx_Data[10]={0,0,0,0,0,0,0,0,0,0};

/* USER CODE END PV */

開啟接收中斷。


/* USER CODE BEGIN 2 */

  HAL_UART_Receive_IT(&huart1, (uint8_t *)Rx_Data, 10); //開啟接收中斷,接收10個數(shù)據(jù)到Rx_Data

  /* USER CODE END 2 */

讀取回調(diào)函數(shù)。


/* USER CODE BEGIN 4 */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

    /* 將接收成功的數(shù)據(jù)通過串口發(fā)出*/

    HAL_UART_Transmit(&huart1,Rx_Data, 10, 0xffff);

    HAL_UART_Receive_IT(&huart1, (uint8_t *)Rx_Data, 10); //重新開啟,接收10個數(shù)據(jù)到Rx_Data


}

/* USER CODE END 4 */

測試結(jié)果如下。

在這里插入圖片描述

HAL_UART_Receive_IT和HAL_UART_Receive的區(qū)別就是:中斷接收是有數(shù)據(jù)到了才去讀;直接接收是直接讀取,如果超時就返回


關(guān)鍵字:STM32CUBEMX  GD32F303  USART  收發(fā)配置 引用地址:STM32CUBEMX開發(fā)GD32F303(8)----USART收發(fā)配置

上一篇:STM32CubeMX介紹,功耗計算,中間件,CAD視圖
下一篇:STM32F429芯片帶FIFO的DMA傳輸實現(xiàn)過程

推薦閱讀最新更新時間:2025-06-23 10:57

STM32CUBEMX開發(fā)GD32F303(4)----GPIO輸出模式
概述 以STM32CUBEMX創(chuàng)建STM32F103工程,同時移植在GD32F303中,同時通過GD32303C_START開發(fā)板內(nèi)進行驗證。 需要樣片的可以加Qun申請:615061293。 硬件準(zhǔn)備 這里準(zhǔn)備了2塊開發(fā)板進行驗證,分別是GD32303C_START開發(fā)板。 開發(fā)板管腳配置 在GD32303C_START中的LED管腳配置如下所示。 不同速率對應(yīng)的波形 以PC3為例,在推挽輸出無上下拉情況下,輸出速率主要有4種,一般的低端MCU只有3種,沒有Very High。 下面是ST的配置圖。 在固件庫中,定義如下所示。 LOW速率 Medium速率 High速率 Very High速率 可以看
[單片機]
<font color='red'>STM32CUBEMX</font>開發(fā)<font color='red'>GD32F303</font>(4)----GPIO輸出模式
GD32F303紅楓派開發(fā)板使用手冊】第十三講 ADC-內(nèi)部溫度傳感器和參考電壓采樣實驗
13.1實驗內(nèi)容 本實驗是通過ADC注入組采樣內(nèi)部溫度傳感器和參考電壓,通過本實驗主要學(xué)習(xí)以下內(nèi)容: 內(nèi)部溫度傳感器和參考電壓簡介 ADC注入組采樣配合ADC中斷應(yīng)用 13.2實驗原理 13.2.1內(nèi)部溫度傳感器和參考電壓簡介 GD32F303有兩個內(nèi)部通道,分別為內(nèi)部溫度傳感器(ADC0_CH16)和內(nèi)部參考電壓Vrefint(ADC0_CH17)。 溫度傳感器可以用來測量器件周圍的溫度。溫度傳感器的輸出電壓隨溫度線性變化,由于生產(chǎn)過程的多樣化,溫度變化曲線的偏移在不同的芯片上會有不同(最多相差45°C)。內(nèi)部溫度傳感器更適合于檢測溫度的變化,而不是測量絕對溫度。如果需要測量精確的溫度,應(yīng)該使用一個外置的溫度傳感器來校準(zhǔn)這
[單片機]
【<font color='red'>GD32F303</font>紅楓派開發(fā)板使用手冊】第十三講 ADC-內(nèi)部溫度傳感器和參考電壓采樣實驗
01 STM32CubeMX 安裝和配置
STM32CubeMX軟件工具,可以: (1)管理(安裝、升級、移除)STM32器件的固件包和擴展包 (2)對MCU或MPU進行外設(shè)圖形化配置 (3)生成外設(shè)初始化函數(shù)和IDE項目框架 STM32CubeMX支持的IDE軟件:EWARM、MDK-ARM、TrueSTUSIO、STM32CubeIDE、SW4STM32、MakeFile ----摘自《STM32Cube高效開發(fā)教程(基礎(chǔ)篇)》p6 一、下載安裝STM32CubeMX 1.下載 官方下載地址: https://www.st.com/en/development-tools/stm32cubemx.html ?;骄W(wǎng)頁下方,選擇對應(yīng)得版本點紅色按鈕即可下載(下載之前,
[單片機]
使用STM32CubeMX實現(xiàn)快速角色交換
ST USB-C供電(PD)生態(tài)系統(tǒng),在其評估板 (STM32G081B-EVAL)和STM32CubeMX實用程序之上更新STM32G0 的固件,以及新的STM32GO Discovery Kit的商業(yè)可用性,以及我們新的STM32CubeMonitor-UCPD的部署。這一廣泛而獨特的舉措將使開發(fā)人員能夠熟悉 USB 實施者論壇 (USB-IF) 的最新標(biāo)準(zhǔn)。從那里,他們可以開始創(chuàng)建他們的 USB-C PD 應(yīng)用程序來更新他們當(dāng)前的設(shè)計或提出一個新的設(shè)計,這要歸功于可以促進這一過程并縮短產(chǎn)品上市時間的原始工具。 隨著幾個月前推出的STM32G0,我們的第一款90nm主流MCU,意法半導(dǎo)體也率先在業(yè)界提供了具有兩個USB-C
[單片機]
使用<font color='red'>STM32CubeMX</font>實現(xiàn)快速角色交換
STM32CubeMX系列 | 內(nèi)部溫度傳感器
1. 內(nèi)部溫度傳感器簡介 STM32F1有一個內(nèi)部的溫度傳感器,可以用來測量CPU及周圍的溫度。該溫度傳感器在內(nèi)部和ADCx_IN16輸入通道相連接,此通道把傳感器輸出的電壓轉(zhuǎn)換成數(shù)字值,溫度傳感器模擬輸入推薦采樣時間是17.1us,內(nèi)部溫度傳感器支持的溫度范圍為:-40~125℃,精度為±1.5℃左右 通過讀取ADC通道16的值,通過如下計算公式即可算出當(dāng)前溫度: T = { ( V25 - Vsense ) / Avg_Slope } + 25 上式中: V25 = Vsense 在25℃時的數(shù)值(典型值為:1.43) Avg_Slope = 溫度與 Vsense 曲線的平均斜率(典型值為:4.3 mV/℃) 以上典型值請
[單片機]
STM32CubeMX中文用戶手冊下載方法
STM32CubeMX是用于STM32微控制器的圖形工具,可以用圖形化的方式生成工程代碼。現(xiàn)在官方也有了這個軟件的中文手冊,現(xiàn)在說一下STM32CubeMX的中文手冊下載方法。 打開官網(wǎng)網(wǎng)站 https://www.st.com/en/development-tools/stm32-configurators-and-code-generators.html#documentation 然后在上面選中最后一項 Documentation,然后選中底下的 User Manual 在底下就會顯示一個日文版和中文版的資料,直接點中國國旗這一項。 這時就會在網(wǎng)頁中直接打開PDF文檔,可以直接在網(wǎng)頁上看,也可以點PDF文檔右
[單片機]
<font color='red'>STM32CubeMX</font>中文用戶手冊下載方法
STM32CubeMX生成F1的工程中造成 下載器無法下載 問題解決
1. 問題描述 使用STM32CubeMX生成的 STM32F1 工程,在使用 CMSIS-DAP 下載器下載一次之后,造成無法下載的問題,如圖,下載器可以檢測到,但是下載器無法連接芯片: 直接下載當(dāng)然一定也會出問題了,如圖: 2. 問題原因分析 造成這個問題的原因非常難受: STM32CubeMX生成 STM32F1 的工程時,默認配置選項是 No-Debug,不會配置下載器所使用到的SWDIO引腳和SWCLK引腳: 結(jié)果就是單片機里之前的程序是正常的,所以這個工程編譯出的程序可以成功下載進去,但是一旦下載進去之后,就涼了…… 3. 問題的解決方案 3.1. 修改STM32CubeMX中的調(diào)試選項 將Debug選項
[單片機]
<font color='red'>STM32CubeMX</font>生成F1的工程中造成 下載器無法下載 問題解決
STM32CubeMX系列教程 5.0版本環(huán)境開發(fā)——2.Uart串行通信功能
1.搭建一個基本工程: 具體請參考我的上一篇內(nèi)容搭建:https://www.cnblogs.com/Engineer-Lai/p/10072673.html 2.Uart協(xié)議簡要: 分為通俗描述和概念性描述 通俗描述: 1. 對于單片機入門的人來說,首先我們要明白 我們唯一可控的對象是IO口,IO有兩種狀態(tài) 0和1. 有兩種操作讀和寫(請務(wù)必確認自己明白并可以操控,我們便可繼續(xù)) 2.在確認第一點后,硬件協(xié)議存在的意義是什么:A對象 把N個數(shù)據(jù)遵照特定的規(guī)則傳給 B對象.(這里數(shù)據(jù)的單位是字節(jié),一個字節(jié)由8個位組成) 3.接下來就是如何傳數(shù)據(jù)的問題了,我們只有0和1可以表示。所以我們必須制定一套雙方都遵循的可行游戲規(guī)則。
[單片機]
<font color='red'>STM32CubeMX</font>系列教程 5.0版本環(huán)境開發(fā)——2.Uart串行通信功能
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved