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

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

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

基于GD32F310使用串口的空閑中斷完成不定長數(shù)據(jù)的接收

冬至子 ? 來源:兆易創(chuàng)新GD32 MCU ? 作者:飛揚(yáng)的青春 ? 2022-09-30 14:20 ? 次閱讀

我們在單片機(jī)開發(fā)中,經(jīng)常會用到串口,這時候我可以通過使用DMA,減少CPU的占用。使用串口的空閑中斷可以完成不定長數(shù)據(jù)的接受。所以本次我們從基礎(chǔ)的外設(shè)移植開始完成此款板子的體驗。

首先看下板子吧。

板子整體還是GD一貫風(fēng)格,還是白色板子,這次由于芯片的管腳較小,目前所以引出方式變了。把可以用的IO都引出了。

本次我們使用串口0進(jìn)行測試,此測試完成后我們也可以非常方便的移植到串口1上。

poYBAGM2iW6AAHsRAADNSwgMGd0509.png


我在其基礎(chǔ)上移植了新的開發(fā)模板,主要導(dǎo)入我們的外設(shè)庫和CMSIS庫即可。例程上我使用了一個閃爍LED燈的例子。

poYBAGM2iZqAGEpwAAB3GUghSos588.png

主循環(huán)中我們就兩個任務(wù),一個是點(diǎn)燈,一個是完成串口接收和發(fā)送。

poYBAGM2ia6APWTtAACw_KOZcno967.png

在串口初始話的時候需要主要下,我們使能了串口的中斷后,還需要打開其串口的空閑中斷,不然進(jìn)不了接受中斷函數(shù)中。

pYYBAGM2icKAdKP7AACXFCN4b9Y355.png

中斷函數(shù)中我們只需要完成中斷服務(wù)函數(shù)的編寫,進(jìn)入串口接收空閑中斷后,就讓其使用DMA的方式接收處理數(shù)據(jù)。

串口發(fā)送結(jié)束后也會調(diào)用函數(shù)關(guān)閉其發(fā)送。

pYYBAGM2idmAZqOMAAFN5t34oFA139.png

效果就是只要我們數(shù)據(jù)在100字節(jié)以內(nèi)都可以完成數(shù)據(jù)接受和發(fā)送。且長度可變。




審核編輯:劉清

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

    關(guān)注

    6037

    文章

    44562

    瀏覽量

    635919
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

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

    關(guān)注

    5

    文章

    898

    瀏覽量

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

    關(guān)注

    14

    文章

    1555

    瀏覽量

    76588
收藏 人收藏

    評論

    相關(guān)推薦

    不定長數(shù)據(jù)接收的原理IDLE空閑中斷介紹

    1_V1.8.0(STM32Cube MCU Package for STM32F1xx Series)本文內(nèi)容:不定長數(shù)據(jù)接收的原理IDLE空閑
    發(fā)表于 08-16 07:42

    STM32如何使用空閑中斷接收不定長數(shù)據(jù)?

    STM32如何使用空閑中斷接收不定長數(shù)據(jù)
    發(fā)表于 11-17 07:21

    基于DMA接收利用空閑模式接收不定長數(shù)據(jù)

    STM32L051 HAL庫非DMA模式使用空閑中斷接收不定長數(shù)據(jù)因項目中的上位機(jī)與單片機(jī)之間的通信協(xié)議采用非標(biāo)準(zhǔn)協(xié)議,上位機(jī)發(fā)送的
    發(fā)表于 01-12 07:44

    如何利用串口空閑中斷接收不定長數(shù)據(jù)

    在上一篇文章STM32單片機(jī)串口空閑中斷接收不定長數(shù)據(jù)中介紹了利用
    發(fā)表于 02-22 07:34

    STM32 HAL庫中串口空閑中斷+DMA 實現(xiàn)串口數(shù)據(jù)不定長接收

    Package for STM32F0 Series)本文內(nèi)容:不定長數(shù)據(jù)接收的原理串口接收
    發(fā)表于 12-06 18:36 ?26次下載
    STM32 HAL庫中<b class='flag-5'>串口</b><b class='flag-5'>空閑</b><b class='flag-5'>中斷</b>+DMA 實現(xiàn)<b class='flag-5'>串口</b><b class='flag-5'>數(shù)據(jù)</b>的<b class='flag-5'>不定長</b><b class='flag-5'>接收</b>

    STM32CubeMX HAL庫串口+DMA+IDLE空閑中斷不定長度數(shù)據(jù)接收和發(fā)送

    1_V1.8.0(STM32Cube MCU Package for STM32F1xx Series)本文內(nèi)容:不定長數(shù)據(jù)接收的原理IDLE空閑
    發(fā)表于 12-07 11:36 ?25次下載
    STM32CubeMX HAL庫<b class='flag-5'>串口</b>+DMA+IDLE<b class='flag-5'>空閑</b><b class='flag-5'>中斷</b><b class='flag-5'>不定長度數(shù)據(jù)</b><b class='flag-5'>接收</b>和發(fā)送

    STM32+串口空閑中斷實現(xiàn)不定長數(shù)據(jù)接收

    常見的數(shù)據(jù)幀斷幀方式有兩種,一種是通過固定的協(xié)議格式斷幀,另外一個是通過兩幀數(shù)據(jù)的時間斷幀,下面介紹最后一種,利用STM32F1的串口空閑
    發(fā)表于 12-20 19:34 ?7次下載
    STM32+<b class='flag-5'>串口</b><b class='flag-5'>空閑</b><b class='flag-5'>中斷</b>實現(xiàn)<b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>接收</b>

    stm32 串口接收不定長度數(shù)據(jù)及黏包處理 + 串口DMA接收

    ,那么stm32串口是如何實現(xiàn)接收不定長度數(shù)據(jù)的呢? 串口接收數(shù)據(jù)一般會采用
    發(fā)表于 12-23 19:09 ?27次下載
    stm32 <b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定長度數(shù)據(jù)</b>及黏包處理 + <b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b>

    STM32+串口空閑中斷實現(xiàn)不定長數(shù)據(jù)接收

    常見的數(shù)據(jù)幀斷幀方式有兩種,一種是通過固定的協(xié)議格式斷幀,另外一個是通過兩幀數(shù)據(jù)的時間斷幀,下面介紹最后一種,利用STM32F1的串口空閑
    發(fā)表于 12-24 18:46 ?11次下載
    STM32+<b class='flag-5'>串口</b><b class='flag-5'>空閑</b><b class='flag-5'>中斷</b>實現(xiàn)<b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>接收</b>

    STM32之串口DMA接收不定長數(shù)據(jù)

    目錄STM32之串口DMA接收不定長數(shù)據(jù)引言DMA簡介什么是DMA在STM32的DMA資源DMA接收數(shù)據(jù)
    發(fā)表于 12-24 19:03 ?30次下載
    STM32之<b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b>

    STM32單片機(jī)串口空閑中斷+DMA接收不定長數(shù)據(jù)

    在上一篇文章STM32單片機(jī)串口空閑中斷接收不定長數(shù)據(jù)中介紹了利用
    發(fā)表于 12-27 19:24 ?18次下載
    STM32單片機(jī)<b class='flag-5'>串口</b><b class='flag-5'>空閑</b><b class='flag-5'>中斷</b>+DMA<b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b>

    單片機(jī)接收不定長數(shù)據(jù),最優(yōu)解是DMA+串口空閑中斷

    如果單片機(jī)不支持串口空閑中斷和DMA,可以參考之前寫的,串口只用接收中斷
    發(fā)表于 12-28 19:26 ?25次下載
    單片機(jī)<b class='flag-5'>接收</b><b class='flag-5'>不定長</b>的<b class='flag-5'>數(shù)據(jù)</b>,最優(yōu)解是DMA+<b class='flag-5'>串口</b><b class='flag-5'>空閑</b><b class='flag-5'>中斷</b>

    使用UART IDLE中斷接收不定長數(shù)據(jù)

    在本文中,將介紹使用該中斷來進(jìn)行不定長串口數(shù)據(jù)接收的辦法。通過該中斷,可以省卻用于檢測數(shù)據(jù)傳輸是
    發(fā)表于 02-08 15:29 ?6次下載
    使用UART IDLE<b class='flag-5'>中斷</b><b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b>

    STM32CubeMX之串口接收不定長數(shù)據(jù)

    基本串口通信通常只能接收定長數(shù)據(jù),無法穩(wěn)定接收不定長數(shù)據(jù)
    的頭像 發(fā)表于 05-11 09:59 ?3419次閱讀
    STM32CubeMX之<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b>

    使用UART IDLE中斷接收不定長數(shù)據(jù)

    使用UART IDLE中斷接收不定長數(shù)據(jù)
    的頭像 發(fā)表于 09-18 15:41 ?1143次閱讀
    使用UART IDLE<b class='flag-5'>中斷</b><b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數(shù)據(jù)</b>