国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

用PWM輸出方波

PWM輸出的方波頻率

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

f = Fcs / freq

其中,Fcs是PWM時鐘源頻率;

PWM輸出方波的占空比

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

音符-頻率對應關系

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

開發板可以輸出的最低頻率

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

PWM輸出的方波頻率和freq成反比,freq越大,輸出的方波頻率越小;

freq是unsinged short類型,最大值為65535;
因此,輸出頻率的最小值取決于時鐘源,PWM的默認時鐘源為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);
}

我們通過直接調用hi_pwm_set_clock接口,可以修改時鐘源:

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

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

晶體時鐘頻率是多少?

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

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

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

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

可以輸出的方波最低頻率

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

>>>40*1000*1000/65535
610.3608758678569

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

準備曲譜

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

簡譜說明

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

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

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

下面譜子上的豎線就是每個小節分隔符,和4/4對應;

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

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

編寫代碼

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

staticvolatileintg_buttonPressed=0;staticconstuint16_tg_tuneFreqs[]={0,//40MHz對應的分頻系數:
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應該是低八度的,鏈接圖片中的曲譜不對,聲音到最后聽起來不太對勁};//曲譜時值,根據簡譜記譜方法轉寫,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);//設置時鐘源為晶體時鐘(40MHz,默認時鐘源160MHz)

for(size_ti=0;i

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

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 有源無源蜂鳴器

    關注

    0

    文章

    2

    瀏覽量

    1266
  • 鴻蒙
    +關注

    關注

    60

    文章

    2963

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ESP32藍牙驅動MAX98357對音頻音樂播放

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

    何用FPGA控制ADV7513實現HDMI畫面顯示和音頻播放

    HDMI接口顯示使用DMT時序+TMDS編碼來實現。當用FPGA控制HDMI的數據傳輸時,通常可以采用純RTL實現TMDS算法或者使用專門的HDMI芯片(如ADV7513)這兩種方案來完成。本文主要是介紹如何用FPGA控制ADV7513實現HDMI畫面顯示和音頻播放
    的頭像 發表于 12-02 11:05 ?6814次閱讀
    如<b class='flag-5'>何用</b>FPGA控制ADV7513實現HDMI畫面顯示和音頻<b class='flag-5'>播放</b>

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

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

    RV-STAR開發板蜂鳴器播放音樂

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

    基于開源鴻蒙的視頻播放開發樣例

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

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

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

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

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

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

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

    HarmonyOS NEXT意圖框架習慣推薦一場景說明

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

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

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

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

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

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

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

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

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

    Made with KiCad:Tangara 便攜式音樂播放

    、3D 及 BOM,查詢設計中器件、走線、焊盤的屬性詳情。還可以原理圖中與AI小助手互動,幫您更高效地學習設計細節: 概覽 Tangara 是一款便攜式音樂播放器。它通過3.5毫米耳機插孔或
    發表于 04-16 14:01

    PCM2912APJTR設計的USB聲卡播放聲音有噠噠的聲音的原因有哪些

    最近學習PCB設計設計了一個USB聲卡,電路圖參考了官方demo模塊的原理圖,但是設計出來的板子發現播放音樂會有噠噠的聲音。本人由于是初學者,所以有點不懂是PCB不對的問題還是原理圖設計的問題了。 希望有人能夠給點修改建議。 下面是原理圖。 布線圖如下:
    發表于 03-21 11:54