利用stm32f103zet6驅(qū)動PAJ7620和VS1053音頻解碼實現(xiàn)手勢識別音響;通過不同的手勢來實現(xiàn)音量的加減和歌曲切換。
單片機源程序如下:
- //VS1003/1053 MP3模塊與普中STM32開發(fā)板接線方式:
- //5V---5V
- //GND--GND
- //XRST--PG8
- //MISO--PA6
- //MOSI--PA7
- //SCLK--PA5
- //DREQ--PG7
- //XCS--PE6
- //XDCS--PG6
- //實驗前請插入SD卡,在SD卡根目錄下放入我們光盤內(nèi)的SD卡文件夾內(nèi)文件
- #include "system.h"
- #include "SysTick.h"
- #include "led.h"
- #include "usart.h"
- #include "tftlcd.h"
- #include "key.h"
- #include "malloc.h"
- #include "sd.h"
- #include "flash.h"
- #include "ff.h"
- #include "fatfs_app.h"
- #include "key.h"
- #include "font_show.h"
- #include "mp3player.h"
- #include "paj7620u2.h"
- #include "ds18b20.h"
- void GUI_DisplayInit()
- {
- FRONT_COLOR=BLACK;//設(shè)置字體為紅色
- LCD_ShowFont16Char(0, 0, "");
- LCD_ShowFont12Char(80, 21, "電子創(chuàng)新大賽");
- LCD_ShowFont12Char(76, 63, "手勢識別音響");
- LCD_ShowFont12Char(0, 84, "音量設(shè)置為:200");
- LCD_ShowFont12Char(0, 105, "正在播放的歌曲為:");
- LCD_ShowFont12Char(0, 167, "向上滑動:音量+");
- LCD_ShowFont12Char(0, 188, "向下滑動:音量-");
- LCD_ShowFont12Char(0, 209, "向左、右滑動:切歌");
- }
- FileNameTypeDef filename[30];
- int main(void)
- {
-
- FATFS fs;
- uint32_t sdCapacity, free;
- uint8_t dat[9] = {"0:/MUSIC"}, i=0,j=0, k=0; //要顯示的圖片的文件地址
- uint8_t misicFile[30];
-
- SysTick_Init(72); //延時函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級分組 分2組
- USART1_Init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- TFTLCD_Init(); //初始化LCD
- paj7620u2_init();
- KEY_Init();
- EN25QXX_Init(); //初始化EN25Q128
- MP3_Init();
- my_mem_init(SRAMIN); //初始化內(nèi)部內(nèi)存池
- DS18B20_Init();
-
- while(1)
- {
- FRONT_COLOR=BLACK;//設(shè)置字體為紅色
- while(SD_Init()!=0)
- {
- LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"SD Card Error!");
- }
- FATFS_Init(); //為fatfs相關(guān)變量申請內(nèi)存
- f_mount(&fs,"0:",1); //掛載SD卡
-
- while(FATFS_GetFree("0:", &sdCapacity, &free) != 0)
- {
- LCD_ShowFont12Char(0, 21, "FATfs error!");
- }
-
- /* 設(shè)置音量 */
- MP3_Volume = 200;
- MP3_AudioSetting(MP3_Volume);
- /* 初始化顯示 */
- GUI_DisplayInit();
-
- /* 掃描文件地址里面所有的文件 */
- FATFS_ScanFiles(dat, filename);
- printf("%s%s\r\n",filename[0].name,filename[0].type);
- printf("%s%s\r\n",filename[1].name,filename[1].type);
-
- while(1)
- {
- /* 判斷是否是PM3圖片文件 */
- if((filename[i].type[1] == 'm') && (filename[i].type[2] == 'p') &&
- (filename[i].type[3] == '3'))
- {
- /* 處理文件路徑,先添加文件路徑 */
- k = 0;
- while(*(dat + k) != '\0')
- {
- *(misicFile + k) = *(dat + k);
- k++;
- }
-
- /* 路徑之后加上一斜杠 */
- *(misicFile + k) = '/';
- k++;
- /* 添加文件名字名字 */
- j = 0;
- while(filename[i].name[j] != '\0')
- {
- *(misicFile + k) = filename[i].name[j];
- k++;
- j++;
- }
- /* 添加文件后綴 */
- j = 0;
- while(filename[i].type[j] != '\0')
- {
- *(misicFile + k) = filename[i].type[j];
- k++;
- j++;
- }
- /* 文件最后添加一個結(jié)束符號 */
- *(misicFile + k) = '\0';
-
- /* 顯示播放的歌曲并播放歌曲 */
- LCD_Fill(0, 126, tftlcd_data.height, 165, WHITE); //清除顯示位置
- LCD_ShowFont12Char(0, 126, misicFile);
-
- MP3_PlaySong(misicFile);
- }
-
- i++;
- if(i > 30)
- {
- i = 0;
- }
-
-
- }
- }
- }
-
- void HardFault_Handler(void)
- {
- while(1)
- {
- led2=!led2;
- delay_ms(100);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
PAJ7620U2 音響.7z
(695.79 KB, 下載次數(shù): 97)
2019-5-14 18:04 上傳
點擊文件名下載附件
|