在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32串口通信的重要性

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

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

但是數據相關的實驗是學習單片機和STM32的一道坎,此時就需要用好本文要說的串口這個調試工具。

串口通信介紹

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

STM32串口通信基本原理

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

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

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

波特率,數據傳輸的速度,如上圖設置為9600,那么程序中也要設置為9600

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

停止位

奇偶校驗

硬件數據流

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

學會串口通信能做什么

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

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

當你學會串口通信時,你可以開始玩WIFI模塊、GSM模塊、藍牙模塊、GPS模塊、以及各種使用串口通信的傳感器等等。有能力你還可以編寫上位機軟件通過串口通信來控制設備。

串口通信需要什么

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

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

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

串口實驗

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

STM32打印數據到串口助手

而下文中的實驗基于標準庫實現的,與HAL相比思路是一樣的。

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

下面把串口實驗分成幾個關鍵的步驟:

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

STM32F103系列的芯片一般都有三個串口以上,用來調試使用的串口一般都是使用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; //復用推挽輸出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)串口主要參數設置(直接看程序)

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

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

3)串口中斷配置

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

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

4)串口使能

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

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

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

使用庫函數開發,所有的中斷函數都是已經存在的,只是中斷函數里面沒有處理任何事情而已。中斷函數如下:

完整的串口中斷函數:

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

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

6)實驗現象

把程序編譯燒寫到STM32然后用串口轉USB模塊連接到電腦,在串口調試工具設置好波特率,打開串口。正常的話,那發送什么到STM32單片機,串口工具上就會收到什么。

總結

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

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

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6065

    文章

    44934

    瀏覽量

    647628
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362710
  • 串口
    +關注

    關注

    14

    文章

    1586

    瀏覽量

    79070

原文標題:學習STM32單片機,繞不開的串口

文章出處:【微信號:gh_c7d03a7ab5ff,微信公眾號:高速PCB硬件設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    PL2303串口驅動

    PL2303串口驅動
    發表于 04-09 16:02 ?1次下載

    PL2303串口驅動win10版本用

    PL2303串口驅動win10版本用
    發表于 04-09 16:02 ?0次下載

    cp2102串口驅動

    cp2102串口驅動
    發表于 04-09 16:01 ?2次下載

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經典版本,親試可用。
    發表于 04-09 15:59 ?2次下載

    STM32串口通信,上電和斷電串口助手會返回數是怎么回事?

    STM32串口通信,上電和斷電串口助手會返回數,是為什么呢
    發表于 03-12 07:57

    使用Labview做一個485串口電子秤程序

    232、485串口通訊是最常見的儀器儀表通訊方式之一,本文詳細介紹,用Labview編寫一個電子秤的485串口程序.
    發表于 03-06 18:11 ?0次下載

    用Labview寫一個電子稱的485串口程序

    關鍵詞:Labview + 串口程序 232、485串口通訊是最常見的儀器儀表通訊方式之一,本文詳細介紹,用Labview編寫一個電子秤的485串口程序.
    的頭像 發表于 03-06 09:54 ?572次閱讀
    用Labview寫一個電子稱的485<b class='flag-5'>串口</b>程序

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅動板232串口通信的智能屏

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅動板232串口通信的智能屏
    的頭像 發表于 02-18 14:49 ?335次閱讀
    3.5英寸高清智能<b class='flag-5'>串口</b>屏 8位MCU并口<b class='flag-5'>通信</b>的COG裸屏 或帶驅動板232<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的智能屏

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

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

    LS10串口數據庫模塊外擴SD卡功能

    LS10串口數據庫模塊外擴SD卡功能
    的頭像 發表于 11-23 09:42 ?491次閱讀
    LS10<b class='flag-5'>串口</b>數據庫模塊外擴SD卡功能

    波特率設置在串口通信中的重要性

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

    RS232串口通信協議詳解

    在計算機硬件和通信領域,RS-232串口通信協議是一個歷史悠久且廣泛使用的標準。它允許計算機通過串行接口與各種外部設備進行通信,如調制解調器、鼠標、打印機等。 RS-232的歷史和定義
    的頭像 發表于 11-21 09:24 ?2807次閱讀

    FT232芯片設計的USB轉RS232串口原理圖

    FT232芯片設計的USB轉RS232串口原理圖
    發表于 10-21 11:06 ?11次下載

    快速實現C2000串口程序升級

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

    485串口可以用can協議嗎

    一、引言 隨著工業自動化和智能控制技術的發展,通信協議在設備間數據傳輸和控制中扮演著越來越重要的角色。485串口和CAN協議是兩種常見的通信協議,它們在不同的應用場景中發揮著
    的頭像 發表于 06-16 09:21 ?2195次閱讀
    主站蜘蛛池模板: 成人免费观看一区二区 | 999伊人 | 无毒三级| 一级一片一a一片 | 天天看天天爽 | 欧美高清激情毛片 | 精品视频一二三区 | 一区二区三区午夜 | 日本加勒比高清一本大道 | 亚洲欧美视频 | 欧美满足你的丝袜高跟ol | 在线看av网址 | 一区二区中文字幕 | 免费你懂的 | 色丁香六月 | 午夜爱爱毛片xxxx视频免费看 | 午夜免费的国产片在线观看 | 一区精品视频 | 激情五月综合网 | 好爽毛片一区二区三区四区 | 夜夜操天天干 | 看全色黄大色大片免费久久怂 | 五月婷婷 六月丁香 | 色噜噜色偷偷 | 两性午夜欧美高清做性 | 日本黄色网址大全 | 欧美黄色录像视频 | 成人网男女啪啪免费网站 | 美国一级毛片片aa久久综合 | 国产视频三级 | 成人欧美精品一区二区不卡 | 毛片新网址 | 天堂中文在线资源库用 | 国产综合视频在线观看 | 公妇乱淫日本免费观看 | 正在播放一区二区 | 国产精品超清大白屁股 | 经典三级第一页 | 久久综合九色综合网站 | 久久成人综合网 | 狠狠色丁香九九婷婷综合五月 |