91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何用鴻蒙OS在蜂鳴器播放音樂(lè)

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

掃碼添加小助手

加入工程師交流群

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

用PWM輸出方波

PWM輸出的方波頻率

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

f = Fcs / freq

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

PWM輸出方波的占空比

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

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

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

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

通過(guò)前面的公式,我們知道:

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

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

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

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

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

晶體時(shí)鐘頻率是多少?

我們可以通過(guò)通過(guò)實(shí)驗(yàn),測(cè)算出晶體時(shí)鐘頻率,具體步驟如下:

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

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

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

可以輸出的方波最低頻率

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

>>>40*1000*1000/65535
610.3608758678569

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

準(zhǔn)備曲譜

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

簡(jiǎn)譜說(shuō)明

對(duì)于缺乏音樂(lè)基礎(chǔ)的同學(xué),簡(jiǎn)譜上的一些記號(hào)可能不太清楚是什么意思,這里簡(jiǎn)單說(shuō)明一下:

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

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

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

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

“一直沒(méi)有眼睛”一句,5后面的點(diǎn)表示順延半拍,一條下劃線表示二分之一時(shí)間,兩條下劃線表示四分之一時(shí)間;

編寫(xiě)代碼

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

staticvolatileintg_buttonPressed=0;staticconstuint16_tg_tuneFreqs[]={0,//40MHz對(duì)應(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//第一個(gè)八度的5};//曲譜音符staticconstuint8_tg_scoreNotes[]={//《兩只老虎》簡(jiǎn)譜: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,//最后兩個(gè)5應(yīng)該是低八度的,鏈接圖片中的曲譜不對(duì),聲音到最后聽(tīng)起來(lái)不太對(duì)勁};//曲譜時(shí)值,根據(jù)簡(jiǎn)譜記譜方法轉(zhuǎn)寫(xiě),4/4拍中下面劃一條線是半拍,劃兩條線是四分之一拍,點(diǎn)是順延半拍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è)置時(shí)鐘源為晶體時(shí)鐘(40MHz,默認(rèn)時(shí)鐘源160MHz)

for(size_ti=0;i

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

編輯:hfy

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

    關(guān)注

    0

    文章

    2

    瀏覽量

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

    關(guān)注

    60

    文章

    2968

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    ESP32藍(lán)牙驅(qū)動(dòng)MAX98357對(duì)音頻音樂(lè)播放

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

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

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

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

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

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

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

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

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

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

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

    Made with KiCad(135):Echo - 開(kāi)源的音樂(lè)播放

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

    【正點(diǎn)原子STM32MP257開(kāi)發(fā)板試用】5.播放音樂(lè)

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

    無(wú)線充電音樂(lè)臺(tái)燈不插電源能聽(tīng)歌嗎?

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

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

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

    fx3枚舉成usb揚(yáng)聲器,電腦無(wú)法播放音頻是哪里出了問(wèn)題?

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

    【開(kāi)源獲獎(jiǎng)案例】基于T5L智能屏的音樂(lè)播放與歌詞顯示方案

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

    Made with KiCad:Tangara 便攜式音樂(lè)播放

    、3D 及 BOM,查詢?cè)O(shè)計(jì)中器件、走線、焊盤(pán)的屬性詳情。還可以原理圖中與AI小助手互動(dòng),幫您更高效地學(xué)習(xí)設(shè)計(jì)細(xì)節(jié): 概覽 Tangara 是一款便攜式音樂(lè)播放器。它通過(guò)3.5毫米耳機(jī)插孔或
    發(fā)表于 04-16 14:01

    PCM2912APJTR設(shè)計(jì)的USB聲卡播放聲音有噠噠的聲音的原因有哪些

    最近學(xué)習(xí)PCB設(shè)計(jì)設(shè)計(jì)了一個(gè)USB聲卡,電路圖參考了官方demo模塊的原理圖,但是設(shè)計(jì)出來(lái)的板子發(fā)現(xiàn)播放音樂(lè)會(huì)有噠噠的聲音。本人由于是初學(xué)者,所以有點(diǎn)不懂是PCB不對(duì)的問(wèn)題還是原理圖設(shè)計(jì)的問(wèn)題了。 希望有人能夠給點(diǎn)修改建議。 下面是原理圖。 布線圖如下:
    發(fā)表于 03-21 11:54