色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

STM32串口通信的重要性

hLf3_gh_c7d03a7 ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2021-08-24 14:51 ? 次閱讀

剛開始學(xué)單片機(jī)的你,是不是會因用程序把LED點亮而感到高興,會因用程序把數(shù)碼管點亮而感到高興。這是好事,這也是想繼續(xù)學(xué)習(xí)下去的動力。

但是數(shù)據(jù)相關(guān)的實驗是學(xué)習(xí)單片機(jī)和STM32的一道坎,此時就需要用好本文要說的串口這個調(diào)試工具。

串口通信介紹

關(guān)于串口通信的介紹,也可以點擊閱讀之前發(fā)的一篇文章。

STM32串口通信基本原理

串口通信是指外設(shè)和計算機(jī)間,通過數(shù)據(jù)信號線 、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。..。..這種太過理論了,看似懂了,但又不懂。還是用我筆者自己的話來說吧。

串口通信就是可以把程序在單片機(jī)或者STM32芯片中運行的結(jié)果發(fā)送到電腦的一種通信方式。

如何使用串口通訊,你需要知道的幾個重要的知識點:

波特率,數(shù)據(jù)傳輸?shù)乃俣龋缟蠄D設(shè)置為9600,那么程序中也要設(shè)置為9600

硬件連接,接收、發(fā)送交叉連接,如上圖TxD-》RxD,RxD-》TxD

停止位

奇偶校驗

硬件數(shù)據(jù)流

其中,后3項一般不需要改變。

學(xué)會串口通信能做什么

學(xué)過C語言的人都知道,程序開發(fā)需要不斷調(diào)試不斷驗證。很多的語言編程軟件都有很完整的程序調(diào)試功能。使用起來很方便。而我們的開發(fā)雖然也是用C語言,但我們的程序最終運行的環(huán)境不是在我們的開平臺而是在真正的硬件系統(tǒng)中運行。這時想要查看程序的運行過程或者結(jié)果就不像編程軟件那么方便了。

想要解決這個問題,我們這時就可以借助串口通信來把我們需要知道的結(jié)果又或者是程序運行的關(guān)鍵步驟發(fā)送到電腦上,我們就知道程序在硬件系統(tǒng)中運行是否出現(xiàn)問題。51單片機(jī)可以用串口來調(diào)試,STM32可以用串口來調(diào)試,Linux開發(fā)板也是使用串口來調(diào)試。

當(dāng)你學(xué)會串口通信時,你可以開始玩WIFI模塊、GSM模塊、藍(lán)牙模塊、GPS模塊、以及各種使用串口通信的傳感器等等。有能力你還可以編寫上位機(jī)軟件通過串口通信來控制設(shè)備。

串口通信需要什么

如果你只有STM32核心板,那么你還需要一個串口轉(zhuǎn)USB模塊和一個串口數(shù)據(jù)接收軟件還有幾根杜邦線就可以了。

如果你的是比較完整的一款開發(fā)板的話,一般都已經(jīng)帶有串口轉(zhuǎn)USB模塊,這樣使用起來就更簡單了。聰明的你是不是發(fā)現(xiàn)還缺少了點什么,對。沒錯因為還缺少了最重要的程序。想要使用串口通信當(dāng)然還需要寫串口通信的程序。

下文就教你如何去用,而不是寫。

串口實驗

關(guān)于串口的實驗,之前錄過一個基于HAL庫來實現(xiàn)的視頻,可以點擊查看。

STM32打印數(shù)據(jù)到串口助手

而下文中的實驗基于標(biāo)準(zhǔn)庫實現(xiàn)的,與HAL相比思路是一樣的。

在做一個實驗時,最好把這個實驗分割成幾個關(guān)鍵的步驟,這樣做的好處就是可以清晰的知道自己需要做什么,以及做完了哪些。還有哪些還沒做。

下面把串口實驗分成幾個關(guān)鍵的步驟:

1)串口通信使用到的GPIO引腳配置

STM32F103系列的芯片一般都有三個串口以上,用來調(diào)試使用的串口一般都是使用USART1。其他的串口配置都是一樣的。

下面這段就是串口配置的程序:

GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時鐘//USART1_TX GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA.9//USART1_RX GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA.10

串口使用的的GPIO口是PA9和PA10,所以只需配置這兩個IO口的輸入輸出模式就可以了。

2)串口主要參數(shù)設(shè)置(直接看程序)

USART_InitTypeDef USART_InitStructure;//USART 初始化設(shè)置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//數(shù)據(jù)格式,8位USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收發(fā)模式USART_Init(USART1, &USART_InitStructure); //初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟串口接受中斷

串口參數(shù)配置無非就是配置串口的波特率、數(shù)據(jù)格式、停止位、奇偶校驗、硬件流、收發(fā)模式。除了波特率需要改變其他的參數(shù)都不需要管。直接復(fù)制拿來用。

3)串口中斷配置

串口如果使用中斷接收,那么就需要配置串口的中斷參數(shù),配置項無非就是配置那個的中斷源和中斷的優(yōu)先級。

NVIC_InitTypeDef NVIC_InitStructure;//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ; //搶占優(yōu)先級3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化VIC寄存器

4)串口使能

就是你需要什么時候開始使用串口功能,就是一句原有的函數(shù)。

USART_Cmd(USART1, ENABLE); //使能串口1

5)編寫串口中斷處理函數(shù)

使用庫函數(shù)開發(fā),所有的中斷函數(shù)都是已經(jīng)存在的,只是中斷函數(shù)里面沒有處理任何事情而已。中斷函數(shù)如下:

完整的串口中斷函數(shù):

void USART1_IRQHandler(void){int Res=0; //定義一個變量用來接收串口數(shù)據(jù)集if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中斷(接收到的數(shù)據(jù)必須是0x0d 0x0a結(jié)尾) { Res =USART_ReceiveData(USART1); //讀取接收到的數(shù)據(jù) USART_SendData(USART1,Res ); //把接收到的數(shù)據(jù)通過串口1發(fā)送出去 }}

串口數(shù)據(jù)的接收和發(fā)送的函數(shù)都是庫函數(shù)提供的,想用時只需找到它直接拿來用就可以了。

6)實驗現(xiàn)象

把程序編譯燒寫到STM32然后用串口轉(zhuǎn)USB模塊連接到電腦,在串口調(diào)試工具設(shè)置好波特率,打開串口。正常的話,那發(fā)送什么到STM32單片機(jī),串口工具上就會收到什么。

總結(jié)

以上就完成了一個最簡單的串口實驗。

本文章主要是說明串口的重要性,用來調(diào)試程序很方便。

責(zé)任編輯:haq

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

    關(guān)注

    6042

    文章

    44617

    瀏覽量

    637651
  • STM32
    +關(guān)注

    關(guān)注

    2271

    文章

    10923

    瀏覽量

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

    關(guān)注

    14

    文章

    1557

    瀏覽量

    76880

原文標(biāo)題:學(xué)習(xí)STM32單片機(jī),繞不開的串口

文章出處:【微信號:gh_c7d03a7ab5ff,微信公眾號:高速PCB硬件設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RS232串口連接方式及注意事項

    數(shù)據(jù)交換。 RS-232串口簡介 RS-232標(biāo)準(zhǔn)最初由電子工業(yè)聯(lián)盟(EIA)在1960年制定,用于定義串行通信的電氣特性、信號定時和數(shù)據(jù)格式。RS-232串口使用25針的D型連接器(DB-25),但后來更常用的是9針的D型連接
    的頭像 發(fā)表于 12-10 16:23 ?1547次閱讀

    HAL庫在STM32開發(fā)中的重要性

    HAL庫(Hardware Abstraction Layer Library,硬件抽象層庫)在STM32開發(fā)中扮演著至關(guān)重要的角色。以下是HAL庫在STM32開發(fā)中的重要性分析: 一
    的頭像 發(fā)表于 12-02 13:35 ?509次閱讀

    LS10串口數(shù)據(jù)庫模塊外擴(kuò)SD卡功能

    LS10串口數(shù)據(jù)庫模塊外擴(kuò)SD卡功能
    的頭像 發(fā)表于 11-23 09:42 ?244次閱讀
    LS10<b class='flag-5'>串口</b>數(shù)據(jù)庫模塊外擴(kuò)SD卡功能

    波特率設(shè)置在串口通信中的重要性

    在現(xiàn)代通信技術(shù)中,串口通信作為一種基本的數(shù)據(jù)傳輸方式,扮演著不可或缺的角色。無論是在計算機(jī)與外部設(shè)備的連接,還是在工業(yè)自動化系統(tǒng)中的數(shù)據(jù)交換,串口
    的頭像 發(fā)表于 11-22 09:51 ?783次閱讀

    使用RS232串口進(jìn)行設(shè)備調(diào)試的技巧

    在電子和通信領(lǐng)域,RS232串口是一種廣泛使用的串行通信接口。盡管隨著USB等新技術(shù)的興起,RS232的應(yīng)用有所減少,但在某些特定場合,如工業(yè)控制、嵌入式系統(tǒng)調(diào)試等,RS232仍然扮演著重要
    的頭像 發(fā)表于 11-21 09:38 ?832次閱讀

    RS232串口通信中常見問題及解決辦法

    RS232串口通信中常見問題及解決辦法主要包括以下幾個方面: 一、物理連接問題 問題 :串口線未插穩(wěn)或接口松動。 解決辦法 :重新插拔串口線,確保連接牢固。同時檢查插頭和針腳是否損壞,
    的頭像 發(fā)表于 11-21 09:32 ?1939次閱讀

    RS232串口連接設(shè)備的注意事項

    RS232串口是一種廣泛使用的串行通信接口,它允許計算機(jī)與外部設(shè)備(如調(diào)制解調(diào)器、鼠標(biāo)、打印機(jī)等)進(jìn)行數(shù)據(jù)傳輸。在使用RS232串口連接設(shè)備時,需要注意以下幾個方面以確保通信的穩(wěn)定性和
    的頭像 發(fā)表于 11-21 09:29 ?786次閱讀

    RS232串口通信協(xié)議詳解

    在計算機(jī)硬件和通信領(lǐng)域,RS-232串口通信協(xié)議是一個歷史悠久且廣泛使用的標(biāo)準(zhǔn)。它允許計算機(jī)通過串行接口與各種外部設(shè)備進(jìn)行通信,如調(diào)制解調(diào)器、鼠標(biāo)、打印機(jī)等。 RS-232的歷史和定義
    的頭像 發(fā)表于 11-21 09:24 ?1234次閱讀

    FT232芯片設(shè)計的USB轉(zhuǎn)RS232串口原理圖

    FT232芯片設(shè)計的USB轉(zhuǎn)RS232串口原理圖
    發(fā)表于 10-21 11:06 ?7次下載

    快速實現(xiàn)C2000串口程序升級

    電子發(fā)燒友網(wǎng)站提供《快速實現(xiàn)C2000串口程序升級.pdf》資料免費下載
    發(fā)表于 08-29 10:50 ?1次下載
    快速實現(xiàn)C2000<b class='flag-5'>串口</b>程序升級

    集特推薦 雙網(wǎng)10串口飛騰FT2000商用臺式電腦主機(jī)

    前段時間為大家分享了國產(chǎn)龍芯、海光、飛騰D2000的商務(wù)臺式機(jī),它們的共同特點都是單網(wǎng),1個RS232串口。今天就為大家推薦一款雙網(wǎng)、可擴(kuò)展10串口、14USB接口的飛騰FT200
    的頭像 發(fā)表于 07-17 16:04 ?606次閱讀
    集特推薦  雙網(wǎng)10<b class='flag-5'>串口</b>飛騰FT2000商用臺式電腦主機(jī)

    用esp32的串口Stm32F407串口通訊,通過TJA轉(zhuǎn)CAN,結(jié)果esp32串口讀到的一直是自己發(fā)的數(shù)據(jù),為什么?

    我用esp32的串口Stm32F407串口通訊,通過TJA轉(zhuǎn)CAN。結(jié)果esp32串口讀到的一直是自己發(fā)的數(shù)據(jù),各位大神給我看看哪里有問題么
    發(fā)表于 06-19 07:00

    485串口可以用can協(xié)議嗎

    一、引言 隨著工業(yè)自動化和智能控制技術(shù)的發(fā)展,通信協(xié)議在設(shè)備間數(shù)據(jù)傳輸和控制中扮演著越來越重要的角色。485串口和CAN協(xié)議是兩種常見的通信協(xié)議,它們在不同的應(yīng)用場景中發(fā)揮著
    的頭像 發(fā)表于 06-16 09:21 ?1411次閱讀

    求助,ADC接地的重要性

    ADC接地的重要性
    發(fā)表于 06-04 07:56

    論RISC-V的MCU中UART接口的重要性

    的適用重要性。在某些應(yīng)用場景中,只需要異步通信能力的UART接口就能滿足需求,從而簡化了系統(tǒng)設(shè)計和實現(xiàn)。 綜上所述,RISC-V的MCU中UART接口的重要性在于其廣泛的適用
    發(fā)表于 05-27 15:52
    主站蜘蛛池模板: 九九免费的视频 | 日韩特黄特色大片免费视频 | 窝窝影院午夜看片毛片 | 伊人久久精品AV无码一区 | 日本女人bbb| 51国产偷自视频在线视频播放 | 色欲人妻无码AV专区 | 国产AV精品久久久免费看 | 成 人 动漫3d 在线看 | 扒开女人下面使劲桶视频 | 成人国产在线看不卡 | 国产精品私人玩物在线观看 | 中文字幕在线观看亚洲 | 男子扒开美女尿口做羞羞的事 | 午夜片神马影院福利 | 青青草原国产在线 | 色爰情人网站 | 内射白浆一区二区在线观看 | 亚洲色大成网站WWW永久麻豆 | 娇妻归来在线观看免费完整版电影 | 美美哒高清在线播放8 | 国产精品一区二区亚瑟不卡 | 神马影院在线eecss伦理片 | 99在线观看免费视频 | 美女大鸡鸡 | 樱桃视频影院在线播放 | 一二三四电影完整版免费观看 | 亚洲AV无码偷拍在线观看 | 小夫妻天天恶战 | 无限资源在线观看高清 | 男子扒开美女尿口做羞羞的事 | 国产在线观看成人免费视频 | 一亲二脱三插 | 老师扒开尿口男生摸尿口 | 老司机试看午夜 | 超碰 无码 中文字幕 | 亚洲国产成人精品不卡青青草原 | 男男gaygay拳头 | 国产91青青成人a在线 | 美娇妻的性奴史1一4 | 国产亚洲精品字幕在线观看 |