使用ADC的定時(shí)器觸發(fā)ADC轉(zhuǎn)換的功能,然后使用DMA進(jìn)行數(shù)據(jù)的搬運(yùn)!采用TIM2定時(shí)器的觸發(fā)間隔,實(shí)現(xiàn)ADC定時(shí)采樣轉(zhuǎn)換的功能,然后可以在程序的死循環(huán)中一直檢測DMA轉(zhuǎn)換完成標(biāo)志,然后進(jìn)行數(shù)據(jù)的讀取,或者使能DMA轉(zhuǎn)換完成中斷,這樣每次轉(zhuǎn)換完成就會產(chǎn)生中斷。
做示波器時(shí),由于要做調(diào)整橫坐標(biāo)顯示倍數(shù)增大和縮小,故需要改變采樣頻率,也就是改變TIM2 的定時(shí)器時(shí)間間隔,在TIM2初始化函數(shù)定義時(shí),添加u16 Value參數(shù),第一次調(diào)試時(shí),設(shè)置如下:
定時(shí)器2初始化函數(shù)void TIM2_Configuration(u16 Value),配置TIM_Period = Value - 1;
TIM_TimeBaseStructure.TIM_Period = Value - 1;//設(shè)置2ms一次TIM2比較的周期(注意此處!!!)
TIM_TimeBaseStructure.TIM_Prescaler = 1;//系統(tǒng)主頻56M,這里2分頻 (注意此處!!!)
DMA配置:
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADCConvertedValue;//內(nèi)存存儲基地址
DMA_InitStructure.DMA_BufferSize = 2000;//DMA緩存大小,2000個(gè)
ADC配置:
ADC_InitStructure.ADC_ScanConvMode =DISABLE;//關(guān)閉掃描模式 因?yàn)橹挥幸粋€(gè)通道
ADC_InitStructure.ADC_ContinuousConvMode =DISABLE;//關(guān)閉連續(xù)轉(zhuǎn)換模式 否則只要觸發(fā)一次,后續(xù)的轉(zhuǎn)換就會永不停歇(除非CONT清0),這樣第一次以后的ADC,就不是由TIM2_CC2來觸發(fā)了
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2;//軟件轉(zhuǎn)換模式
示波器中為防止波形頻閃,需要用到觸發(fā)電平。想讓觸發(fā)點(diǎn)定在屏幕中間,在第一次上電觸發(fā)脈沖到來時(shí),需要DMA中有至少半屏的數(shù)據(jù),若半屏為240個(gè)點(diǎn),則另外需要一個(gè)定時(shí)器來控制這個(gè)時(shí)間,采用TIM4,設(shè)置如下:
TIM_TimeBaseStructure.TIM_Period = 240*Value -1; //240個(gè)點(diǎn)的定時(shí)時(shí)間 (注意此處!!!)
TIM_TimeBaseStructure.TIM_Prescaler = 1; //系統(tǒng)主頻56M,這里2分頻 (注意此處!!!)
當(dāng)TIM2定時(shí)時(shí)間到,使能觸發(fā)中斷。當(dāng)觸發(fā)脈沖到來時(shí),記下當(dāng)前位置,即為觸發(fā)位置。禁能觸發(fā)中斷并再次啟動定時(shí)器,采集另外240個(gè)點(diǎn)。從上述位置左右各取240個(gè)點(diǎn),顯示在屏幕上即可;
遇到的問題:
1、在調(diào)整Value值來改變TIM2的時(shí)間間隔,240個(gè)點(diǎn)的定時(shí)時(shí)間出錯,理論上在進(jìn)入TIM4的中斷時(shí),應(yīng)采樣240多個(gè)點(diǎn)(比如為140時(shí),采樣242個(gè)點(diǎn)),但是Value為280時(shí),才7個(gè)點(diǎn)。
分析:
通過查看TIM_Period的數(shù)據(jù)類型發(fā)現(xiàn),其為u16,即unsigned short,范圍為0-65536,當(dāng)Value為280時(shí),TIM4的TIM_Period為67200,超過了u16的范圍,實(shí)際設(shè)置的TIM_Period值為1664-1。
TIM4的時(shí)間間隔:
((1+TIM_Prescaler )/56M)*(1+TIM_Period )=((1+1)/56M)*(1+1664-1)=59.4us
采樣周期:
((1+TIM_Prescaler )/56M)*(1+TIM_Period )=((1+1)/56M)*(1+280-1)=10us
通過以上計(jì)算,發(fā)現(xiàn)Value為280時(shí),為6采樣周期,與7個(gè)點(diǎn)的時(shí)間相差無幾,終于找出問題所在;
解決:
由于定時(shí)器的分頻TIM_Prescaler 設(shè)置的比較小,TIM4的TIM_Period 又做了240的乘數(shù),想要增大定時(shí)器時(shí)間間隔,使得Value很容易超范圍,可將TIM_Prescaler設(shè)置為19,采樣周期為10us(即定時(shí)器TIM2時(shí)間間隔),Value只需設(shè)置為28即可。
2、以上是Value過大時(shí)出現(xiàn)的問題,但當(dāng)Value比較小時(shí),還是在原來的TIM設(shè)置條件下,TIM_Prescaler = 1,當(dāng)Value小于28時(shí),當(dāng)TIM4定時(shí)時(shí)間到時(shí),只采集了100多個(gè)點(diǎn)。
分析:
ADC轉(zhuǎn)換就是輸入模擬的信號量,單片機(jī)轉(zhuǎn)換成數(shù)字量。讀取數(shù)字量必須等轉(zhuǎn)換完成后,完成一個(gè)通道的讀取叫做采樣周期。采樣周期一般來說=轉(zhuǎn)換時(shí)間+讀取時(shí)間。而轉(zhuǎn)換時(shí)間=采樣時(shí)間+12.5個(gè)時(shí)鐘周期。
CPU的頻率為56MHz ,ADC取4分頻,即為14MHz,則ADC總轉(zhuǎn)換時(shí)間為:TCONV = 1.5 + 12.5 = 14周期= 14/14M = 1μs
故采一個(gè)點(diǎn)的時(shí)間理論上略大于1us,而在Value設(shè)置為28時(shí),TIM2的時(shí)間間隔正好為1us,導(dǎo)致240us實(shí)際采集的點(diǎn)數(shù)比較少,通過多次試驗(yàn),修改Value的值,發(fā)現(xiàn)當(dāng)取值為32是正好采樣正確,為31時(shí)則不行,通過計(jì)算為1.1us,故需要設(shè)置TIM2的采樣間隔大于此數(shù)值即可。
上一篇:基于STM32實(shí)現(xiàn)孤立詞語音識別系統(tǒng)
下一篇:【STM32】定時(shí)器TIM觸發(fā)ADC采樣,DMA搬運(yùn)到內(nèi)存
推薦閱讀
史海拾趣
作為一家在電子行業(yè)中具有影響力的企業(yè),Directed Energy Inc深知自己肩負(fù)的社會責(zé)任。公司積極參與各種公益活動和社會事務(wù),為社會的發(fā)展貢獻(xiàn)自己的力量。同時(shí),公司還注重環(huán)保和可持續(xù)發(fā)展,努力降低生產(chǎn)過程中的能耗和排放,推動綠色生產(chǎn)。這種積極履行社會責(zé)任的態(tài)度贏得了社會的廣泛贊譽(yù)和支持,也為公司的成長提供了有力保障。
請注意,以上故事均為模擬構(gòu)建,旨在展示Directed Energy Inc公司在電子行業(yè)中的可能發(fā)展歷程和成就。實(shí)際情況可能有所不同,具體細(xì)節(jié)和數(shù)據(jù)請以公司官方發(fā)布的信息為準(zhǔn)。
隨著產(chǎn)品質(zhì)量的不斷提升和市場口碑的積累,ALSC開始積極拓展國內(nèi)外市場。公司不僅在國內(nèi)建立了完善的銷售網(wǎng)絡(luò),還與多家國際知名企業(yè)建立了戰(zhàn)略合作關(guān)系。通過與國際伙伴的緊密合作,ALSC成功將產(chǎn)品推向全球市場,進(jìn)一步提升了公司的知名度和影響力。
在激烈的市場競爭中,Echelon始終保持對技術(shù)的熱情和追求。公司不斷投入研發(fā)資源,對LonWorks技術(shù)進(jìn)行升級和優(yōu)化,推出了一系列創(chuàng)新的產(chǎn)品和服務(wù)。這些新產(chǎn)品和服務(wù)不僅提升了Echelon的市場競爭力,還為客戶帶來了更加高效、便捷的能源管理體驗(yàn)。同時(shí),Echelon還積極與其他科技公司合作,共同研發(fā)新技術(shù)、新產(chǎn)品,推動整個(gè)行業(yè)的發(fā)展。
隨著公司業(yè)務(wù)的不斷發(fā)展,Echelon開始積極拓展全球市場。公司通過在海外設(shè)立分支機(jī)構(gòu)、與當(dāng)?shù)仄髽I(yè)合作等方式,將LonWorks技術(shù)和能源管理服務(wù)方案推廣至全球各地。同時(shí),Echelon還積極參與國際能源管理標(biāo)準(zhǔn)的制定和推廣工作,提升了公司在國際市場的知名度和影響力。
在電子行業(yè)競爭激烈的今天,COMPEX公司始終堅(jiān)持質(zhì)量至上的原則。公司建立了嚴(yán)格的質(zhì)量管理體系,從原材料采購到產(chǎn)品生產(chǎn)、檢驗(yàn)、出貨等各個(gè)環(huán)節(jié)都嚴(yán)格把關(guān),確保產(chǎn)品質(zhì)量符合客戶要求。這種對質(zhì)量的執(zhí)著追求,使得COMPEX的產(chǎn)品在市場上具有很高的口碑和競爭力。
在電子行業(yè)的早期,DUBILIER公司以其卓越的技術(shù)創(chuàng)新能力脫穎而出。當(dāng)時(shí),市場上對高可靠性電子元件的需求日益增長,而DUBILIER公司憑借其獨(dú)特的生產(chǎn)工藝和材料科學(xué),成功研發(fā)出了一系列高性能的電阻器和電容器。這些產(chǎn)品不僅滿足了市場的需求,還為公司贏得了良好的聲譽(yù)。通過不斷的技術(shù)創(chuàng)新,DUBILIER公司逐漸在電子行業(yè)中確立了其領(lǐng)導(dǎo)地位。
請教大俠怎么在linux下把s3c2440的串口波特率設(shè)置為250k??? 芯片資料上說可以選擇PCLK,UEXCLK,F(xiàn)CLK/n作為串口的時(shí)鐘源,假如用PCL最高可以達(dá)到115.2k,假如要更高的波特率就要用外接時(shí)鐘或者用FCLK/n作為串口的時(shí)鐘源,但是這個(gè)怎么設(shè)置呢?我設(shè)置了ULCON,UCON,UFCON不行啊,解壓linux之后就停在那里了,bo ...… 查看全部問答∨ |
現(xiàn)在學(xué)習(xí)51單片機(jī)一段時(shí)間了,以前下了一個(gè)c編程的資料,放在手邊查閱,感覺不錯,給大家分享一下… 查看全部問答∨ |
RT-Thread提供了一套簡潔的虛擬文件系統(tǒng)支持,有了它以后,文件操作就如同Linux一樣簡單。虛擬文件系統(tǒng)(VFS)是由Sun microsystems公司在定義網(wǎng)絡(luò)文件系統(tǒng)(NFS)時(shí)創(chuàng)造的。它是一種用于網(wǎng)絡(luò)環(huán)境的分布式文件系統(tǒng),是允許和操作系統(tǒng)使用不同的文件系統(tǒng) ...… 查看全部問答∨ |
S3C2450平臺上使用imaging API顯示PNG,PNG透明部分顯示白色 重新發(fā)帖! 開發(fā)平臺:Platform Builder5.0, EVC4+SP4 硬件平臺:urbetter公司2440和2450硬件平臺 問題:定制系統(tǒng)時(shí),添加Still Image Decoders下的JPG Decoder和PNG Decoder后,MFC開發(fā)應(yīng)用程序,利用API對JPG,PNG的支持來顯示JPG,PNG, ...… 查看全部問答∨ |
具體怎么才算一次傳輸完成呢?也就是說,在EDMA或DMA傳輸中,什么時(shí)候才會發(fā)送一次傳輸完成中斷呢?(假設(shè)使能位和傳輸完成碼已經(jīng)設(shè)定). 不是說的可選傳輸完成碼. 對 ...… 查看全部問答∨ |
WIFI設(shè)備與無線路由器連接上后,如何獲取它的IP地址,WIFI發(fā)送數(shù)據(jù)包使用的通信協(xié)議是什么,發(fā)送數(shù)據(jù)包時(shí)需要調(diào)用哪些函數(shù)… 查看全部問答∨ |
大家好,我現(xiàn)在要用2812實(shí)現(xiàn)頻譜分析,其中要用到fft變換,但是用2812的fft.lib庫函數(shù)后,得到的是一系列的幅值點(diǎn),然而我現(xiàn)在要用液晶顯示頻譜曲線就必須將這些點(diǎn)與頻率值相對應(yīng),我不知道怎樣才能實(shí)現(xiàn),望高手給與指點(diǎn),十分感謝。… 查看全部問答∨ |
|
【求助版主和各路高手】430測量頻率,100多KHz,精確到Hz 現(xiàn)在需要測量頻率,要求如下 測量范圍100K-135K Hz,因?yàn)樾盘栴l率很精確的,變化不是很劇烈,一般穩(wěn)定在一個(gè)數(shù)據(jù)上面,所以要求精確到Hz,測量時(shí)間小于100mS。擬采用MSP430F149,主頻1.8432M. 求助大家 采用過定時(shí)捕捉。 ( ...… 查看全部問答∨ |
我在am1808中跑裸機(jī)程序,系統(tǒng)時(shí)鐘300Mhz,測試方法利用GPIO輸出高低電平測1000個(gè)nop指令的執(zhí)行時(shí)間,發(fā)現(xiàn)1個(gè)nop需要占用28ns,有誰知道原因嗎?該從哪些方面入手解決執(zhí)行速度問題?… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 大眾汽車宣布明年起其所有電動車型全面轉(zhuǎn)向磷酸鐵鋰電池,升級至MEB Plus平臺
- 總產(chǎn)值破2000億,深圳要做“機(jī)器人第一城”?
- 鴻道Intewell操作系統(tǒng) 人形機(jī)器人底層操作系統(tǒng)
- 如何定位國產(chǎn)智駕芯片的終局價(jià)值?
- 新一代車規(guī)級數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機(jī)器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國電池公司獲英國政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達(dá)有哪些技術(shù)升級?
- 比特幣“暴發(fā)戶”入市,能撐起200億估值嗎?
- Maxim 發(fā)布伺服控制器/驅(qū)動器模塊,為自動化設(shè)備提速降耗
- 英特爾Loihi芯片:其中包括1000億個(gè)突觸,與老鼠大腦復(fù)雜度差不多
- 平頭哥發(fā)布玄鐵907處理器,已向多家企業(yè)授權(quán)
- 小米澎湃S2處理器量產(chǎn) 采用16nm制程工藝
- 吳軍:人工智能劃分的三個(gè)大時(shí)代
- 科學(xué)滅火挽救了巴黎圣母院 大疆無人機(jī)發(fā)揮關(guān)鍵作用
- 首屆中國國際智能終端產(chǎn)業(yè)發(fā)展大會將在四川省宜賓市舉行
- 比亞迪電子能否摘掉“傳統(tǒng)地低端代工廠”的標(biāo)簽?
- 4G技術(shù)助力無人機(jī)精細(xì)化自主巡檢