久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6423|回復: 7
打印 上一主題 下一主題
收起左側(cè)

stm32的dma傳輸完成中斷是指什么時候?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:958310 發(fā)表于 2021-8-4 19:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  最近接手一個老項目是用到ADC和DMA配合使用,ADC是5個通道循環(huán)轉(zhuǎn)換,然后通過DMA傳輸?shù)蕉x的全局數(shù)組里。每當DMA完成傳輸?shù)臅r候就出發(fā)一次中斷然后在DMA中斷處理函數(shù)中對 1個 通道的AD值進行卡爾曼濾波,每次DMA中斷只對一個通道的AD值進行濾波下一次中斷就對下一個通道濾波,現(xiàn)在遇到的疑問就是:

    1、STM32的DMA配置的時候有兩個跟數(shù)據(jù)量有關(guān)的:一是傳輸?shù)臄?shù)據(jù)位寬(1字節(jié)、2字節(jié)和4字節(jié)),二是傳輸?shù)目倲?shù)據(jù)個數(shù)。那么這個DMA傳輸完成觸發(fā)中斷是指每傳輸一個數(shù)據(jù)、還是傳輸完總數(shù)據(jù)個數(shù)就觸發(fā)DMA中斷? 例如像我這里ADC轉(zhuǎn)換5個通道,DMA配置為:2字節(jié)位寬、傳輸總數(shù)據(jù)個數(shù)為5.開啟DMA中斷后那么我這里是每次ADC轉(zhuǎn)換完一個通道就出發(fā)一次DMA中斷?還是ADC要循環(huán)轉(zhuǎn)換完5個通道才觸發(fā)一次DMA中斷?

    2、之前一直用沒留意,然后今天看了一下卡爾曼濾波就對這個DMA中斷觸發(fā)看不懂。找到的芯片手冊也沒怎么細講。我就想我這里如果DMA是每當ADC轉(zhuǎn)換完一個通道就觸發(fā)一次中斷然后對這個通道的AD值進行濾波,那么就是符合要求的。如果是每當ADC轉(zhuǎn)換完5個通道DMA才觸發(fā)一次中斷,那豈不是要ADC連續(xù)5次轉(zhuǎn)換5個通道才能將5個通道的AD值進行濾波1次,這也太蠢了吧?

    3、代碼是上一任員工寫的,我在想能不能將那個DMA的總數(shù)據(jù)個數(shù)改為1個,然后每當ADC轉(zhuǎn)換完一個通道就觸發(fā)一次中斷來進行濾波,這樣實時性會不會好一些?

  有懂的大哥們幫幫忙解惑一下,謝謝了!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

來自 2#
ID:106290 發(fā)表于 2021-8-5 17:06 | 只看該作者
STM32中文參考手冊_v10 144頁,寫得很清楚,在數(shù)據(jù)傳輸結(jié)束后,傳輸完成標志位(TCIF)被置1,當設(shè)置了允許傳輸完成中斷為(TCIE),將產(chǎn)生一個中斷請求。傳輸數(shù)據(jù)則由DAM_CMARX寄存器設(shè)置,其實就是你自己設(shè)置的數(shù)據(jù)大小。結(jié)論:你設(shè)置了多少傳輸數(shù)據(jù),數(shù)據(jù)傳輸完成才能觸發(fā)完成中斷。只有一個通道要求的,直接用ADC轉(zhuǎn)換完成中斷處理就好了。多通道覺得比較麻煩的,可以采用注入型ADC轉(zhuǎn)換。
回復

使用道具 舉報

板凳
ID:592807 發(fā)表于 2021-8-5 10:16 | 只看該作者
DMA中斷問題先放一邊,先說一下濾波問題,”ADC轉(zhuǎn)換完一個通道就觸發(fā)一次中斷來進行濾波”,你一個數(shù)據(jù)你和誰濾波?ADC轉(zhuǎn)換一次是一個數(shù)據(jù)。
回復

使用道具 舉報

地板
ID:958310 發(fā)表于 2021-8-5 10:38 | 只看該作者
黃youhui 發(fā)表于 2021-8-5 10:16
DMA中斷問題先放一邊,先說一下濾波問題,”ADC轉(zhuǎn)換完一個通道就觸發(fā)一次中斷來進行濾波”,你一個數(shù)據(jù)你和 ...

卡爾曼濾波的原理就是跟以往的數(shù)據(jù)進行比較,然后預測這一次的結(jié)果。每次轉(zhuǎn)換的AD數(shù)據(jù)都要保留到下一次計算濾波。
回復

使用道具 舉報

5#
ID:419909 發(fā)表于 2021-8-5 11:02 | 只看該作者
1,按我之前使用過的經(jīng)驗.是總數(shù)據(jù)個數(shù)傳完即產(chǎn)生中斷.你設(shè)置5.那就是5個數(shù)據(jù)傳完就中斷了.
2,3,如果你只用一個通道.那還要用什么DMA.直接讀ADC不就行了嗎?
回復

使用道具 舉報

6#
ID:958310 發(fā)表于 2021-8-5 14:49 | 只看該作者
wfqxgw 發(fā)表于 2021-8-5 11:02
1,按我之前使用過的經(jīng)驗.是總數(shù)據(jù)個數(shù)傳完即產(chǎn)生中斷.你設(shè)置5.那就是5個數(shù)據(jù)傳完就中斷了.
2,3,如果你只用 ...

有道理
回復

使用道具 舉報

7#
ID:106290 發(fā)表于 2021-8-5 17:09 | 只看該作者
STM32中文參考手冊_v10 144頁,明確說了。
1.當傳輸一半的數(shù)據(jù)后,半傳輸標志(HTIF)被置1,當設(shè)置了允許半傳輸中斷位(HTIE)時,將產(chǎn)生一個中斷請求。在數(shù)據(jù)傳輸結(jié)束后,傳輸完成標志(TCIF)被置1,當設(shè)置了允許傳輸完成中斷位(TCIE)時,將產(chǎn)生一個中斷請求。數(shù)據(jù)是由用戶設(shè)置的,最大為65536。
2.如果只是單通道ADC直接采用,ADC轉(zhuǎn)換完成中斷里面處理數(shù)據(jù)就好。
3.如果是多通道,可以用DMA,或者是注入型ADC轉(zhuǎn)換。
回復

使用道具 舉報

8#
ID:958310 發(fā)表于 2021-8-5 17:11 | 只看該作者
ganhui1300 發(fā)表于 2021-8-5 17:06
STM32中文參考手冊_v10 144頁,寫得很清楚,在數(shù)據(jù)傳輸結(jié)束后,傳輸完成標志位(TCIF)被置1,當設(shè)置了允許 ...

哎,這里我第一時間就看了,其實是我接手的項目之前那個人寫的代碼把我搞混淆了,我不敢確定。現(xiàn)在理解了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区 | 偷拍自拍网址 | 蜜桃免费av| 国产精品久久久久久久一区二区 | 久久久涩 | 国产激情视频 | 欧美激情五月 | 日本久久久一区二区三区 | 亚洲导航深夜福利涩涩屋 | 亚洲国产精品久久久久秋霞不卡 | 青青草社区 | 日韩精品一二三区 | 久久国产福利 | 黄色一级免费观看 | 精品在线观看入口 | 久久久福利 | 欧美精品成人一区二区三区四区 | 黄色毛片在线观看 | 在线免费观看日本 | 欧美99| 亚洲精品久久 | 亚洲国产一区二区视频 | 99热国产在线播放 | 国产成人一区二区三区久久久 | 国产一区二区三区在线免费观看 | 国产一区二区三区视频在线观看 | 国产精品一区二区三区久久久 | 欧美精品乱码久久久久久按摩 | 99色在线视频 | 国产精品mv在线观看 | 日韩在线不卡 | 成人在线欧美 | 久久久中文 | 99热电影| 91精品国产综合久久久久久漫画 | 羞羞的视频免费观看 | 精品国产99 | 福利视频网址 | 五月激情久久 | 亚洲欧美一区二区在线观看 | 欧美日在线 |