欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

STM32串口通信的重要性

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

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

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

串口通信介紹

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

STM32串口通信基本原理

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

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

如何使用串口通訊,你需要知道的幾個(gè)重要的知識(shí)點(diǎn):

波特率,數(shù)據(jù)傳輸?shù)乃俣?,如上圖設(shè)置為9600,那么程序中也要設(shè)置為9600

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

停止位

奇偶校驗(yàn)

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

其中,后3項(xiàng)一般不需要改變。

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

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

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

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

串口通信需要什么

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

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

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

串口實(shí)驗(yàn)

關(guān)于串口的實(shí)驗(yàn),之前錄過(guò)一個(gè)基于HAL庫(kù)來(lái)實(shí)現(xiàn)的視頻,可以點(diǎn)擊查看。

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

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

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

下面把串口實(shí)驗(yàn)分成幾個(gè)關(guān)鍵的步驟:

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

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

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

GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時(shí)鐘//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,所以只需配置這兩個(gè)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;//一個(gè)停止位USART_InitStructure.USART_Parity = USART_Parity_No;//無(wú)奇偶校驗(yàn)位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)硬件數(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ù)配置無(wú)非就是配置串口的波特率、數(shù)據(jù)格式、停止位、奇偶校驗(yàn)、硬件流、收發(fā)模式。除了波特率需要改變其他的參數(shù)都不需要管。直接復(fù)制拿來(lái)用。

3)串口中斷配置

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

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

4)串口使能

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

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

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

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

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

void USART1_IRQHandler(void){int Res=0; //定義一個(gè)變量用來(lái)接收串口數(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ù)通過(guò)串口1發(fā)送出去 }}

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

6)實(shí)驗(yàn)現(xiàn)象

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

總結(jié)

以上就完成了一個(gè)最簡(jiǎn)單的串口實(shí)驗(yàn)。

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

責(zé)任編輯:haq

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

    關(guān)注

    6043

    文章

    44623

    瀏覽量

    638839
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10925

    瀏覽量

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

    關(guān)注

    14

    文章

    1559

    瀏覽量

    77124

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RS232串口連接方式及注意事項(xiàng)

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

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

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

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

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

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

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

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

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

    RS232串口通信中常見問(wèn)題及解決辦法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    求助,ADC接地的重要性?

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

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

    的適用重要性。在某些應(yīng)用場(chǎng)景中,只需要異步通信能力的UART接口就能滿足需求,從而簡(jiǎn)化了系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)。 綜上所述,RISC-V的MCU中UART接口的重要性在于其廣泛的適用
    發(fā)表于 05-27 15:52