国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32CubeMX實(shí)現(xiàn)USART串口通信

這篇具有很好參考價(jià)值的文章主要介紹了STM32CubeMX實(shí)現(xiàn)USART串口通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、實(shí)驗(yàn)環(huán)境

  • 硬件:stm32f103c8t6核心板
  • 軟件:STM32CubeMX 6.6.1
  • keil5 mdk

二、STM32CubeMX的安裝

這里就不再詳細(xì)介紹了,詳細(xì)請(qǐng)參考上一篇博客:
https://blog.csdn.net/qq_55894922/article/details/127232999?spm=1001.2014.3001.5501

三、使用STM32CubeMX完成串口通信

1. 安裝固件庫(kù)

若點(diǎn)擊 Manage embedded software packages 后,出現(xiàn)失敗,則需要隨便點(diǎn)擊其它任一選項(xiàng),進(jìn)行下載一些文件,比如點(diǎn)擊 file->new project ,等下載后,在進(jìn)行安裝固件庫(kù)。
STM32CubeMX實(shí)現(xiàn)USART串口通信

選擇自己開(kāi)發(fā)板的固件庫(kù),我這里是F1的
STM32CubeMX實(shí)現(xiàn)USART串口通信

2.工程設(shè)置

1.點(diǎn)擊file->new project建立工程
STM32CubeMX實(shí)現(xiàn)USART串口通信
2.搜索型號(hào),選擇合適的型號(hào)進(jìn)行工程建立
STM32CubeMX實(shí)現(xiàn)USART串口通信
3.進(jìn)行系統(tǒng)調(diào)試及基準(zhǔn)時(shí)鐘配置。點(diǎn)擊 System Core下拉欄中的SYS。選擇debug調(diào)試接口。選擇 serial Wire

SW模式就選擇serial Wire。JTAG模式就選擇JTAG,4pin和5pin的區(qū)別多了一個(gè)復(fù)位引腳stlink調(diào)試就是SW模式,jlink調(diào)試就是JTAG模式

STM32CubeMX實(shí)現(xiàn)USART串口通信
4.進(jìn)行時(shí)鐘RCC選項(xiàng)配置。點(diǎn)擊 System Core下拉欄中的RCC??梢远歼x外部晶振Crystal/Ceramic Resonator,第二個(gè)LSE也可以不設(shè)置,沒(méi)有影響。

BYPASS Clock Source(旁路時(shí)鐘源)
Crystal/Ceramic Resonator(石英/陶瓷 晶振)

STM32CubeMX實(shí)現(xiàn)USART串口通信
5.進(jìn)行系統(tǒng)具體時(shí)鐘配置。點(diǎn)擊“ Clock Configuration”選項(xiàng)欄進(jìn)入時(shí)鐘樹(shù)配置界面。

選擇外部時(shí)鐘HSE 8MHz
PLL鎖相環(huán)倍頻9倍(8*9=72)
系統(tǒng)時(shí)鐘來(lái)源選擇為PLL
設(shè)置APB1分頻器為 /2

STM32CubeMX實(shí)現(xiàn)USART串口通信
6.設(shè)置串口。這里選擇USART1。串口配置的引腳為 PA9、PA10。
第3步中 設(shè)置MODE為 異步通信(Asynchronous)
第4步中參數(shù)設(shè)置 波特率為115200 Bits/s,傳輸數(shù)據(jù)長(zhǎng)度為8 Bit,奇偶檢驗(yàn)無(wú),停止位1。以及下面未顯示出的 接收和發(fā)送都使能
STM32CubeMX實(shí)現(xiàn)USART串口通信
7.設(shè)置完成后,點(diǎn)擊Project Manager 選項(xiàng),進(jìn)入工程設(shè)置界面,選擇 Project 選項(xiàng)。
注:不管工程名稱(chēng)還是路徑都不要有中文,否則后面編譯文件會(huì)出錯(cuò)。

Project Name:工程名稱(chēng)
Project Location:點(diǎn)擊后面的"Browse"選擇你想要將生成的工程保存到哪個(gè)目錄里面。
Application Structure:應(yīng)用程序結(jié)構(gòu)
Basic:是基礎(chǔ)的結(jié)構(gòu),一般不包含中間件(RTOS、文件系統(tǒng)、USB設(shè)備等)
Advanced:相反就是包含中間件,一般針對(duì)相對(duì)復(fù)雜一點(diǎn)的工程。
Toolchain/IDE:根據(jù)你用的編譯軟件進(jìn)行選擇 使用KEIL就選擇keil的對(duì)應(yīng)版本。不要高于版本,其他默認(rèn)。

STM32CubeMX實(shí)現(xiàn)USART串口通信
8.點(diǎn)擊Code Generator ,勾選Generated files第一個(gè)
STM32CubeMX實(shí)現(xiàn)USART串口通信

  1. copy all used libraries into the project folder:復(fù)制所有庫(kù)文件(不管工程需要用到還是沒(méi)用到)到生成的工程目錄中,此做法可以使在不使用Cubemx或者電腦沒(méi)有安裝cubemx,依然可以按照標(biāo)準(zhǔn)庫(kù)的編程習(xí)慣調(diào)用HAL庫(kù)函數(shù)進(jìn)行程序編寫(xiě)。
    2.Copy only the necessary library files: 只復(fù)制必要的庫(kù)文件。這個(gè)相比上一個(gè)減少了很多文件。比如你沒(méi)有使用CAN、SPI…等外設(shè),就不會(huì)拷貝相關(guān)庫(kù)文件到你工程下。
    3.Add necessary library files as reference in the toolchain project configuration file :在工具鏈項(xiàng)目配置文件中添加必要的庫(kù)文件作為參考。這里沒(méi)有復(fù)制HAL庫(kù)文件,只添加了必要文件(如main.c)。相比上面,沒(méi)有Drivers相關(guān)文件。
    4.Generate peripheral initialization as a pair of’.c/.h’ files per peripheral:每個(gè)外設(shè)生成獨(dú)立的.C .H文件,方便獨(dú)立管理。不勾:所有初始化代碼都生成在main.c 勾選:初始化代碼生成在對(duì)應(yīng)的外設(shè)文件。 如UART初始化代碼生成在uart.c中。
    5.Backup previously generated files when re-generating:在重新生成時(shí)備份以前生成的文件。重新生成代碼時(shí),會(huì)在相關(guān)目錄中生成一個(gè)Backup文件夾,將之前源文件拷貝到其中。
    6.keep user code when re-generating:重新生成代碼時(shí),保留用戶(hù)代碼(前提是代碼寫(xiě)在規(guī)定的位置。也就是生成工程文件中的BEGIN和END之間。否則同樣會(huì)刪除。后面會(huì)根據(jù)生成的工程進(jìn)行說(shuō)明)
    7.delete previously generated files when not re-generated:刪除以前生成但現(xiàn)在沒(méi)有選擇生成的文件 比如:之前生成了led.c,現(xiàn)在重新配置沒(méi)有l(wèi)ed.c,則會(huì)刪除之前的led.c文件。(此功能根據(jù)自身要求進(jìn)行取舍)

9.點(diǎn)擊 GENERATE CODE 生成代碼。然后打開(kāi)工程
STM32CubeMX實(shí)現(xiàn)USART串口通信

10.編譯代碼。編譯無(wú)誤
STM32CubeMX實(shí)現(xiàn)USART串口通信

四、USART串口通信

1. UART函數(shù)庫(kù)介紹

結(jié)構(gòu)體以及函數(shù)定義均在頭文件: stm32f1xx_hal_uart.h

  • UART結(jié)構(gòu)體定義
UART_HandleTypeDef huart1;
  • 串口發(fā)送/接收函數(shù)
HAL_UART_Transmit():串口發(fā)送數(shù)據(jù),使用超時(shí)管理機(jī)制
HAL_UART_Receive():串口接收數(shù)據(jù),使用超時(shí)管理機(jī)制
HAL_UART_Transmit_IT():串口中斷模式發(fā)送
HAL_UART_Receive_IT():串口中斷模式接收
HAL_UART_Transmit_DMA():串口DMA模式發(fā)送
HAL_UART_Transmit_DMA():串口DMA模式接收

串口發(fā)送數(shù)據(jù):

HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

功能:串口發(fā)送指定長(zhǎng)度的數(shù)據(jù)。如果超時(shí)沒(méi)發(fā)送完成,則不再發(fā)送,返回超時(shí)標(biāo)志(HAL_TIMEOUT)。
參數(shù):

  • *UART_HandleTypeDef huart:UART結(jié)構(gòu)體( huart1)
  • *pData:需要發(fā)送的數(shù)據(jù)
  • Size:發(fā)送的字節(jié)數(shù)
  • 最大發(fā)送時(shí)間,發(fā)送數(shù)據(jù)超過(guò)該時(shí)間退出發(fā)送
    舉例:
HAL_UART_Transmit(&huart1, (uint8_t *)"diyu", 4, 0xffff);   //串口發(fā)送4個(gè)字節(jié)數(shù)據(jù),最大傳輸時(shí)間0xfff

2.代碼編寫(xiě)

在文件 main.c中的while循環(huán)里添加代碼

while (1)
  {
    /* USER CODE END WHILE */
    //添加下面兩行代碼
		HAL_UART_Transmit(&huart1, (uint8_t *)"hello windows!\r\n", 16 , 0xffff);
		 HAL_Delay(1000);  //延時(shí)1s
    /* USER CODE BEGIN 3 */
  }

3.調(diào)試結(jié)果

注:波特率、停止位、數(shù)據(jù)位、校驗(yàn)位要與配置的一致
編譯,將程序燒錄或下載進(jìn)核心板,打開(kāi)串口助手查看接收到的數(shù)據(jù)。STM32CubeMX實(shí)現(xiàn)USART串口通信

五、軟件調(diào)試

1.點(diǎn)擊魔法棒,設(shè)置debug。勾選Use Simulator 使用軟件調(diào)試。更改 Dialog DLL 以及 Parameter

Dialog DLL 設(shè)置為 DARMSTM.DLL 和 TARMSTM.DLL
Parameter 都設(shè)置為 -pSTM32F103C8 (后面跟的是芯片型號(hào))

STM32CubeMX實(shí)現(xiàn)USART串口通信
2.點(diǎn)擊方框內(nèi),開(kāi)始調(diào)試,并打開(kāi)logic analyzer窗口,進(jìn)行波形分析
STM32CubeMX實(shí)現(xiàn)USART串口通信

3.點(diǎn)擊 Setup 選項(xiàng),點(diǎn)擊藍(lán)色方框,輸入USART1_SR,類(lèi)型設(shè)置為比特流,并可以選擇設(shè)置波形顏色。設(shè)置完就可以點(diǎn)擊下方 Close 退出了
STM32CubeMX實(shí)現(xiàn)USART串口通信
4.點(diǎn)擊編譯
STM32CubeMX實(shí)現(xiàn)USART串口通信
5.查看波形
STM32CubeMX實(shí)現(xiàn)USART串口通信

六、總結(jié)

本次實(shí)驗(yàn)用STM32CubeMX實(shí)現(xiàn)了USART串口通信,總的來(lái)說(shuō)比自己寫(xiě)簡(jiǎn)單,這也是HAL庫(kù)的便捷之處。

七、參考資料

https://blog.csdn.net/qq_45945548/article/details/120984961?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166565631116782412574363%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166565631116782412574363&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~pc_rank_34-3-120984961-null-null.142v56pc_rank_34_1,201v3add_ask&utm_term=STM32CubeMX%E5%AE%9E%E7%8E%B0USART%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1&spm=1018.2226.3001.4187

https://blog.csdn.net/ybhuangfugui/article/details/94363188

https://blog.csdn.net/as480133937/article/details/99073783文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-416556.html

到了這里,關(guān)于STM32CubeMX實(shí)現(xiàn)USART串口通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 「STM32入門(mén)」USART串口通信

    「STM32入門(mén)」USART串口通信

    通信的目的:將一個(gè)設(shè)備的數(shù)據(jù)傳送到另一個(gè)設(shè)備,擴(kuò)展硬件系統(tǒng) 通信協(xié)議:制定通信的規(guī)則,通信雙方按照協(xié)議規(guī)則進(jìn)行數(shù)據(jù)收發(fā) 本文將介紹USART? 概念解釋 TX、RX分別是Transmit和Receive的縮寫(xiě),代表發(fā)送、接受數(shù)據(jù) 全雙工的含義是發(fā)送線(xiàn)路和接受線(xiàn)路互不影響,可以同時(shí)進(jìn)

    2024年02月06日
    瀏覽(88)
  • STM32入門(mén)學(xué)習(xí)之USART串口通信:

    STM32入門(mén)學(xué)習(xí)之USART串口通信:

    1.串口通信簡(jiǎn)介:通用異步收發(fā)傳輸器UART(Universal Asynchronous Receiver/Transmitter)是負(fù)責(zé)處理數(shù)據(jù)總線(xiàn)和串口之間的串/并通信的設(shè)備。UART通信規(guī)定了數(shù)據(jù)幀的格式:起始位、數(shù)據(jù)位、校驗(yàn)位、停止位等。UART異步通信只需要通信雙方設(shè)置好數(shù)據(jù)幀的格式和波特率即可完成通信。因?yàn)?/p>

    2024年02月16日
    瀏覽(21)
  • stm32中常見(jiàn)的通信協(xié)議之USART(串口)

    stm32中常見(jiàn)的通信協(xié)議之USART(串口)

    USART是一種通用的串行、異步通信總線(xiàn),該總線(xiàn)有兩條數(shù)據(jù)線(xiàn),可以實(shí)現(xiàn)全雙工的發(fā)送和接收。 串口的通信速度用波特率來(lái)表示,其單位為bps(bit per second)即每秒鐘傳送bit的數(shù)量。 串口規(guī)定,數(shù)據(jù)線(xiàn)在空閑的狀態(tài)下,必須是置為高電平的狀態(tài)。 起始信號(hào)為低電平,因?yàn)榇?/p>

    2023年04月08日
    瀏覽(23)
  • STM32 串口通信USART1的配置和使用

    STM32 串口通信USART1的配置和使用

    UART:universal asynchronous receiver and transmitter通用異步收發(fā)器 USART:universal synchronous asynchronous receiver and transmitter通用同步異步收發(fā)器 上圖是利用寄存器配置的步驟,下面我用官方庫(kù)函數(shù)配置USART1 1、要配置串口usart1,先查看數(shù)據(jù)手冊(cè)以及開(kāi)發(fā)板原理圖的芯片管腳 根據(jù)上圖可以看

    2024年02月05日
    瀏覽(26)
  • STM32F4 基于USART串口的藍(lán)牙通信

    STM32F4 基于USART串口的藍(lán)牙通信

    目錄 一、硬件資源 連接方案 其他配置 二、實(shí)驗(yàn)原理 基本定義 USART介紹 USART工作原理 數(shù)據(jù)發(fā)送 數(shù)據(jù)接收 藍(lán)牙HM-10配置 三、代碼部分 usart.c usart.h Serial.c Serial.h main.c 結(jié)語(yǔ) STM32F401,OLED,藍(lán)牙hm10 連接方案 設(shè)備1的TX與設(shè)備2的RX連接,這樣設(shè)備1發(fā)送的數(shù)據(jù)可以被設(shè)備2接收到。

    2024年01月17日
    瀏覽(52)
  • 使用STM32CubeMX創(chuàng)建STM32工程(串口,硬件IIC配置)

    使用STM32CubeMX創(chuàng)建STM32工程(串口,硬件IIC配置)

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 最近教研室的項(xiàng)目需要使用STM32做處理器,對(duì)環(huán)境數(shù)據(jù)進(jìn)行采集處理,在拿到板子后,需要根據(jù)單片機(jī)具體型號(hào)(STM32F411CEU6)創(chuàng)建工程,再進(jìn)行上層應(yīng)用的開(kāi)發(fā)。因?yàn)橐郧岸际怯玫腇1系列的開(kāi)發(fā)板,用的

    2023年04月18日
    瀏覽(24)
  • 【嵌入式學(xué)習(xí)-STM32F103-USART串口通信】

    【嵌入式學(xué)習(xí)-STM32F103-USART串口通信】

    4-1 基本流程 4-2 整體代碼 4-2-1 main.c 4-2-2 Serial.c 4-2-3 Serial.h 5-1 查詢(xún) 5-2 中斷 5-3 整體代碼 5-3-1 main.c 5-3-2 Serial.c 5-3-3 Serial.h 6-1 使用狀態(tài)機(jī)接收數(shù)據(jù)包的思路 6-2 串口收發(fā)HEX數(shù)據(jù)包 6-2-1 main.c 6-2-2 Serial.c 6-2-3 Serial.h 6-3串口收發(fā)文本數(shù)據(jù)包 6-3-1 main.c 6-3-2 Serial.c 6-3-3 Serial.h 全雙工:打

    2024年02月15日
    瀏覽(64)
  • STM32串口通信中的USART_RecieveData函數(shù)分析

    STM32串口通信中的USART_RecieveData函數(shù)分析

    拿這個(gè)中斷函數(shù)為例 ????????很多人可能注意到了接收數(shù)據(jù)函數(shù)的返回類(lèi)型為無(wú)符號(hào)短整型,疑惑這里為什么用了一個(gè)無(wú)符號(hào)字符類(lèi)型變量rec接收。 先看看這個(gè)函數(shù)的定義 ????????其實(shí),是因?yàn)榇谠O(shè)置的字長(zhǎng)為8,所以數(shù)據(jù)寄存器中第八位為0,第0~7位為數(shù)據(jù)有效位,

    2024年02月11日
    瀏覽(50)
  • STM32入門(mén)筆記10_USART串口通信+案例:上位機(jī)控制LED亮滅(USART串口通信、TIM定時(shí)器、EXTI綜合案例)

    STM32入門(mén)筆記10_USART串口通信+案例:上位機(jī)控制LED亮滅(USART串口通信、TIM定時(shí)器、EXTI綜合案例)

    通信的目的: 將一個(gè)設(shè)備的數(shù)據(jù)傳送到另一個(gè)設(shè)備, 擴(kuò)展硬件系統(tǒng) 通信協(xié)議: 制定通信的規(guī)則, 通信雙方按照協(xié)議規(guī)則進(jìn)行數(shù)據(jù)收發(fā) 名稱(chēng) 引腳 雙工 時(shí)鐘 電平 設(shè)備 USART TX、RX 全雙工 異步 單端 點(diǎn)對(duì)點(diǎn) I2C SCL、SDA 半雙工 同步 單端 多設(shè)備 SPI SCLK、MOSI、MISO、CS 全雙工 同步 單端

    2024年02月09日
    瀏覽(25)
  • STM32硬件IIC實(shí)驗(yàn)(STM32CubeMx配置)

    STM32硬件IIC實(shí)驗(yàn)(STM32CubeMx配置)

    IIC:Inter Integrated Circuit,集成電路總線(xiàn),是一種 同步 串行 半雙工 通信總線(xiàn)。 在這里貼一下硬件IIC和軟件IIC的區(qū)別: 從圖中可以看出兩者的區(qū)別,硬件IIC比軟件IIC的用法會(huì)比較復(fù)雜,但是這里如果不關(guān)注底層的實(shí)現(xiàn)去使用STM32CubeMx進(jìn)行IIC的配置,再使用特定函數(shù)就能夠?qū)崿F(xiàn)

    2024年02月12日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包