chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何用鴻蒙OS在蜂鳴器播放音樂

鴻蒙系統(tǒng)HarmonyOS ? 來源:oschina ? 作者:osc_2wq8ft8d ? 2020-11-11 12:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹如何在HiSpark Wi-Fi IoT套件上,使用Harmony OS IoT硬件子系統(tǒng)的PWM接口 驅(qū)動蜂鳴器 播放音樂。

用PWM輸出方波

PWM輸出的方波頻率

通過PwmStart接口的注釋,可以知道freq參數(shù)是分頻倍數(shù),PWM實際輸出的方波頻率等于 PWM時鐘源頻率 除以 分頻倍數(shù),即

f = Fcs / freq

其中,F(xiàn)cs是PWM時鐘源頻率;

PWM輸出方波的占空比

通過PwmStart接口的duty參數(shù)可以控制輸出方波的占空比,占空比是指PWM輸出的方波波形的高電平時間占整個方波周期的比例,具體占空比值是 duty 和 freq的比值,例如想要輸出占空比 50%的方波信號,那么duty填的值就要是 freq/2;

音符-頻率對應(yīng)關(guān)系

參考:https://liam.page/2018/04/09/pitch-interval-and-harmonic/

開發(fā)板可以輸出的最低頻率

通過前面的公式,我們知道:

PWM輸出的方波頻率和freq成反比,freq越大,輸出的方波頻率越?。?/p>

freq是unsinged short類型,最大值為65535;
因此,輸出頻率的最小值取決于時鐘源,PWM的默認(rèn)時鐘源為160M:

unsignedintHalPwmInit(HalWifiIotPwmPortport){if(hi_pwm_set_clock(PWM_CLK_160M)!=HI_ERR_SUCCESS){return(unsignedint)HAL_WIFI_IOT_FAILURE;
}returnhi_pwm_init((hi_pwm_port)port);
}

我們通過直接調(diào)用hi_pwm_set_clock接口,可以修改時鐘源:

/**
*@ingroupiot_pwm
*
*EnumeratesthePWMclocksources.CNcomment:PWM時鐘源枚舉。CNend
*/typedefenum{
PWM_CLK_160M,/**

通過注釋我們知道hi_pwm_set_clock(PWM_CLK_XTAL);可以將時鐘源設(shè)置為晶體時鐘,晶體時鐘可能為24M或40M;
那么問題來了——晶體時鐘到底是多少?

晶體時鐘頻率是多少?

我們可以通過通過實驗,測算出晶體時鐘頻率,具體步驟如下:

使用hi_pwm_set_clock(PWM_CLK_XTAL);設(shè)置時鐘源為晶體時鐘;

使用PwmStart(WIFI_IOT_PWM_PORT_PWM0, 20*1000, 40*1000);輸出方波信號;

使用示波器測量方波頻率;
經(jīng)實際測量,方波評率為1000Hz,因此,時鐘頻率為1000 * 40 * 1000也就是 40 MHz;

可以輸出的方波最低頻率

因此,方波最低頻率就是 40M / 65535 ,也就是:

>>>40*1000*1000/65535
610.3608758678569

對照上面的頻率表,可以知道,能夠輸出E?以上的所有音符;

準(zhǔn)備曲譜

為了代碼實現(xiàn)起來簡單,我選擇了《兩只老虎》的曲譜作為素材,很快找到了簡譜:

簡譜說明

對于缺乏音樂基礎(chǔ)的同學(xué),簡譜上的一些記號可能不太清楚是什么意思,這里簡單說明一下:

左上角的1=C是表示調(diào)式(可以不用關(guān)心),1是唱名,C是音名,1=C是正調(diào)(就是常規(guī)的對應(yīng)關(guān)系: 1-C,2-D, 3-E, 4-F, 5-G, 6-A, 7-B);

左上角的 4/4 是四四拍,是指 四分音符為一拍, 每小節(jié)有四拍;

下面譜子上的豎線就是每個小節(jié)分隔符,和4/4對應(yīng);

“跑得快”上面5后面的橫線表示延時一拍;

“一直沒有眼睛”一句,5后面的點表示順延半拍,一條下劃線表示二分之一時間,兩條下劃線表示四分之一時間;

編寫代碼

有了以上知識,我們就可以編寫代碼了,關(guān)鍵部分代碼如下:

staticvolatileintg_buttonPressed=0;staticconstuint16_tg_tuneFreqs[]={0,//40MHz對應(yīng)的分頻系數(shù):
38223,//11046.5
34052,//21174.7
30338,//31318.5
28635,//41396.9
25511,//51568
22728,//61760
20249,//71975.5
51021//5_783.99//第一個八度的5};//曲譜音符staticconstuint8_tg_scoreNotes[]={//《兩只老虎》簡譜:http://www.jianpu.cn/pu/33/33945.htm
1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1,5,6,5,4,3,1,1,8,1,1,8,1,//最后兩個5應(yīng)該是低八度的,鏈接圖片中的曲譜不對,聲音到最后聽起來不太對勁};//曲譜時值,根據(jù)簡譜記譜方法轉(zhuǎn)寫,4/4拍中下面劃一條線是半拍,劃兩條線是四分之一拍,點是順延半拍staticconstuint8_tg_scoreDurations[]={4,4,4,4,4,4,4,4,4,4,8,4,4,8,3,1,3,1,4,4,3,1,3,1,4,4,4,4,8,4,4,8,
};staticvoid*BeeperMusicTask(constchar*arg){
(void)arg;printf("BeeperMusicTaskstart!\r\n");

hi_pwm_set_clock(PWM_CLK_XTAL);//設(shè)置時鐘源為晶體時鐘(40MHz,默認(rèn)時鐘源160MHz)

for(size_ti=0;i

其中譜子最后兩個5是譜子的錯誤,應(yīng)該是低八度的5,也就是5下面應(yīng)該打一個點;我修改了代碼,讓整個曲子聽起來更自然;

編輯:hfy

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

    關(guān)注

    0

    文章

    2

    瀏覽量

    1270
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    3021

    瀏覽量

    46178
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    開源鴻蒙6.1 Release版本正式發(fā)布,OS 6.1率先完成升級適配!

    鴻蒙項目群A類捐贈人,開鴻智谷積極參與OpenHarmony6.1Release版本的適配工作,并率先推出基于開源鴻蒙6.1Release的OS6.1Rele
    的頭像 發(fā)表于 03-10 18:06 ?679次閱讀
    開源<b class='flag-5'>鴻蒙</b>6.1 Release版本正式發(fā)布,<b class='flag-5'>在</b>鴻<b class='flag-5'>OS</b> 6.1率先完成升級適配!

    ESP32藍牙驅(qū)動MAX98357對音頻音樂播放

    本文介紹了MAX98357音頻模塊的基本特性,并利用ESP32的藍牙功能程序驅(qū)動此模塊,最后用手機藍牙連接ESP32播放手機音樂
    的頭像 發(fā)表于 12-19 19:55 ?3232次閱讀
    ESP32藍牙驅(qū)動MAX98357對音頻<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>

    何用FPGA控制ADV7513實現(xiàn)HDMI畫面顯示和音頻播放

    HDMI接口顯示使用DMT時序+TMDS編碼來實現(xiàn)。當(dāng)用FPGA控制HDMI的數(shù)據(jù)傳輸時,通??梢圆捎眉僐TL實現(xiàn)TMDS算法或者使用專門的HDMI芯片(如ADV7513)這兩種方案來完成。本文主要是介紹如何用FPGA控制ADV7513實現(xiàn)HDMI畫面顯示和音頻播放
    的頭像 發(fā)表于 12-02 11:05 ?7051次閱讀
    如<b class='flag-5'>何用</b>FPGA控制ADV7513實現(xiàn)HDMI畫面顯示和音頻<b class='flag-5'>播放</b>

    開源鴻蒙技術(shù)大會2025丨OS內(nèi)核與視窗分論壇:筑基開源鴻蒙核心內(nèi)核,共拓視窗技術(shù)邊界

    開源鴻蒙技術(shù)大會2025 OS內(nèi)核與視窗分論壇湖南長沙國際會議中心圓滿舉行。來自西北工業(yè)大學(xué)、浙江大學(xué)、廈門大學(xué)、華為等高校和企業(yè)的學(xué)者專家齊聚一堂,圍繞鴻蒙內(nèi)核通信機制、智能渲染、
    的頭像 發(fā)表于 11-20 17:29 ?1093次閱讀
    開源<b class='flag-5'>鴻蒙</b>技術(shù)大會2025丨<b class='flag-5'>OS</b>內(nèi)核與視窗分論壇:筑基開源<b class='flag-5'>鴻蒙</b>核心內(nèi)核,共拓視窗技術(shù)邊界

    開源鴻蒙技術(shù)大會2025丨OS原生智能分論壇圓滿舉辦

    開源鴻蒙技術(shù)大會2025 OS原生智能分論壇湖南長沙國際會議中心圓滿舉行。來自學(xué)術(shù)界與產(chǎn)業(yè)界的多位專家學(xué)者齊聚一堂,圍繞端側(cè)AI、智能體(Agent)技術(shù)、大模型高效推理等前沿議題展開深度交流
    的頭像 發(fā)表于 11-20 17:28 ?921次閱讀
    開源<b class='flag-5'>鴻蒙</b>技術(shù)大會2025丨<b class='flag-5'>OS</b>原生智能分論壇圓滿舉辦

    RV-STAR開發(fā)板蜂鳴器播放音樂

    下載:music_player 本工程由nucleistudio建立,連接蜂鳴器引腳為PA8,具體代碼見附件。 #include "beep.h"
    發(fā)表于 11-05 06:16

    基于開源鴻蒙的視頻播放開發(fā)樣例

    開源鴻蒙生態(tài)建設(shè)中,多媒體能力是構(gòu)建豐富用戶體驗的核心要素。本開發(fā)樣例針對視頻播放場景,聚焦開源鴻蒙原生媒體框架,通過Video組件實現(xiàn)視頻資源加載、
    的頭像 發(fā)表于 08-19 10:41 ?1798次閱讀
    基于開源<b class='flag-5'>鴻蒙</b>的視頻<b class='flag-5'>播放</b>開發(fā)樣例

    蜻蜓FM開源“SmartXPlayer”音頻播放組件,打造鴻蒙多端音頻播放新引擎

    近日,由蜻蜓FM研發(fā)的音頻播放組件“SmartXPlayer”正式開源并上線 OpenHarmony 三方庫中心倉。作為一款專為鴻蒙多端場景打造的音頻播放引擎,SmartXPlayer基于鴻蒙
    的頭像 發(fā)表于 07-21 16:31 ?756次閱讀
    蜻蜓FM開源“SmartXPlayer”音頻<b class='flag-5'>播放</b>組件,打造<b class='flag-5'>鴻蒙</b>多端音頻<b class='flag-5'>播放</b>新引擎

    Made with KiCad(135):Echo - 開源的音樂播放

    “? Echo 是一個開源硬件平臺,專為音樂播放器設(shè)計。該項目的目標(biāo)是開發(fā)一款基于開源軟件并采用開源設(shè)計的高品質(zhì)音樂播放器。 ” ? Made with KiCad 系列將支持新的展示
    的頭像 發(fā)表于 07-16 11:17 ?3364次閱讀
    Made with KiCad(135):Echo - 開源的<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>器

    【正點原子STM32MP257開發(fā)板試用】5.播放音樂

    前言 感謝正點原子和電子發(fā)燒友論壇提供的這次機會讓我有機會體驗這款正點原子STM32MP257開發(fā)板,希望可以借這個機會好好學(xué)習(xí)一下。 環(huán)境搭建 播放音樂有很多Python庫比如pygame
    發(fā)表于 06-28 14:27

    HarmonyOS NEXT意圖框架習(xí)慣推薦一場景說明

    推薦播放接續(xù),例如音樂、長視頻以及課程的播放接續(xù),可以參考本文。首先需要在設(shè)置中開啟意圖框架調(diào)試,如下圖所示。確保意圖框架調(diào)試開啟且界面成功展示設(shè)備支測試應(yīng)用。 本文主要引用整理于
    發(fā)表于 06-18 15:06

    無線充電音樂臺燈不插電源能聽歌嗎?

    無線充電音樂臺燈不插電源下,能繼續(xù)享受音樂,但電量耗盡將無法使用。內(nèi)置電池可提供靈活性,但低電量模式下可能犧牲音樂播放。用戶需預(yù)估電量消耗
    的頭像 發(fā)表于 06-16 09:03 ?1408次閱讀
    無線充電<b class='flag-5'>音樂</b>臺燈不插電源能聽歌嗎?

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包下載

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包,推薦下載!
    發(fā)表于 05-29 21:37

    fx3枚舉成usb揚聲器,電腦無法播放音頻是哪里出了問題?

    參考fx3 sdk 1.3.5例程uac_examples,將fx3修改為usb 揚聲器,電腦能識別到設(shè)備,但電腦無法正常播放音頻,fx3也收不到音頻數(shù)據(jù)。請問是哪里出了問題?有沒有相關(guān)的例程可以參考?#EZ-USB FX3
    發(fā)表于 05-23 08:21

    【開源獲獎案例】基于T5L智能屏的音樂播放與歌詞顯示方案

    ——來自迪文開發(fā)者論壇本期為大家推送迪文開發(fā)者論壇獲獎開源案例——基于T5L智能屏的音樂播放與歌詞顯示方案。該方案通過T5L串口與通用開發(fā)板、解碼板進行數(shù)據(jù)交互,將解析完成的音頻和歌詞通過串口發(fā)送給智能屏,實現(xiàn)音樂
    的頭像 發(fā)表于 05-08 09:52 ?1002次閱讀
    【開源獲獎案例】基于T5L智能屏的<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>與歌詞顯示方案