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越大,輸出的方波頻率越小;

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

    瀏覽量

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

    關(guān)注

    60

    文章

    2859

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    何用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 ?2566次閱讀
    如<b class='flag-5'>何用</b>FPGA控制ADV7513實現(xiàn)HDMI畫面顯示和音頻<b class='flag-5'>播放</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 ?1324次閱讀
    基于開源<b class='flag-5'>鴻蒙</b>的視頻<b class='flag-5'>播放</b>開發(fā)樣例

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

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

    基于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ā)板、解碼板進(jìn)行數(shù)據(jù)交互,將解析完成的音頻和歌詞通過串口發(fā)送給智能屏,實現(xiàn)音樂
    的頭像 發(fā)表于 05-08 09:52 ?640次閱讀
    【開源獲獎案例】基于T5L智能屏的<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>與歌詞顯示方案

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

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

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

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

    【ELF 2學(xué)習(xí)板試用】06 alsa-lib安裝和播放音樂

    的開發(fā)環(huán)境的安裝。 3 alsa-lib應(yīng)用程序 使用alsa-lib庫編寫程序,實現(xiàn)播放音樂的功能。 下面是程序源碼 #include <stdio.h>
    發(fā)表于 02-18 16:31

    畢業(yè)設(shè)計競賽選題推薦 | 嵌入式Linux應(yīng)用之音樂播放器項目實戰(zhàn)(含文檔及源碼)

    提升了效率和心情。嵌入式Linux開發(fā)的音樂播放器,憑借其高效能與低能耗的特點,便攜設(shè)備、智能家電以及車載系統(tǒng)等領(lǐng)域中展現(xiàn)出獨特的優(yōu)勢。它不僅能夠提供高品質(zhì)的音樂
    的頭像 發(fā)表于 12-23 16:50 ?1359次閱讀
    畢業(yè)設(shè)計競賽選題推薦 | 嵌入式Linux應(yīng)用之<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>器項目實戰(zhàn)(含文檔及源碼)

    瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示

    本文介紹瑞芯微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等
    的頭像 發(fā)表于 12-13 11:40 ?1402次閱讀
    瑞芯微主板/開發(fā)板Linux系統(tǒng)<b class='flag-5'>播放音</b>頻方法,觸覺智能RK3562開發(fā)板演示

    海貝R1便攜音樂播放器開箱

    ,插上耳機,你就擁有了一片獨立的小天地。 海貝R1這款便攜音樂播放器的顏值相當(dāng)出色,75克的機身塞進(jìn)去了3英寸的高清觸摸屏。圓潤的外形配合透明中框和多色可選主題配色,顏值非常的能打。純凈的HiBy OS不僅簡單易用,也進(jìn)一步優(yōu)化
    的頭像 發(fā)表于 12-09 09:40 ?1983次閱讀
    海貝R1便攜<b class='flag-5'>音樂</b><b class='flag-5'>播放</b>器開箱