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

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

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

串口接收數(shù)據(jù)的兩種方式是什么

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:藕粉- ? 2023-11-10 16:20 ? 次閱讀

上方是發(fā)送數(shù)據(jù)的例子,那么串口接收又該如何配置,又要在串口發(fā)送的例子上做哪些更改呢?

這里我們可以通過查詢或者中斷的方式來進(jìn)行接收數(shù)據(jù)的兩種方式。

  • 查詢方式就是通過不斷的查詢RXNE標(biāo)志位,通過判斷RXNE位的狀態(tài)來確定數(shù)據(jù)是否接收。
  • 中斷方式就是通過配置接收輸出控制通道,配置NVIC,在中斷服務(wù)子函數(shù)里進(jìn)行數(shù)據(jù)的接收。

1. 需要更改的地方

既然我們要實現(xiàn)串口的接收,那么就要配置串口RX引腳,在串口模式中添加USART_Mode_RX模式。

  • 初始化RX引腳
//RX端
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;  //上拉輸入
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  //50MhZ
    GPIO_Init(GPIOA,&GPIO_InitStructure);
  • 添加串口模式
USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;         //TX 發(fā)送模式  RX 接收模式

2. 查詢RXNE標(biāo)志位

這里我們還是來看一看RXNE標(biāo)志位的描述

圖片

上圖描述,為0時數(shù)據(jù)沒有收到,為1時收到了數(shù)據(jù),數(shù)據(jù)可以從RDR里讀出

所以在主程序里不斷讀取RXNE標(biāo)志位,如果為1,表示數(shù)據(jù)可以讀出

uint8_t RX_Data;
int main()
{ 
    Serial_Init();
    Serial_SendByte(0x16);
    while(1)
    {
        if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==SET)   //0 循環(huán)等待 1 可以接收數(shù)據(jù)
        {
            RX_Data=USART_ReceiveData(USART2);           
      Serial_SendByte(RX_Data);
        }
    }
}

下圖為程序現(xiàn)象:pc向單片機(jī)發(fā)送數(shù)據(jù)0x15,單片機(jī)接收數(shù)據(jù)0x15,并且把接收到的數(shù)據(jù)作為數(shù)據(jù)發(fā)送到pc,在pc上顯示0x15。

圖片

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

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352468
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41219
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1601

    瀏覽量

    55235
收藏 人收藏

    評論

    相關(guān)推薦

    STM32串口發(fā)送數(shù)據(jù)接收數(shù)據(jù)方式總結(jié)

    STM32串口發(fā)送數(shù)據(jù)接收數(shù)據(jù)方式總結(jié)
    的頭像 發(fā)表于 09-19 09:14 ?6592次閱讀
    STM32<b class='flag-5'>串口</b>發(fā)送<b class='flag-5'>數(shù)據(jù)</b>和<b class='flag-5'>接收</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>方式</b>總結(jié)

    labview串口接收數(shù)據(jù)方式

    了串行通信中斷接收數(shù)據(jù)處理的技巧。作者已經(jīng)把該技術(shù)成功運用到了部隊和工業(yè)控制的實際項目中。MSCOMM文件夾中為使用微軟MSCOMM串口控件方式,利用事件回調(diào)注冊是現(xiàn)在事件
    發(fā)表于 11-08 11:08

    labview與51串口通信的兩種方式

    Labview串口通信要學(xué)會兩種方法,一是利用visa(虛擬儀器軟件構(gòu)架),另一是調(diào)用activeX控件。第一方法(VISA)程序如圖
    發(fā)表于 09-06 16:03

    兩種采樣方式

    兩種采樣方式.....................................
    發(fā)表于 08-08 15:04

    常見的兩種串口通信

    常見的兩種串口通信在串行通信中,數(shù)據(jù)通常是在個站之間傳送,按照數(shù)據(jù)在通信線路上的傳送方向可分為3
    發(fā)表于 06-10 16:20

    51單片機(jī)與上位機(jī)通訊的兩種串口通訊方式

    51系列單片機(jī)與上位機(jī)通訊有兩種串口通訊方式方式一.使用自帶串口通訊模塊,使用RxD/TxD口,用內(nèi)置定時器產(chǎn)生波特率,通過中斷
    發(fā)表于 07-19 08:22

    STM32的串口接收數(shù)據(jù)方式

    開發(fā)平臺:Keil 5庫函數(shù)版本:V3.5芯片:STM32F407VET6 1 STM32的串口接收數(shù)據(jù)方式STM32的串口
    發(fā)表于 08-16 08:02

    串口通信的兩種方式

    串口通信由兩種方式,第一就是用微機(jī)原理課上學(xué)過的TX和RX個接口進(jìn)行通信。不過根據(jù)去年的經(jīng)驗,這個板子直接用TX和RX
    發(fā)表于 08-24 06:59

    SQL語言的兩種使用方式

    SQL語言的兩種使用方式在終端交互方式下使用,稱為交互式SQL嵌入在高級語言的程序中使用,稱為嵌入式SQL―高級語言如C、Java等,稱為宿主語言嵌入式SQL的實現(xiàn)方式源程序(用主語言
    發(fā)表于 12-20 06:51

    vnc和xrdp兩種遠(yuǎn)程連接的方式

    [zju嵌入式]樹莓派之遠(yuǎn)程桌面 之前篇介紹了通過串口和ssh登陸到樹莓派的方法,這兩種方式的有點在于連接方面,響應(yīng)速度快,但是也有不夠直觀的缺點,沒辦法看到圖形界面.在這篇博文中,
    發(fā)表于 12-24 07:54

    逆變器的兩種電流型控制方式

    逆變器的兩種電流型控制方式 摘要:研究分析了逆變器的兩種雙環(huán)瞬時反饋控制方式——電流型準(zhǔn)PWM控制方式和三態(tài)DPM
    發(fā)表于 07-10 11:21 ?3923次閱讀
    逆變器的<b class='flag-5'>兩種</b>電流型控制<b class='flag-5'>方式</b>

    【科普】常見的兩種串口通信

    在串行通信中,數(shù)據(jù)通常是在個站之間傳送,按照數(shù)據(jù)在通信線路上的傳送方向可分為3基本的傳送方式:單工、半雙工和全雙工。單工通信使用一根導(dǎo)線
    發(fā)表于 11-16 13:50 ?7219次閱讀
    【科普】常見的<b class='flag-5'>兩種</b><b class='flag-5'>串口</b>通信

    labview串口接收數(shù)據(jù)_labview串口被動接收數(shù)據(jù)

    字節(jié)的數(shù)據(jù)。最后,用一個狀態(tài)機(jī)來實現(xiàn)相鄰個字符串的判斷。如果串口在相鄰個字符串之間接收時間大于50ms,則判斷為
    發(fā)表于 01-15 15:49 ?6.6w次閱讀
    labview<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>數(shù)據(jù)</b>_labview<b class='flag-5'>串口</b>被動<b class='flag-5'>接收</b><b class='flag-5'>數(shù)據(jù)</b>

    Pytroch中支持的兩種遷移學(xué)習(xí)方式

    上述兩種遷移方式,分別適合大量數(shù)據(jù)跟少量數(shù)據(jù),前一方式計算跟訓(xùn)練時間會比第二
    的頭像 發(fā)表于 10-09 15:16 ?927次閱讀

    sqlite數(shù)據(jù)插入的兩種方式比較

    sqlite工具包提供兩種數(shù)據(jù)插入方式,全部使用Execute SQL(Ploy)函數(shù)
    的頭像 發(fā)表于 11-13 09:33 ?914次閱讀