⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vs1003.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
000014  6020              STR      r0,[r4,#0]
;;;277    	SPIPutChar(VS_READ_COMMAND); 	//发送读寄存器命令
000016  2003              MOVS     r0,#3
000018  f7fffffe          BL       SPIPutChar
;;;278    	SPIPutChar(addressbyte);	 	//发送寄存器的地址
00001c  4618              MOV      r0,r3
00001e  f7fffffe          BL       SPIPutChar
;;;279    	resultvalue = SPIGetChar() << 8;//读取高8位数据
000022  f7fffffe          BL       SPIGetChar
000026  0205              LSLS     r5,r0,#8
;;;280    	resultvalue |= SPIGetChar();  	//读取低8位数据
000028  f7fffffe          BL       SPIGetChar
;;;281    	Mp3DeselectControl();              
00002c  6821              LDR      r1,[r4,#0]
00002e  4328              ORRS     r0,r0,r5              ;280
000030  f0410102          ORR      r1,r1,#2
000034  6021              STR      r1,[r4,#0]
;;;282    	return resultvalue;           	//返回16位寄存器的值
;;;283    
;;;284    }
000036  bd70              POP      {r4-r6,pc}
;;;285    
                          ENDP

                  |L8.56|
000038  4001080c          DCD      0x4001080c

                          AREA ||i.VsRamTest||, CODE, READONLY, ALIGN=2

                  VsRamTest PROC
;;;214    void VsRamTest(void)
;;;215    {
000000  b510              PUSH     {r4,lr}
000002  4c28              LDR      r4,|L9.164|
;;;216    	u16 regvalue ;
;;;217    
;;;218    	regvalue = 0;
;;;219    	Mp3PutInReset();  	
000004  6820              LDR      r0,[r4,#0]
000006  f0200001          BIC      r0,r0,#1
00000a  6020              STR      r0,[r4,#0]
;;;220    	Delay(100);	      
00000c  2064              MOVS     r0,#0x64
00000e  f7fffffe          BL       Delay
;;;221    	SPIPutChar(0xff);										//发送一个字节的无效数据,启动SPI传输
000012  20ff              MOVS     r0,#0xff
000014  f7fffffe          BL       SPIPutChar
;;;222    	Mp3DeselectControl();  
000018  6820              LDR      r0,[r4,#0]
00001a  f0400002          ORR      r0,r0,#2
00001e  6020              STR      r0,[r4,#0]
;;;223    	Mp3DeselectData();     
000020  6820              LDR      r0,[r4,#0]
000022  f0400004          ORR      r0,r0,#4
000026  6020              STR      r0,[r4,#0]
;;;224    	Mp3ReleaseFromReset(); 
000028  6820              LDR      r0,[r4,#0]
00002a  f0400001          ORR      r0,r0,#1
00002e  6020              STR      r0,[r4,#0]
000030  f6a4040c          SUB      r4,r4,#0x80c
;;;225    	Delay(100);	           
000034  2064              MOVS     r0,#0x64
000036  f7fffffe          BL       Delay
;;;226     	Mp3WriteRegister(SPI_MODE,0x08,0x20);					// 进入vs1003的测试模式
00003a  2220              MOVS     r2,#0x20
00003c  2108              MOVS     r1,#8
00003e  2000              MOVS     r0,#0
000040  f7fffffe          BL       Mp3WriteRegister
;;;227    	while (GPIO_ReadInputData(GPIOA) & MP3_DREQ == 0);     	// 等待DREQ为高
000044  4817              LDR      r0,|L9.164|
000046  380c              SUBS     r0,r0,#0xc
000048  f7fffffe          BL       GPIO_ReadInputData
00004c  f604040c          ADD      r4,r4,#0x80c
;;;228     	Mp3SelectData();       									// xDCS = 1,选择vs1003的数据接口
000050  6820              LDR      r0,[r4,#0]
000052  f0200004          BIC      r0,r0,#4
000056  6020              STR      r0,[r4,#0]
;;;229     	
;;;230        SPIPutChar(0x4d);      
000058  204d              MOVS     r0,#0x4d
00005a  f7fffffe          BL       SPIPutChar
;;;231    	SPIPutChar(0xea);      
00005e  20ea              MOVS     r0,#0xea
000060  f7fffffe          BL       SPIPutChar
;;;232    	SPIPutChar(0x6d);      
000064  206d              MOVS     r0,#0x6d
000066  f7fffffe          BL       SPIPutChar
;;;233    	SPIPutChar(0x54);      
00006a  2054              MOVS     r0,#0x54
00006c  f7fffffe          BL       SPIPutChar
;;;234    	SPIPutChar(0x00);      
000070  2000              MOVS     r0,#0
000072  f7fffffe          BL       SPIPutChar
;;;235    	SPIPutChar(0x00);
000076  2000              MOVS     r0,#0
000078  f7fffffe          BL       SPIPutChar
;;;236    	SPIPutChar(0x00);
00007c  2000              MOVS     r0,#0
00007e  f7fffffe          BL       SPIPutChar
;;;237    	SPIPutChar(0x00);
000082  2000              MOVS     r0,#0
000084  f7fffffe          BL       SPIPutChar
;;;238    	Delay(500);	
000088  f44f70fa          MOV      r0,#0x1f4
00008c  f7fffffe          BL       Delay
;;;239    	Mp3DeselectData();					
000090  6820              LDR      r0,[r4,#0]
000092  f0400004          ORR      r0,r0,#4
000096  6020              STR      r0,[r4,#0]
;;;240      
;;;241    	regvalue = Mp3ReadRegister(SPI_HDAT0);      				// 如果得到的值为0x807F,则表明完好。
000098  e8bd4010          POP      {r4,lr}
00009c  2008              MOVS     r0,#8
00009e  f7ffbffe          B.W      Mp3ReadRegister
;;;242    
;;;243    }
;;;244    
                          ENDP

0000a2  0000              DCW      0x0000
                  |L9.164|
0000a4  4001080c          DCD      0x4001080c

                          AREA ||i.VS1003_Config||, CODE, READONLY, ALIGN=2

                  VS1003_Config PROC
;;;293    void VS1003_Config(void)
;;;294    {
000000  b570              PUSH     {r4-r6,lr}
;;;295      GPIO_InitTypeDef  GPIO_InitStructure;
;;;296      SPI_InitTypeDef   SPI_InitStructure;
;;;297    
;;;298      RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
000002  2101              MOVS     r1,#1
000004  b086              SUB      sp,sp,#0x18           ;294
000006  0388              LSLS     r0,r1,#14
000008  f7fffffe          BL       RCC_APB1PeriphClockCmd
;;;299      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
00000c  2101              MOVS     r1,#1
00000e  2008              MOVS     r0,#8
000010  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;300    
;;;301      /* PA.1->XCS 
;;;302         PA.0->XRESET
;;;303         PA.2->XDCS,all low lever avalible 
;;;304      */
;;;305      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
000014  2507              MOVS     r5,#7
000016  f8ad5014          STRH     r5,[sp,#0x14]
;;;306      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
00001a  2403              MOVS     r4,#3
00001c  f88d4016          STRB     r4,[sp,#0x16]
;;;307      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
000020  2010              MOVS     r0,#0x10
;;;308      GPIO_Init(GPIOA, &GPIO_InitStructure);
000022  4e23              LDR      r6,|L10.176|
000024  f88d0017          STRB     r0,[sp,#0x17]         ;307
000028  a905              ADD      r1,sp,#0x14
00002a  4630              MOV      r0,r6
00002c  f7fffffe          BL       GPIO_Init
;;;309    
;;;310      /* PB.3->DREQ */
;;;311      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
000030  2008              MOVS     r0,#8
000032  f8ad0014          STRH     r0,[sp,#0x14]
;;;312      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
000036  f88d4016          STRB     r4,[sp,#0x16]
;;;313      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
00003a  2048              MOVS     r0,#0x48
00003c  f88d0017          STRB     r0,[sp,#0x17]
;;;314      GPIO_Init(GPIOA, &GPIO_InitStructure);
000040  a905              ADD      r1,sp,#0x14
000042  4630              MOV      r0,r6
000044  f7fffffe          BL       GPIO_Init
;;;315    
;;;316      /* Diable all pins */
;;;317      GPIOA->ODR = 0xFF;  
000048  4919              LDR      r1,|L10.176|
00004a  20ff              MOVS     r0,#0xff
00004c  310c              ADDS     r1,r1,#0xc
00004e  6008              STR      r0,[r1,#0]
;;;318    
;;;319      /* Configure SPI2 pins: SCK, MISO and MOSI ---------------------------------*/
;;;320      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
000050  0368              LSLS     r0,r5,#13
000052  f8ad0014          STRH     r0,[sp,#0x14]
;;;321      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
000056  f88d4016          STRB     r4,[sp,#0x16]
;;;322      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
00005a  2018              MOVS     r0,#0x18
00005c  f88d0017          STRB     r0,[sp,#0x17]
;;;323      GPIO_Init(GPIOB, &GPIO_InitStructure);
000060  a905              ADD      r1,sp,#0x14
000062  4814              LDR      r0,|L10.180|
000064  f7fffffe          BL       GPIO_Init
;;;324    
;;;325      /* SPI2 Config --------------------------------------------------*/ 
;;;326      SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
000068  2000              MOVS     r0,#0
00006a  f8ad0000          STRH     r0,[sp,#0]
;;;327      SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
00006e  f44f7182          MOV      r1,#0x104
000072  f8ad1002          STRH     r1,[sp,#2]
;;;328      SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
000076  f8ad0004          STRH     r0,[sp,#4]
;;;329      SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
00007a  2102              MOVS     r1,#2
00007c  f8ad1006          STRH     r1,[sp,#6]
;;;330      SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
000080  2101              MOVS     r1,#1
000082  f8ad1008          STRH     r1,[sp,#8]
;;;331      SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
000086  0249              LSLS     r1,r1,#9
000088  f8ad100a          STRH     r1,[sp,#0xa]
;;;332      SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;
00008c  2120              MOVS     r1,#0x20
00008e  f8ad100c          STRH     r1,[sp,#0xc]
;;;333      SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
;;;334      SPI_InitStructure.SPI_CRCPolynomial = 7;
;;;335      SPI_Init(SPI2, &SPI_InitStructure);
000092  4c09              LDR      r4,|L10.184|
000094  f8ad000e          STRH     r0,[sp,#0xe]          ;333
000098  f8ad5010          STRH     r5,[sp,#0x10]         ;334
00009c  4669              MOV      r1,sp
00009e  4620              MOV      r0,r4
0000a0  f7fffffe          BL       SPI_Init
;;;336    
;;;337      /* Enable SPI2 */			 
;;;338      SPI_Cmd(SPI2, ENABLE);
0000a4  2101              MOVS     r1,#1
0000a6  4620              MOV      r0,r4
0000a8  f7fffffe          BL       SPI_Cmd
;;;339    
;;;340    }
0000ac  b006              ADD      sp,sp,#0x18
0000ae  bd70              POP      {r4-r6,pc}
;;;341    
                          ENDP

                  |L10.176|
0000b0  40010800          DCD      0x40010800
                  |L10.180|
0000b4  40010c00          DCD      0x40010c00
                  |L10.184|
0000b8  40003800          DCD      0x40003800

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -