www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]這兩天應(yīng)工作需求研究了一下M3處理器的PWM(脈寬調(diào)制)實(shí)現(xiàn)對(duì)蜂鳴器的異步控制。鑒于阻塞式對(duì)蜂鳴器的控制比較耗時(shí),影響用戶體驗(yàn),因此對(duì)原有阻塞式控制方案進(jìn)行了改善,提出了異步控制蜂鳴器的實(shí)現(xiàn)方法。以下主要對(duì)

這兩天應(yīng)工作需求研究了一下M3處理器的PWM(脈寬調(diào)制)實(shí)現(xiàn)對(duì)蜂鳴器的異步控制。鑒于阻塞式對(duì)蜂鳴器的控制比較耗時(shí),影響用戶體驗(yàn),因此對(duì)原有阻塞式控制方案進(jìn)行了改善,提出了異步控制蜂鳴器的實(shí)現(xiàn)方法。以下主要對(duì)實(shí)現(xiàn)中需要注意的重點(diǎn)知識(shí)以及所遇到的問(wèn)題進(jìn)行了討論。

PWM波利用M3的定時(shí)器產(chǎn)生,出于對(duì)平臺(tái)資源的有效利用,選擇定時(shí)器1用來(lái)輸出脈寬調(diào)制信號(hào)。這就引出了本文的重點(diǎn),M3定時(shí)器的應(yīng)用。

M3的定時(shí)器資源一共有11個(gè),其中兩個(gè)高級(jí)定時(shí)器(Timer1和Timer8)、4個(gè)通用定時(shí)器(Timer2-Timer5)、2個(gè)普通定時(shí)器(Timer6-Timer7)、2個(gè)看門狗定時(shí)器以及一個(gè)SysTick定時(shí)器。相對(duì)于普通定時(shí)器來(lái)說(shuō),高級(jí)定時(shí)器的功能更為強(qiáng)大,相對(duì)應(yīng)的應(yīng)用自然更為復(fù)雜,這個(gè)主要體現(xiàn)在電機(jī)控制中,比如直接輸出具有調(diào)節(jié)死區(qū)時(shí)間的PWM。不過(guò)本項(xiàng)目的應(yīng)用不涉及此點(diǎn),也就不做討論了。

M3的高級(jí)定時(shí)器理解為一個(gè)可供用戶編程的預(yù)分頻器驅(qū)動(dòng)16bit的計(jì)數(shù)器。主要功能包括利用它的輸入捕獲模式可以實(shí)現(xiàn)對(duì)輸入信號(hào)脈沖寬度的測(cè)量,利用PWM和輸出比較模式可以實(shí)現(xiàn)波形輸出。

M3具有復(fù)雜的時(shí)鐘系統(tǒng),它的外設(shè)都有自己獨(dú)立的時(shí)鐘控制,這就造成在應(yīng)用上相對(duì)比較復(fù)雜一些,但是這為系統(tǒng)在降低功耗方面帶了不小的優(yōu)勢(shì)。在實(shí)際應(yīng)用中我們可以關(guān)掉那些不用的外設(shè),這樣就可以大大的降低功耗。因此,要想熟練的掌握M3,就必須對(duì)它的時(shí)鐘樹要很清楚,定時(shí)器的應(yīng)用當(dāng)然也不例外。我們就從時(shí)鐘開始一步步的揭秘M3定時(shí)器的奧妙之處。

高級(jí)定時(shí)器1的時(shí)鐘信號(hào)流向通過(guò)圖1可以清楚的看到。M3處理器使用外部8M高速時(shí)鐘,然后通過(guò)內(nèi)部的倍頻因數(shù)為9的鎖相環(huán)將頻率加倍到72M,將此時(shí)鐘作為系統(tǒng)時(shí)鐘。系統(tǒng)時(shí)鐘通過(guò)分頻因數(shù)為1的AHB預(yù)分頻器將72M時(shí)鐘提供給AHB總線,AHB總線通過(guò)分頻因數(shù)為1的APB2預(yù)分頻器將72M的時(shí)鐘提供給APB2總線。APB2總線將時(shí)鐘通過(guò)一個(gè)倍頻器,與其他倍頻器不同的是這個(gè)倍頻器根據(jù)APB2分頻因數(shù)有系統(tǒng)自動(dòng)設(shè)置,如果APB2分頻因數(shù)為1,則保持時(shí)鐘不變,否則進(jìn)行2倍頻。通過(guò)倍頻之后,接將72M的時(shí)鐘信號(hào)提供給高級(jí)定時(shí)器1,而時(shí)鐘信號(hào)在定時(shí)器內(nèi)部又通過(guò)PSC的分頻來(lái)驅(qū)動(dòng)定時(shí)器1的計(jì)數(shù)器。我們對(duì)定時(shí)器的操作實(shí)際上主要是通過(guò)設(shè)置PSC的分頻值和計(jì)數(shù)器的裝載值來(lái)達(dá)到準(zhǔn)確的定時(shí)和輸出需要的波形等功能。。

圖1 Timer1的時(shí)鐘信號(hào)流向

理解了定時(shí)器的工作原理及時(shí)鐘信號(hào)工作情況后,我們就來(lái)具體分析一下如何應(yīng)用。從上文可以看出要想讓M3的定時(shí)器工作首先必須得打開時(shí)鐘,因此在系統(tǒng)進(jìn)行初始化后得到72M的時(shí)鐘后,打開Timer1的時(shí)鐘。這個(gè)可以通過(guò)設(shè)置PB2ENR寄存器的第二位實(shí)現(xiàn),后者也可以利用庫(kù)函數(shù)RCC_APB2PeriphClockCmd直接使能。接下來(lái)就需要設(shè)置計(jì)數(shù)器初始裝載值TIME1_ARR、分頻器PSC,具體設(shè)置根據(jù)公式1進(jìn)行設(shè)置。例如定時(shí)器1輸入時(shí)鐘為72M時(shí),設(shè)置PSC(預(yù)分頻器)為7199,當(dāng)ARR(計(jì)數(shù)器裝載數(shù))為9時(shí),一次中斷我們就可以得1ms的定時(shí)。至于怎么配置中斷函數(shù)以及中斷函數(shù)然后編寫此處不做贅述,詳情可以參考STM32中文參考手冊(cè)。

Time = (1+ARR)*(1+PSC)/Fsys

公式1 定時(shí)器時(shí)間計(jì)算公式

接下來(lái)討論一下PWM的產(chǎn)生,在STM32定時(shí)器1-8中除了Timer6和Timer7不能產(chǎn)生PWM外,其它都可以產(chǎn)生。高級(jí)定時(shí)器1和8可以產(chǎn)生7路的PWM波,其它的可以產(chǎn)生4路。對(duì)于波的輸出頻率也利用公式1進(jìn)行計(jì)算,至于波的占空比取CCR/ARR。我們以圖2中3路不同占空比的波來(lái)看,它們的頻率都一樣約為1.2khz,計(jì)算值與測(cè)量值存在13hz的誤差,這個(gè)是處理器本身的精度造成的。對(duì)于第一個(gè)波形來(lái)說(shuō)ARR = 59999、CCR = 30000,就得到了約等于1.2Khz且50%占空比的波。而第二個(gè)波的ARR = 59999、CCR = 15000,就得到了頻率約為1.2khz且25%占空比的波。


圖2 Time1 PWM波仿真圖

既然需要輸出波對(duì)Beep進(jìn)行控制,那么就需要進(jìn)行IO口的設(shè)置,基本IO口的設(shè)置大家應(yīng)該比較清楚,這里只介紹比較容易出錯(cuò)的地方,這就是關(guān)于管腳重映射,具體設(shè)置見(jiàn)圖表1。由于在本項(xiàng)目中Beep是連接到PA11的,由表1可見(jiàn)PA11沒(méi)有完全映像,因此對(duì)它只進(jìn)行復(fù)用設(shè)置或者設(shè)置成部分映像。這里對(duì)時(shí)鐘的設(shè)置除了打開PA口時(shí)鐘,還需打開復(fù)用時(shí)鐘。

表1 定時(shí)器1管腳復(fù)用功能映像



除了以上設(shè)置之外當(dāng)然還有一些基本設(shè)置比如設(shè)置計(jì)數(shù)器向上加模式、極性為正、輸出使能、使用PWM模式1或者模式2、使能預(yù)裝載寄存器等基本設(shè)置。

因?yàn)橐獙?shí)現(xiàn)異步控制,因此還利用了M3的定時(shí)器2,利用定時(shí)器2對(duì)PWM波的輸出進(jìn)行控制。定時(shí)器2的應(yīng)用與1類似,只需配置成定時(shí)模式即可。根據(jù)需要定時(shí)一定的時(shí)間,在中斷處理函數(shù)中關(guān)掉定時(shí)器1即可。

轉(zhuǎn)載請(qǐng)注明出處。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

這是一個(gè)很好的時(shí)鐘,有很大的片段,你可以設(shè)置每個(gè)片段的顏色和強(qiáng)度。有三個(gè)按鈕,蜂鳴器,光傳感器和RTC與備用電池。時(shí)鐘通過(guò)USB C供電,具有當(dāng)前時(shí)間,計(jì)時(shí)器和秒表等功能。請(qǐng)隨意添加您自己的功能!

關(guān)鍵字: 蜂鳴器 光傳感器 RTC

Holtek新推出專為感煙報(bào)警器應(yīng)用設(shè)計(jì)的Flash MCU - BA45F25752/BA45F25762,整合雙通道感煙偵測(cè)AFE、紅外/藍(lán)光LED驅(qū)動(dòng)、萬(wàn)年歷與蜂鳴器驅(qū)動(dòng)等功能。相較于先前的BA45F5750/BA...

關(guān)鍵字: 感煙報(bào)警器 MCU 蜂鳴器

HT16K24操作電壓為2.4V~5.5V,內(nèi)建I2C通信接口,提供三種LCD顯示與按鍵模式:24SEG × 4COM + 24 KEY;22SEG × 6COM + 22 KEY;20SEG × 8COM + 20 K...

關(guān)鍵字: LCD MCU 蜂鳴器

Holtek新推出集成感煙探測(cè)AFE、雙通道LED驅(qū)動(dòng)及9 V蜂鳴器驅(qū)動(dòng)的32-bit Arm? Cortex?-M0+ MCU HT32L62141,采用超低功耗ULP (Ultra-Low Power) 設(shè)計(jì),并提供...

關(guān)鍵字: MCU 煙探測(cè)器 蜂鳴器

這個(gè)項(xiàng)目是農(nóng)業(yè)自動(dòng)化的一個(gè)有趣的旋轉(zhuǎn):一個(gè)機(jī)器人松露嗅探器,可以自主導(dǎo)航一個(gè)空間,識(shí)別代表松露熱點(diǎn)的AprilTags,并收集“松露”(用彩色球模擬)。靈感來(lái)源于現(xiàn)實(shí)生活中用豬和狗來(lái)定位地下的松露。

關(guān)鍵字: 機(jī)器人 蜂鳴器 計(jì)算機(jī)視覺(jué)

本項(xiàng)目將向您介紹來(lái)自Elecrow的新型1.28英寸圓形顯示器,該顯示器集成了ESP32C3芯片等!該項(xiàng)目將演示將設(shè)備固件更新到MicroPython并顯示自定義消息的步驟。

關(guān)鍵字: 顯示器 ESP32C3 蜂鳴器

把“G”分開是對(duì)吉尼斯啤酒飲用技巧的真正考驗(yàn)——準(zhǔn)確地喝一口,液體的水平面要正好落在吉尼斯標(biāo)志上“G”的中間。作為一個(gè)不喝酒的人,我想看看我是否能設(shè)計(jì)出一條通往成功的道路。所以,我做了一個(gè)設(shè)備,使用非接觸式液體傳感器和蜂...

關(guān)鍵字: 傳感器 Arduino 蜂鳴器

在現(xiàn)代電子設(shè)備中,蜂鳴器作為一種能夠發(fā)出聲音信號(hào)的器件,被廣泛應(yīng)用于各種領(lǐng)域,如電子玩具、報(bào)警器、電子設(shè)備的提示音等。其中,有源壓電式蜂鳴器以其只需接上額定直流電壓即可發(fā)聲的特點(diǎn),受到了工程師們的青睞。那么,有源壓電式蜂...

關(guān)鍵字: 蜂鳴器 器件 直流電壓

我有很多魔方。有些很大;有些很小;有些花費(fèi)了一大筆錢。兩年前,我的弟弟把我的一個(gè)立方體扔在地上,毀了它,從那以后,我花了90美元升級(jí)了安全設(shè)備,以防止這種情況再次發(fā)生。但即使他沒(méi)有破壞我的立方體,他也會(huì)在我展示的時(shí)候破壞...

關(guān)鍵字: Arduino Uno LCD 閃光燈 蜂鳴器

蜂鳴器是一種非常常用的電子元器件,廣泛用于各種電子設(shè)備中的聲音輸出。而三極管則是一種半導(dǎo)體器件,具有放大和開關(guān)等功能。通過(guò)三極管的開關(guān)狀態(tài),可以驅(qū)動(dòng)蜂鳴器產(chǎn)生聲音。

關(guān)鍵字: 蜂鳴器 三極管
關(guān)閉