女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

GD32 485發(fā)送異常最常見原因

聚沃科技 ? 2024-01-16 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

相信有小伙伴們遇到過這樣的問題,在使用GD32進行串口485發(fā)送的時候,明明發(fā)送了特定長度的數據,但從機就是不響應,現(xiàn)在就讓我們來解析下最常見的一個原因。

我們先來看一段代碼:

wKgaomWl3gqAJZXVAABoigA4cuY198.png

這是采用輪訓方式進行485發(fā)送的函數,首先將485傳輸方向設置為發(fā)送,然后進行長度為len的數據發(fā)送,發(fā)送完成后將485傳輸方向設置為接收。看似這段代碼沒有問題,但當放在MCU上運行后發(fā)現(xiàn),從機會少收到兩個字節(jié)的數據。

這是因為,串口是有數據寄存器和移位寄存器,當最后一次判斷TBE不為“0”并調用usart_data_transmit函數后,實際上倒數第二個字節(jié)的數據正在發(fā)送移位寄存器中對外發(fā)送,最后一個字節(jié)在數據寄存器中,此時如果將485傳輸方向改為接收,那么最后兩個字節(jié)的數據將不會發(fā)送到485總線上。

wKgaomWl3g6AGAiqAAFHRDPXKl8257.png

解決這個問題的辦法也很簡單,只需要增加一個判斷TC的過程就可以了。

wKgZomWl3hOAb3ZeAACHd7DUbGU502.png

TC標志位用來指示是不是所有的數據(包括數據寄存器和發(fā)送移位寄存器)都已經發(fā)送完成,如果發(fā)送完成則置“1”。

前面講述的是使用輪訓方式進行發(fā)送,如果用DMA發(fā)送和中斷發(fā)送怎么辦呢?其實道理是一樣的,在DMA發(fā)送和中斷發(fā)送兩種模式中都要打開TC中斷,只有進入了TC中斷后,才能將傳輸方向切換為接收,小伙伴們明白了嗎?

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

    關注

    6067

    文章

    44989

    瀏覽量

    650362
  • 串口
    +關注

    關注

    15

    文章

    1588

    瀏覽量

    79919
  • GD32
    +關注

    關注

    7

    文章

    421

    瀏覽量

    25474
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GD32和STM32單片機的區(qū)別

     GD32和STM32都是常見的32位單片機系列。STM32是意法半導體(STMicroelectronics)公司推出的產品線,而GD32則是國內公司長盛電子推出的產品線。
    發(fā)表于 08-07 17:36 ?6684次閱讀
    <b class='flag-5'>GD32</b>和STM32單片機的區(qū)別

    GD32 485發(fā)送異常最常見原因#GD32 #單片機 #單片機開發(fā) #嵌入式開發(fā)

    mcu電工單片機開發(fā)
    聚沃科技
    發(fā)布于 :2024年01月17日 09:46:38

    什么是GD32

    一、前言什么GD32GD32是國內開發(fā)的一款單片機,據說開發(fā)的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32和STM32有很多地方都是一樣的,不過
    發(fā)表于 08-12 07:46

    GD32芯片包添加步驟有哪些

    **GD32芯片包添加步驟**GD32開發(fā)環(huán)境可以有多個選擇,常見的開發(fā)編譯環(huán)境有:Keil4,keil5,IAR。本教程針對keil5如何添加GD32系列mcu芯片型號做出講解。1.
    發(fā)表于 11-22 08:30

    如何利用stm32f407+485發(fā)送modbus RTU協(xié)議

    任務內容用485發(fā)送modbus TCP協(xié)議,用modbus調試軟件modsim32 查看發(fā)送及響應的數據。用的是正點原子的開發(fā)板,stm32f407.任務實現(xiàn)485
    發(fā)表于 02-21 07:04

    RS485發(fā)送時,影響其他串口接收?為什么呢?

    今天做了一個小項目1變連接的是航模遙控器接收SBUS數據。使用的是stm32的串口3。2還有一邊連接的是485控制云臺攝像頭,使用的是串口2轉485。正常sbus數據不會停,會一直接收。即使失控也會有數據,只要不掉電。但是當我給485
    發(fā)表于 11-12 16:39

    STM32F103ZET6基于RS485發(fā)送接收簡單例程

    這是一個STM32F103ZET6基于HAL庫的RS485發(fā)送接收簡單例程,如需后期開發(fā)只需要添加自己的串口協(xié)議。
    發(fā)表于 08-29 16:08 ?306次下載

    GD32 DMA串口通訊DEMO

    GD32 DMA串口通訊GD32 USART0 DMA發(fā)送與接收不定長數據GD32E230簡介GD32E230采用DMA進行串口通訊例程
    發(fā)表于 11-26 19:36 ?74次下載
    <b class='flag-5'>GD32</b> DMA串口通訊DEMO

    stm32f407+485發(fā)送modbus RTU協(xié)議 適合初學者

    任務內容用485發(fā)送modbus TCP協(xié)議,用modbus調試軟件modsim32 查看發(fā)送及響應的數據。用的是正點原子的開發(fā)板,stm32f407.任務實現(xiàn)485
    發(fā)表于 12-24 19:16 ?63次下載
    stm32f407+<b class='flag-5'>485</b><b class='flag-5'>發(fā)送</b>modbus RTU協(xié)議 適合初學者

    485發(fā)送接收切換問題討論

    485發(fā)送接收切換導致最后一位數據停止位丟失)現(xiàn)象現(xiàn)象單片機485發(fā)送接收常規(guī)做法是在發(fā)送完成中斷控制4
    發(fā)表于 01-14 13:20 ?6次下載
    <b class='flag-5'>485</b><b class='flag-5'>發(fā)送</b>接收切換問題討論

    GD32芯片怎么樣?GD32芯片運行速度慢的原因

    STM32、TI MSP、Freescale Kinetis等常見的MCU產品相比,GD32芯片具有低功耗、高性價比和良好的性能等特點。
    發(fā)表于 08-07 18:25 ?4944次閱讀

    gd32和stm32哪個好?

    gd32和stm32哪個好? GD32和STM32是兩種常見的微控制器系列,是開發(fā)者們常用的開發(fā)板核心。盡管它們相似之處很多,但它們也存在著差異,本文將深入探討GD32和STM32,分
    的頭像 發(fā)表于 08-16 11:32 ?2159次閱讀

    GD32與STM32兼容嗎?

    GD32與STM32兼容嗎? GD32與STM32是兩個不同的微控制器系列,是由兩個不同的公司設計和生產的。GD32系列是由國內的長沙國芯微電子設計和生產的,而STM32系列則是由歐洲
    的頭像 發(fā)表于 08-16 11:32 ?3527次閱讀

    GD32 串口接受異常的幾個原因

    前面我們介紹過GD32 485發(fā)送時出現(xiàn)異常最常見原因,有小伙伴反饋想要知道
    的頭像 發(fā)表于 01-18 09:57 ?5048次閱讀
    <b class='flag-5'>GD32</b> 串口接受<b class='flag-5'>異常</b>的幾個<b class='flag-5'>原因</b>

    GD32 MCU ISP失敗的原因

    玩過GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統(tǒng)編程,前面的常見問題也給大家講過什么是ISP,什么是IAP?那有沒有小伙伴遇到過ISP失敗的情況,失敗的原因是什么呢?
    的頭像 發(fā)表于 02-28 09:23 ?2049次閱讀
    <b class='flag-5'>GD32</b> MCU ISP失敗的<b class='flag-5'>原因</b>