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

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

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

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

如何解決PWM使用的DMA通道與串口接收的DMA通道撞車問題

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-16 11:35 ? 次閱讀

項目做到一半,碰到個尷尬問題:PWM使用的DMA通道與串口接收的DMA通道撞車了,咋辦?

考慮一下,決定放棄idle中斷+dma的串口不定長數(shù)據(jù)接收方案,回到中斷接收去。

中斷接收函數(shù)HAL_UART_RECEIVE_IT函數(shù)是個定長接收函數(shù),除非把接收長度設(shè)為1。由于我使用freertos系統(tǒng),打斷系統(tǒng)的時間應(yīng)盡可能少,頻率盡可能低。每個字節(jié)都進(jìn)一次hal庫的接收處理函數(shù),進(jìn)行各種判斷實在是不友好,因此考慮跳過hal的串口處理部分,直接判斷uart_flag_rxne標(biāo)志位與uart_flag_idle標(biāo)志位,存入接收緩沖。觸發(fā)idle中斷后認(rèn)為不定長數(shù)據(jù)接收完畢,進(jìn)行處理。

代碼:

中斷使能與初始化,不啟用hal_uart_receive_it。

100059078-113575-x1.png

中斷處理部分,跳過hal中斷處理函數(shù)

100059078-113576-x2.png

注意:__hal_uart_clear_flag函數(shù)不能清除idle標(biāo)志位,需要用古老的讀取方法清空。否則會卡死在中斷處理結(jié)束之后。

優(yōu)點:中斷處理內(nèi)容盡可能簡化,降低對系統(tǒng)內(nèi)核的打斷;

缺點:只適用于8位數(shù)據(jù)位,無校驗位等最常規(guī)通信方式,對于更復(fù)雜參數(shù)的串口通信有待測試,省掉的hal庫會不會造成運行不穩(wěn)定有待于繼續(xù)測試。

版權(quán)聲明:本文轉(zhuǎn)自CSDN,博主fox0815
遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
原文鏈接:https://blog.csdn.net/fox0815/article/details/106461788
審核編輯:何安

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

    關(guān)注

    116

    文章

    5353

    瀏覽量

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

    關(guān)注

    14

    文章

    1581

    瀏覽量

    78556
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    572

    瀏覽量

    102257
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    為什么在“PWM Adc Dma 344 S32CT”示例中使用ISR塊來讀取dma adc通道?

    我正在 MBDT 中使用 S32K358 進(jìn)行一個項目,我正在尋找啟用 DMA 傳輸類型的 ADC 模塊。 在 ADC 示例“PWM Adc Dma 344 S32CT”中,我發(fā)現(xiàn)要讀取配置為
    發(fā)表于 04-08 06:39

    STM32G030F6 ADC+DMA通道非連續(xù)采樣無法正常工作怎么解決?

    配置:使用STM32G030F6 ADC外設(shè)時,ADC使用兩個通道DMA配置為循環(huán)模式,ADC掃描模式+非連續(xù)采樣。 問題:初始化階段能進(jìn)一次DMA傳輸完成中斷,在main函數(shù)中再次開啟ADC轉(zhuǎn)化
    發(fā)表于 03-12 07:10

    CKS32F107xx系列的DMA控制器簡介

    直接存儲器存取(DMA)用來提供在外設(shè)和存儲器之間或者存儲器和存儲器之間的高速數(shù)據(jù)傳輸。無須CPU干預(yù),數(shù)據(jù)可以通過DMA快速地移動,這就節(jié)省了CPU的資源來做其他操作。兩個DMA控制器有12個
    的頭像 發(fā)表于 02-18 17:24 ?775次閱讀
    CKS32F107xx系列的<b class='flag-5'>DMA</b>控制器簡介

    如何使用DMA進(jìn)行USART不定長度接收

    在上一講中,我們對USART進(jìn)行了簡單介紹,并講解了如何在不使用DMA的情況下進(jìn)行不定長度數(shù)據(jù)接收,本講將著重講解如何使用DMA進(jìn)行USART不定長度接收。
    的頭像 發(fā)表于 02-18 17:01 ?763次閱讀
    如何使用<b class='flag-5'>DMA</b>進(jìn)行USART不定長度<b class='flag-5'>接收</b>

    ZYNQ基礎(chǔ)---AXI DMA使用

    前言 在ZYNQ中進(jìn)行PL-PS數(shù)據(jù)交互的時候,經(jīng)常會使用到DMA,其實在前面的ZYNQ學(xué)習(xí)當(dāng)中,也有學(xué)習(xí)過DMA的使用,那就是通過使用自定義的IP,完成HP接口向內(nèi)存寫入和讀取數(shù)據(jù)的方式。同樣
    的頭像 發(fā)表于 01-06 11:13 ?1883次閱讀
    ZYNQ基礎(chǔ)---AXI <b class='flag-5'>DMA</b>使用

    雅特力AT32F402/F405 DMA使用指南

    DMA簡介DMA控制器的作用不僅在增強系統(tǒng)性能并減少處理器的中斷生成,而且還針對32位MCU應(yīng)用程序?qū)iT優(yōu)化設(shè)計。DMA控制器為存儲器到存儲器,存儲器到外設(shè)和外設(shè)到存儲器的傳輸提供了7個通道
    的頭像 發(fā)表于 11-20 01:03 ?842次閱讀
    雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南

    DMA是什么?詳細(xì)介紹

    DMA(Direct Memory Access)是一種允許某些硬件子系統(tǒng)直接訪問系統(tǒng)內(nèi)存的技術(shù),而無需中央處理單元(CPU)的介入。這種技術(shù)可以顯著提高數(shù)據(jù)傳輸速率,減輕CPU的負(fù)擔(dān),并提高整體
    的頭像 發(fā)表于 11-11 10:49 ?1.7w次閱讀

    STM32CUBEMX(2)--USART通過DMA方式接收不定長數(shù)據(jù)

    的不同,有一個或兩個DMA模塊。 STM32F0XX DMA控制器總共有5個通道用于DMA1,每個通道都專門管理來自一個或多個外設(shè)的存儲器訪
    發(fā)表于 09-04 11:48

    揭秘車載VCU項目之外掛界的“大哥”DMA

    引腳配置此實例選擇CAN0進(jìn)行配置。三、外設(shè)配置對于DMA,其采用的固定映射,對于通道0至通道15,其映射一部分外設(shè),通道16至通道31映射
    的頭像 發(fā)表于 07-30 08:11 ?1229次閱讀
    揭秘車載VCU項目之外掛界的“大哥”<b class='flag-5'>DMA</b>

    使用rt-thread的ADC框架,增加了DMA采集部分,采集到的兩通道數(shù)據(jù)中,有一個通道數(shù)據(jù)異常,為什么?

    裸機程序通過ADC+DMA采集兩通道模擬量數(shù)據(jù),可以正常采集到數(shù)據(jù),使用rt-thread的ADC框架,增加了DMA采集部分,采集到的兩通道數(shù)據(jù)中,有一個
    發(fā)表于 07-12 08:07

    CKS32F107xx系列ADC采樣DMA的原理和配置方法

    通道轉(zhuǎn)換完成后就應(yīng)該把數(shù)據(jù)取走,或者開啟DMA模式,把數(shù)據(jù)傳輸?shù)絻?nèi)存里面,不然就會造成數(shù)據(jù)的覆蓋。多通道ADC采集一般使用DMA進(jìn)行數(shù)據(jù)傳輸,該方法更加高效方便。
    的頭像 發(fā)表于 06-29 10:37 ?896次閱讀

    ESP32是否支持雙通道ADC_DMA

    在IDF里看到ESP32支持ADC_DMA了, 1,是否支持雙通道ADC_DMA, 2,以后能支持DAC_DMA通道嗎,
    發(fā)表于 06-19 08:11

    【GD32F303紅楓派開發(fā)板使用手冊】第十六講 USART-DMA串口收發(fā)實驗

    在前面ADC章節(jié)中,我們介紹了DMA的工作原理,這里就不多做介紹。從GD32F303用戶手冊中可以查到,各串口的TX和RX分別對應(yīng)DMA的不同通道,比如USART0的TX對應(yīng)
    的頭像 發(fā)表于 06-15 09:54 ?1699次閱讀
    【GD32F303紅楓派開發(fā)板使用手冊】第十六講 USART-<b class='flag-5'>DMA</b><b class='flag-5'>串口</b>收發(fā)實驗

    創(chuàng)建DMA通道時,能否將DMA緩沖區(qū)的大小指定為8字節(jié),并將DMA緩沖區(qū)的編號指定為1?

    創(chuàng)建 DMA 通道時,能否將 DMA 緩沖區(qū)的大小指定為 8 字節(jié),并將 DMA 緩沖區(qū)的編號指定為 1?
    發(fā)表于 05-31 07:46

    FX3使用DMA模式的話,有什么方法可以讓我獲得串口接收到的數(shù)據(jù)?

    你好,我想問一下,串口如果使用DMA模式的話,有什么方法可以讓我獲得串口接收到的數(shù)據(jù),除了函數(shù)getbuffer以及DMA
    發(fā)表于 05-28 07:28