亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vs1003.c

?? vs1003的驅(qū)動(dòng)
?? C
字號(hào):
//文件名:vs1003.c
//功能:vs1003 的底層驅(qū)動(dòng)程序,主控芯片為LPC213x;
//     其他的微處理器(帶SPI接口的)只需稍加修改即可適用;
//     對(duì)于不帶硬SPI接口的微處理器可以用IO進(jìn)行SPI的時(shí)序模擬
//     更多代碼敬請(qǐng)?jiān)L問www.icdev.com.cn
 

#include "vs1003.h"
#include "timer.h"

extern long volatile timeval; //用于延時(shí)的全局變量

/**********************************************************/
/*  函數(shù)名稱 :   MSPI_Init                                */
/*  函數(shù)功能 : 初始化SPI接口,設(shè)置為主機(jī)。               */
/*  參數(shù)     :  無                                        */
/*  返回值   :  無                                        */
/*--------------------------------------------------------*/
void  MSPI_Init(void)
{  
	PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500;	//選擇 SPI 
        S0SPCCR = 0x08;		                        // SPI 時(shí)鐘設(shè)置
 	S0SPCR  = (0 << 3) |				// CPHA = 0, 
 		  (0 << 4) |				// CPOL = 0, 
 		  (1 << 5) |				// MSTR = 1, 
 		  (0 << 6) |				// LSBF = 0, 
 	          (0 << 7);				// SPIE = 0, 
}

/**********************************************************/
/*  函數(shù)名稱 :  InitPortVS1003                            */
/*  函數(shù)功能 : MCU與vs1003接口的初始化                   */
/*  參數(shù)     :  無                                        */
/*  返回值   :  無                                        */
/*--------------------------------------------------------*/
void  InitPortVS1003(void)
{
	MSPI_Init();//SPI口的初始化
	IO0DIR &= 0xbfffffff;   //其他接口線的設(shè)置,其中dreq 為輸入口
	IO0DIR |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS均為輸出口
	IO0SET |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS默認(rèn)輸出高電平	
}


/**********************************************************/
/*  函數(shù)名稱 :  SPIPutChar                                */
/*  函數(shù)功能 : 通過SPI發(fā)送一個(gè)字節(jié)的數(shù)據(jù)                 */
/*  參數(shù)     :  待發(fā)送的字節(jié)數(shù)據(jù)                          */
/*  返回值   :  無                                        */
/*--------------------------------------------------------*/
void  SPIPutChar(unsigned char c)
{      
	S0SPDR = c;
	while((S0SPSR & 0x80) == 0);	 //等待SPI將數(shù)據(jù)發(fā)送完畢
}


/**********************************************************/
/*  函數(shù)名稱 :  Mp3SoftReset                              */
/*  函數(shù)功能 : vs1003軟件復(fù)位                            */
/*  參數(shù)     :  無                                        */
/*  返回值   :  無                                        */
/*--------------------------------------------------------*/
void Mp3SoftReset(void)
{
	Mp3WriteRegister (SPI_MODE, 0x08, 0x04); //軟件復(fù)位

	wait(1); //延時(shí)1ms
	while (IO0PIN & MP3_DREQ == 0); //等待軟件復(fù)位結(jié)束
	Mp3WriteRegister(SPI_CLOCKF, 0x98, 0x00);//設(shè)置vs1003的時(shí)鐘,3倍頻
	Mp3WriteRegister (SPI_AUDATA, 0xBB, 0x81); //采樣率48k,立體聲
	Mp3WriteRegister(SPI_BASS, 0x00, 0x55);//設(shè)置重音
	Mp3SetVolume(20,20);//設(shè)置音量
    	wait(1); //延時(shí)1ms
    	
    	//向vs1003發(fā)送4個(gè)字節(jié)無效數(shù)據(jù),用以啟動(dòng)SPI發(fā)送
        Mp3SelectData();
	SPIPutChar(0);
	SPIPutChar(0);
	SPIPutChar(0);
	SPIPutChar(0);
	Mp3DeselectData();

}
/**********************************************************/
/*  函數(shù)名稱 :  Mp3Reset                                  */
/*  函數(shù)功能 : vs1003硬件復(fù)位                            */
/*  參數(shù)     :  無                                        */
/*  返回值   :  無                                        */
/*--------------------------------------------------------*/
void Mp3Reset(void)
{	
	Mp3PutInReset();//xReset = 0   復(fù)位vs1003      
	wait(100);//延時(shí)100ms
	SPIPutCharWithoutWaiting(0xff);//發(fā)送一個(gè)字節(jié)的無效數(shù)據(jù),啟動(dòng)SPI傳輸
	Mp3DeselectControl();   //xCS = 1
	Mp3DeselectData();     //xDCS = 1
	Mp3ReleaseFromReset(); //xRESET = 1
	wait(100);            //延時(shí)100ms
	while (IO0PIN & MP3_DREQ == 0);//等待DREQ為高
        wait(100);            //延時(shí)100ms
     	Mp3SetVolume(10,10);  
        Mp3SoftReset();//vs1003軟復(fù)位
}


/***********************************************************/
/*  函數(shù)名稱 :  VsSineTest                                 */
/*  函數(shù)功能 : vs1003正弦測試,將該函數(shù)放在while循環(huán)中,  */
/*              如果能持續(xù)聽到一高一低的聲音,證明測試通過 */                            
/*  參數(shù)     :  無                                         */
/*  返回值   :  無                                         */
/*---------------------------------------------------------*/
void VsSineTest(void)
{
	Mp3PutInReset();  //xReset = 0   復(fù)位vs1003
	wait(100);        //延時(shí)100ms        
	SPIPutChar(0xff);//發(fā)送一個(gè)字節(jié)的無效數(shù)據(jù),啟動(dòng)SPI傳輸
	Mp3DeselectControl();  
	Mp3DeselectData();     
	Mp3ReleaseFromReset(); 
	wait(100);	               
 	Mp3WriteRegister(SPI_MODE,0x08,0x20);//進(jìn)入vs1003的測試模式
	while (IO0PIN & MP3_DREQ == 0);     //等待DREQ為高
 	Mp3SelectData();       //xDCS = 1,選擇vs1003的數(shù)據(jù)接口
 	
 	//向vs1003發(fā)送正弦測試命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
 	//其中n = 0x24, 設(shè)定vs1003所產(chǎn)生的正弦波的頻率值,具體計(jì)算方法見vs1003的datasheet
        SPIPutChar(0x53);      
	SPIPutChar(0xef);      
	SPIPutChar(0x6e);      
	SPIPutChar(0x24);      
	SPIPutChar(0x00);      
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();//程序執(zhí)行到這里后應(yīng)該能從耳機(jī)聽到一個(gè)單一頻率的聲音
  
        //退出正弦測試
	Mp3SelectData();
	SPIPutChar(0x45);
	SPIPutChar(0x78);
	SPIPutChar(0x69);
	SPIPutChar(0x74);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();

        //再次進(jìn)入正弦測試并設(shè)置n值為0x44,即將正弦波的頻率設(shè)置為另外的值
    	Mp3SelectData();       
	SPIPutChar(0x53);      
	SPIPutChar(0xef);      
	SPIPutChar(0x6e);      
	SPIPutChar(0x44);      
	SPIPutChar(0x00);      
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData(); 

	//退出正弦測試
	Mp3SelectData();
	SPIPutChar(0x45);
	SPIPutChar(0x78);
	SPIPutChar(0x69);
	SPIPutChar(0x74);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();
 }

/*************************************************************/
/*  函數(shù)名稱 :  Mp3WriteRegister                             */
/*  函數(shù)功能 : 寫vs1003寄存器                               */
/*  參數(shù)     :  寄存器地址,待寫數(shù)據(jù)的高8位,待寫數(shù)據(jù)的低8位 */
/*  返回值   :  無                                           */
/*-----------------------------------------------------------*/
void Mp3WriteRegister(unsigned char addressbyte, unsigned char highbyte, unsigned char lowbyte)
{
	Mp3DeselectData();
	Mp3SelectControl();//XCS = 0
	SPIPutChar(VS_WRITE_COMMAND); //發(fā)送寫寄存器命令
	SPIPutChar(addressbyte);      //發(fā)送寄存器的地址
	SPIPutChar(highbyte);         //發(fā)送待寫數(shù)據(jù)的高8位
	SPIPutChar(lowbyte);          //發(fā)送待寫數(shù)據(jù)的低8位
	Mp3DeselectControl();
}

/*************************************************************/
/*  函數(shù)名稱 :  Mp3ReadRegister                              */
/*  函數(shù)功能 : 寫vs1003寄存器                               */
/*  參數(shù)     :  寄存器地址				     */
/*  返回值   :  vs1003的16位寄存器的值                       */
/*-----------------------------------------------------------*/
unsigned int Mp3ReadRegister(unsigned char addressbyte)
{
	unsigned int resultvalue = 0;
	Mp3DeselectData();
	Mp3SelectControl();//XCS = 0
	SPIPutChar(VS_READ_COMMAND); //發(fā)送讀寄存器命令
	SPIPutChar((addressbyte));	 //發(fā)送寄存器的地址
	SPIPutChar(0xff); 		//發(fā)送讀時(shí)鐘
	resultvalue = (SPI_RESULT_BYTE) << 8;//讀取高8位數(shù)據(jù)
	SPIPutChar(0xff);		   //發(fā)送讀時(shí)鐘
	resultvalue |= (SPI_RESULT_BYTE);  //讀取低8位數(shù)據(jù)
	Mp3DeselectControl();              
	return resultvalue;                 //返回16位寄存器的值
}




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区五区美女| 五月天亚洲婷婷| 日本亚洲视频在线| 欧美色大人视频| 亚洲日本在线视频观看| 国产伦精品一区二区三区免费| 欧美精品xxxxbbbb| 无码av中文一区二区三区桃花岛| 99国产精品一区| 亚洲欧洲精品天堂一级 | 欧美v国产在线一区二区三区| 一区二区三区四区五区视频在线观看| 国产一区二三区| 国产亚洲午夜高清国产拍精品 | 99久久99久久综合| |精品福利一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 中文字幕欧美三区| 92国产精品观看| 亚洲成人av电影在线| 日韩欧美精品在线| 国产精品亚洲午夜一区二区三区 | 色八戒一区二区三区| 亚洲午夜精品17c| 欧美一区二区三区公司| 国产69精品久久久久毛片| 亚洲三级视频在线观看| 日韩欧美国产一区二区在线播放| 国产一区二区三区日韩| 一区二区不卡在线播放 | 日韩免费观看2025年上映的电影| 九九**精品视频免费播放| 一色屋精品亚洲香蕉网站| 欧美色网一区二区| 国产乱码精品1区2区3区| 亚洲永久免费av| 国产欧美精品区一区二区三区| 91福利在线播放| 韩国精品主播一区二区在线观看 | 欧美无乱码久久久免费午夜一区| 国内精品不卡在线| 亚洲中国最大av网站| 国产精品欧美久久久久无广告| 日韩精品一区二区在线观看| 一本大道av一区二区在线播放| 久久99精品国产.久久久久久| 一区二区三区资源| 亚洲色图欧美激情| 国产女主播视频一区二区| 欧美一区二区精品久久911| 欧美视频在线观看一区| 91女神在线视频| kk眼镜猥琐国模调教系列一区二区| 日韩国产欧美三级| 免费在线视频一区| 免费成人深夜小野草| 日本不卡视频在线| 男男gaygay亚洲| 久草中文综合在线| 国产在线视频一区二区| 美女视频黄 久久| 韩国成人福利片在线播放| 黄色精品一二区| 成人短视频下载| 色中色一区二区| 制服丝袜亚洲精品中文字幕| 日韩女优视频免费观看| 久久伊人中文字幕| 国产精品久久毛片av大全日韩| 一色屋精品亚洲香蕉网站| 一区二区久久久久久| 岛国一区二区三区| 不卡免费追剧大全电视剧网站| 99久久伊人网影院| 欧美美女一区二区| 久久久精品免费免费| 亚洲精品欧美激情| 老司机一区二区| 色国产精品一区在线观看| 日韩欧美在线123| 亚洲裸体在线观看| 久久激情五月激情| 99re热这里只有精品视频| 欧美日韩国产首页在线观看| 精品国产亚洲一区二区三区在线观看| 久久青草国产手机看片福利盒子 | 日韩成人一区二区| 粉嫩13p一区二区三区| 欧美顶级少妇做爰| 国产精品日日摸夜夜摸av| 日韩精品91亚洲二区在线观看 | 成人午夜视频福利| 日韩欧美亚洲国产精品字幕久久久| 国产精品天美传媒沈樵| 国产一区二区久久| 欧美一卡二卡在线观看| 一区二区三区产品免费精品久久75| 蜜桃视频在线观看一区二区| 欧美日韩视频第一区| 一区二区在线免费| 欧美综合一区二区| 一区二区三区中文字幕| 色菇凉天天综合网| 一区二区高清免费观看影视大全| 99精品视频免费在线观看| 中文字幕一区二区三区四区不卡| 国产福利一区二区三区| 久久久亚洲精品石原莉奈| 精品一二三四区| 精品日本一线二线三线不卡| 加勒比av一区二区| 国产欧美一区二区精品仙草咪| 国产精品原创巨作av| 国产精品久线观看视频| 91国偷自产一区二区开放时间 | 午夜精品成人在线| 欧美成人精品高清在线播放| 激情综合网天天干| 亚洲视频狠狠干| 在线不卡免费欧美| 国产成人av电影免费在线观看| 中文一区二区完整视频在线观看 | 国产成人精品免费看| 亚洲欧美日韩中文字幕一区二区三区| 色婷婷国产精品综合在线观看| 日韩和欧美一区二区三区| 精品久久免费看| 欧美三级电影在线看| 国内精品久久久久影院薰衣草| 亚洲欧美色图小说| 精品奇米国产一区二区三区| 在线视频观看一区| 国产精品乡下勾搭老头1| 夜夜夜精品看看| 国产视频一区不卡| 精品视频在线看| 日本高清不卡视频| 东方欧美亚洲色图在线| 蜜臀av在线播放一区二区三区| 亚洲日本乱码在线观看| 国产亚洲成年网址在线观看| 337p亚洲精品色噜噜噜| 91黄视频在线| 在线看不卡av| 色天天综合色天天久久| 成人动漫一区二区| 美女视频黄免费的久久 | 欧美一区二区三区播放老司机| av成人免费在线| jlzzjlzz国产精品久久| 成人在线视频首页| 国产成a人无v码亚洲福利| 粉嫩在线一区二区三区视频| 久久99久久精品| 国产在线精品一区二区夜色 | 视频在线观看一区二区三区| 亚洲成a人v欧美综合天堂| 亚洲成av人**亚洲成av**| 午夜精品久久一牛影视| 日本中文字幕一区二区视频| 久久精品999| 成人午夜激情片| 91日韩在线专区| 欧美精品1区2区3区| 精品国产1区2区3区| 欧美国产日韩a欧美在线观看| 国产精品美女久久福利网站| 亚洲伦理在线精品| 青青草视频一区| 国产69精品久久久久毛片 | 懂色av一区二区三区免费观看| 色综合久久久久网| 欧美一区二区三区电影| 国产精品久久久99| 日韩国产欧美在线视频| 国产不卡视频一区二区三区| 在线这里只有精品| 久久久亚洲国产美女国产盗摄| 自拍偷拍国产亚洲| 日本不卡视频在线观看| 色综合视频一区二区三区高清| 日韩欧美精品在线| 亚洲午夜视频在线| 国产一区二区久久| 欧美日韩国产在线播放网站| 136国产福利精品导航| 蜜臀av性久久久久av蜜臀妖精| 99re热这里只有精品视频| 久久亚洲影视婷婷| 麻豆国产精品视频| 欧美在线观看视频在线| 中文字幕不卡在线| 成人一区二区视频| 久久九九全国免费| 紧缚奴在线一区二区三区| 欧美电视剧免费全集观看| 亚洲国产精品久久久久婷婷884| 色婷婷精品大在线视频| 亚洲欧美日韩国产手机在线| 豆国产96在线|亚洲|