999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM 32的多功能MP3播放器設計

2022-05-12 06:13:28杜建銘師文慶
機電工程技術 2022年3期
關鍵詞:界面功能設計

杜建銘,師文慶

(廣東海洋大學電子與信息工程學院,廣東湛江 524088)

0 引言

1986年,卡爾因茨·布蘭登堡提出:通過編碼重組技術大幅度壓縮音頻文件,在播放時使用專門的解碼技術進行還原,以此達到減小音樂文件大小的同時保持音質的目的。自此之后,播放器不斷地改進、完善。1990年,布蘭登堡得到一家音頻研究機構的幫助,為他提供了一個研究小組。在同年,布蘭登堡在實際的測試中把CD音質的音樂文件壓縮到原來的1∕12,并且順利地解碼播放,MP3技術就是由此而來。

MP3音樂播放器雖然已經誕生30多年,但仍然能在消費類電子產品有一席之位,原因在于其設計理念一直在變化,從而能夠持續地煥發生機與活力。目前國內市場上的MP3播放器,能夠播放若干種格式的音樂;所有的信息都直觀地顯示在一塊鏡面顯示屏上,靈敏觸摸屏取代了按鍵控制,大大簡便了用戶的操作;不僅如此,由于消費者愛好需要也十分廣泛,廠家往往費盡心思地為產品添加更多實用功能來增加產品的賣點,例如計步、藍牙、收音機、電子書等功能。由此可見,設計一款觸屏交互,且多功能的MP3音樂播放器不僅有實際的應用價值,并且是非常符合市場要求的。

基于以上描述,本設計選用STM32F103ZET6微處理器作為主控[1-2],音樂解碼部分使用VS1053B,提供的硬件解碼功能,LCD顯示與電阻觸屏作為本設計的主要交互方式,要實現的主要功能有歌曲的切換、暫停∕播放、音量條的顯示及控制、播放進度的顯示及控制,在此基礎上添加多種實用功能,設計一款多功能MP3播放器,讓用戶在享受音樂之余還能體驗額外功能帶來的便利性。

1 系統總體方案概述

1.1 音頻的解碼方式

一般的音樂文件通常是經過編碼壓縮的,所以播放的時候需進行解碼才能輸出動聽的音樂。常規的解碼方式有軟解碼和硬解碼。

(1)軟解碼

軟解碼就是把一套解碼算法交給CPU去運算從而得到音頻數據,對CPU的運算速度有較高的要求[3]。

(2)硬解碼

硬解碼這種方式將解碼工作交給專門的解碼芯片,目前市面上的MP3播放器采用的大多數是硬解碼[4]。

在本設計中選擇了硬解碼,STM32僅需完成文件讀寫并分批量地輸送數據到解碼芯片上,運算量較小,不需移植第三方庫。

1.2 系統總體框架

系統由電阻觸摸屏、音頻解碼模塊、溫度傳感器、藍牙模塊、外部Flash存儲芯片、SD卡等模塊組成。利用溫度傳感器進行環境溫度的檢測;外部Flash存儲芯片用于保存字庫信息;藍牙模塊可供手機連接,通過手機藍牙發送指令來實現遠程控制MP3播放器。系統硬件結構框如圖1所示。

圖1 系統總體框圖

2 硬件設計

2.1 主控芯片

STM32F103ZET6工作頻率為72 MHz,是基于意法半導體公司專為低成本、低功耗的嵌入式應用所設計的ARM架構32位Cortex-M3內核,內置512 K字節的閃存,64 k字節的SRAM作為運行內存,還具有豐富的通信接口,可以滿足本設計的需求[5]。

2.2 音頻解碼模塊

本設計采用VS1053B作為硬件解碼方案,是通過SPI接口來接收音頻數據的,模塊上的RST引腳提供了硬件復位功能,在歌曲切換前進行硬復位可減少切換歌曲時的雜音。VS1053B解碼完成的數據由其內置的DAC將數字音頻信號轉換成模擬音頻信號,而后輸出到VS1053B的LEFT與RIGHT引腳上,可以直接驅動耳機或是外接功放驅動揚聲器[6]。

2.3 溫度傳感器

DS18B20是常用的數字溫度傳感器,能夠將環境溫度轉換為數字電信號,是一種單總線接口的器件,只需一根數據線與主控的IO端連接口就可以實現通信,直流工作電壓范圍3.0~5.5 V,當測溫范圍在-10℃~+85℃,測溫誤差僅在±0.5℃,可以給本系統提供較精確的環境測溫功能[7]。

2.4 藍牙模塊

CC2541串口藍牙模塊,可直接與STM32的USART接口相連。令藍牙模塊的STATE引腳與STM32上的引腳相連,把引腳配置成下拉輸入,當藍牙連接建立之后,引腳上就會檢測到高電平,反之則為低電平,根據引腳上電平的變化,可把藍牙的連接狀態直觀的在顯示屏上展現出來,此模塊可實現手機控制MP3播放器的功能。

2.5 外部Flash存儲芯片

LCD顯示屏是通過字模來顯示中文字體的,需要添加中文字庫來實現漢字及中文標點符號的顯示。設計中用到的是GBK漢字庫,其中每個漢字都采用雙字節(2 Bytes)的存儲方式,而GBK漢字庫中共收錄了21 003個漢字,如果將漢字庫存儲到內部Flash(512 k字節)顯然是不可行的,需要8 MB的外部Flash來存儲字庫[8]。

2.6 MicroSD卡

SD卡是一種大容量的數據存儲介質,不僅存儲容量大,它的讀寫速率高、體積小,很適合用于本系統中存儲音頻及圖形化界面的圖標。

SD卡支持兩種總線操作模式:分別是SPI模式與SDIO模式。SPI模式需要4根數據線,一個SPI接口可以掛載多個器件,但不足之處是犧牲了速度。出于避免SD卡的讀寫速度成為系統運行速度的瓶頸,保證音樂播放的流暢度的考慮,所以設計中使用了讀寫速度較快的SDIO模式。

2.7 觸摸顯示屏

本設計中使用了一塊分辨率為320×240的3.2寸液晶顯示觸摸屏,作為播放器的顯示及控制部分。觸摸顯示屏可分為顯示屏與觸摸屏兩部分介紹:

(1)顯示屏其控制芯片是ILI9328,其BL_EN引腳是背光引腳,若該引腳上是高電平,則點亮顯示屏,反之顯示屏熄滅。將該引腳連接到STM32上具有PWM輸出功能的GPIO口,將產生一定頻率的脈沖輸出到該引腳,再通過控制脈沖的占空比,便可控制屏幕的亮度,這種控制屏幕亮度的方法被稱為PWM調光。

(2)觸摸部分是電阻式觸摸屏,觸摸控制芯片為XPT2046,其內部集成了逐步逼近型AD轉換器,當觸摸屏被按下,觸點的X、Y方向上會產生電壓變化,XPT2046對電壓進行兩次AD轉換之后,再進一步處理便可以得到觸點的X、Y坐標,根據得出的坐標值可實現觸摸控制[9]。

3 軟件設計

3.1 軟件設計思路

設計中包含了多個按鈕以及多個界面,在圖形化界面的設計時盡量考慮了人機交互的體驗感,盡量使界面美觀、簡潔,讓操作變得簡單,容易上手。

系統在運行時有兩個主要任務:一是檢測觸摸的坐標,根據坐標作出響應;二是讀取SD中的音頻文件數據,并發送到VS1053B進行硬件解碼并輸出音樂。其余功能只能在兩個主要任務運行的空余時間去處理,若其余功能運行過于耗時,則會影響系統的流暢性,會造成音樂卡頓,觸摸不及時,所以在編寫代碼時,盡可能避免使用延時。

3.2 FatFs文件系統的移植

首先下載FatFs的源碼,其源代碼目錄下有ffconf.h、ff.h、ff.c、diskio.h、diskio.c、interger.h,移植過程可分為以下兩步。

(1)FatFs文件系統的關鍵配置文件是ffconf.h,在使用FatFs提供的接口之前,可根據需求對該文件其中的宏定義進行修改。其部分宏定義的說明如表1所示。

表1 ffconf.h中的重要宏定義及其說明

(2)重新編寫diskio.c中的6個底層驅動函數:初始化磁盤disk_initialize、讀取扇區disk_read、寫入扇區disk_write、磁盤控制disk_ioctl、獲取磁盤狀態disk_status、獲取當前時間get_fattime[10]。

3.3 顯示及觸摸功能

本設計的顯示屏的控制芯片是ILI9328,在顯示屏的底層驅動中,主要用到3個指令來實現在LCD屏幕上繪制圖形的,指令及描述如表2示。表中的功能表述中的行列地址實際上對應的是屏幕的像素點的x與y坐標。其控制的流程如圖2所示。

表2 ILI9328控制指令及說明

圖2 顯示屏控制流程

觸摸屏的控制有兩個重要指令說明如表3所示。當觸摸屏被按下時,T_INT引腳輸出低電平,此時向觸摸屏發送指令碼,等待XPT2046芯片內部進行AD轉換后,可以從T_MISO引腳上讀取16位的坐標數據,一個完整的坐標需要發送兩次指令碼,分別獲得X與Y軸的坐標值。

表3 觸摸屏控制指令

3.4 音樂播放功能

音頻數據來源于使用FatFs文件系統中接口函數f_read讀出的數據,每次主控芯片從SD卡中讀取4 096字節的音頻數據緩存到主控上的內存中,每當DREQ為高電平就往VS1053中發送32字節的數據,直到讀取到音頻文件的末尾[11]。其主要工作流程如圖3所示。

圖3 播放音頻流程

3.5 屏幕調光功能

在本設計使用PWM調光對屏幕亮度進行控制。PWM有3個重要的參數分別是高度、寬度及周期,其關系如圖4所示。

圖4 PWM的3個參數

寬度占周期的百分比稱為占空比。通過控制占空比來控制屏幕的亮度,屏幕亮度大小與占空比正相關[12]。PWM的脈沖是由定時器產生的,這里列出脈沖周期及占空比與定時器參數的關系如下。

(1)周期=定時器重載值∕定時器時鐘頻率。

(2)占空比=比較值∕定時器重載值。

定時器重載值、定時器時鐘頻率這兩個參數在定時器初始化的時候就設置好固定值,只需要改變比較值,就可以改變占空比,從而實現屏幕調光功能。

3.6 藍牙控制功能

串口藍牙模塊是通過串口與主控通信的,為STM32編寫串口中斷程序,就可以從藍牙模塊獲取數據。設定一套字符串指令,通過手機App發送到藍牙模塊,STM32接收到之后進行字符串比對,然后作出指令相對應的動作,實現藍牙控制功能。

3.7 定時關閉功能

該功能的實現用到了硬件定時器以及定時中斷,設定一個計時值,每次中斷觸發計時值減1,當計時值為0時便使音樂停止播放。其工作流程如圖5所示。

圖5 定時關閉播放功能流程

3.8 溫度檢測功能

DS18B20單次溫度采集的流程如圖6所示。DS18B20完成一次溫度轉換至多需要750 ms,若在啟動溫度轉換的750 ms內再次啟動轉換,很有可能讀取不到正確的結果。在本設計中,利用定時器每隔3 s進行一次溫度采集,既避免了采集間隔過低,也能保證溫度檢測的實時性。

圖6 DS18B20溫度轉換流程

4 結果

系統上電后進入主界面,如圖7所示,分為3個部分。

圖7 主功能界面

(1)信息顯示欄。位于主界面的頂部,從左到右分別顯示了當前的時間、日期以及環境的溫度值。點擊時間或者日期的字體會切換至設置界面。亮度調節如圖8所示。

圖8 屏幕亮度調節功能測試

(2)音樂列表。界面中間部分把SD卡中歌曲的名字以列表的形式顯示出來,一頁顯示8首歌曲,支持翻頁瀏覽功能。可直接點擊歌曲名切換歌曲。

(3)播放控制欄。位于主界面的底部,該部分顯示了當前歌曲的播放音量、播放進度,點擊音量條或者進度條可調整歌曲的音量以及播放進度,還包含了5個控制按鈕。

時間設置界面如圖9所示,主要功能是設置時分秒,通過點擊主界面頂部顯示的時間進入,通過界面上的“+”和“-”便可以調整時間,按下“確認”按鈕使設置生效。

圖9 時間設置功能測試

功能與時間設置界面相似,可設置年、月、日,如圖10所示。定時播放關閉功能界面如圖11所示。

圖10 日期設置界面測試

圖11 播放定時關閉功能測試

藍牙連接建立成功之后,出現如圖12所示右上角的藍牙圖標便可以通過手機App控制。

圖12 藍牙連接測試

5 結束語

本設計采用SMT32F103ZET6作為主控芯,在此硬件平臺KDE基礎上,結合了音頻編解碼模塊、溫度傳感器、藍牙模塊以及SD卡,以顯示觸摸屏作為人機交互基礎,進行了圖形化界面及應用功能的開發;移植了FatFs文件系統用以讀寫SD卡,成功設計出了MP3播放器。此播放器具有溫度檢測、屏幕調光、藍牙控制、電子時鐘、定時播放等功能。經實驗測試,該播放器不僅觸摸響應迅速,能流暢地播放音樂,并能長時間穩定運行,具有一定的應用價值。

猜你喜歡
界面功能設計
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關于非首都功能疏解的幾點思考
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
人機交互界面發展趨勢研究
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 久久国产拍爱| A级毛片无码久久精品免费| 丰满人妻中出白浆| 日本少妇又色又爽又高潮| 97成人在线视频| 久久精品中文字幕免费| 日本高清在线看免费观看| 老司机aⅴ在线精品导航| 国产精品露脸视频| 成人午夜福利视频| 97se亚洲综合在线天天| 亚洲自拍另类| 在线a网站| 国产福利影院在线观看| 免费观看欧美性一级| 97久久免费视频| 五月天综合网亚洲综合天堂网| 国产成人做受免费视频| 欧美日韩91| 国产小视频a在线观看| 99中文字幕亚洲一区二区| 高清色本在线www| 四虎永久免费网站| 亚洲第一成年免费网站| 激情综合网激情综合| 久久一色本道亚洲| 亚洲午夜国产精品无卡| 色综合热无码热国产| 成·人免费午夜无码视频在线观看| 青青青国产精品国产精品美女| 亚洲综合片| 99热这里只有精品2| av免费在线观看美女叉开腿| 欧美日本一区二区三区免费| 国产在线欧美| 美女被操91视频| 国产精品香蕉在线观看不卡| 日韩精品高清自在线| 97久久精品人人| 免费aa毛片| 亚洲成av人无码综合在线观看| Jizz国产色系免费| 久久久受www免费人成| 亚洲精品人成网线在线| 国产区免费| 国产精品思思热在线| 久久性视频| 国产精品白浆在线播放| 无码粉嫩虎白一线天在线观看| 成人va亚洲va欧美天堂| 亚洲国产日韩在线成人蜜芽| 一本无码在线观看| 亚洲天堂视频在线观看免费| 亚洲成a人片| 国产成人精品第一区二区| 国产农村妇女精品一二区| 成人午夜亚洲影视在线观看| 久久国产精品影院| AV在线天堂进入| 夜夜拍夜夜爽| 亚洲美女一级毛片| 日韩色图在线观看| 国产大全韩国亚洲一区二区三区| 久久国产成人精品国产成人亚洲| 婷婷午夜影院| 亚洲国产精品一区二区高清无码久久| 免费无码又爽又黄又刺激网站| 2021国产精品自产拍在线| 黄色网页在线观看| 日本精品中文字幕在线不卡| 亚瑟天堂久久一区二区影院| 国产精品久久国产精麻豆99网站| 无遮挡一级毛片呦女视频| 欧美综合区自拍亚洲综合绿色 | 亚洲精品视频网| 国产日本欧美亚洲精品视| 久久熟女AV| 国产女人爽到高潮的免费视频| 国产乱人乱偷精品视频a人人澡| 日本一区二区三区精品视频| 成人在线观看一区| 亚洲精品男人天堂|