我的程序如下,现象是无法向iis的iisfif寄存器写入wav数据,不知道为什么?<br />#include "44b.h"<br /><br />#define uint16 unsigned short int <br />#define uint32 unsigned long int<br />#define IIS_fifoready ((rIISCON&0x80)==0x0)<br /><br />//wav_play函数<br />void wav_play(uint32 wavaddress)<br />{<br />//定义局部变量<br />uint32 i;<br />uint16 *WavComment;<br />WavComment=(uint16 *)wavaddress;<br />WavComment+=0x2800;<br />/*初始化IIS*/<br />rCLKCON=0x7ff8;/*允许IIS时钟和GPIO时钟*/<br />/*rPCONC=0x000000ff;//设置GPIO管脚为IIS功能脚<br />rPUPC=0x???;//禁止上拉的功能*/<br />rPLLCON=(0x69<<12)|(0x17<<4)|0;//设置MCLK=45.1584MHZ*/<br />rIISCON=0x02;//dma disable;iisclk generate;prescaler enable<br />rIISMOD=0x89;//master mode;transmit mode;low for left channel;iis compatible format;8 bits;256fs;32fs<br />rIISPSR=0x33;//division factor=3<br />rIISFCON=0x200;//normal access mode;fifo enable;<br />//开始IIS操作<br />rIISCON|=0x1;<br />while(i<0xffffff)<br /> {<br /> if(IIS_fifoready)<br /> {<br /> for(i=0;i<8;i++)<br /> {*IISFIF = (*WavComment);<br /> WavComment++;}<br /> }<br /> } <br />}<br /><br />void IIS_play(void)<br />{<br />//定义wav特性的数据结构<br />/*struct {<br />uint32 wavsize;<br />uint16 wavChannels;<br />uint32 wavSamplesPerSec;<br />uint32 wavAvgBytesPerSec;<br />uint16 wavBitsPerSample;<br />}wavspec;<br />*/<br />uint32 address=0x0c100000;<br />UART_Init();<br />wav_play(address);/*0x0c100000为音乐文件的首地址*/<br />}<br /><br />/**************LED实验***************/<br />void Delay(int a)<br />{<br /> int b;<br /> for(b=0;b<=a;b++)<br /> ;<br />}<br /><br />void Led_Display(void)<br />{<br /> rPDATC = 0x22;<br /> Delay(1000000);<br /> rPDATC = 0x40;<br /> Delay(1000000);<br /> rPDATC = 0x44;<br /> Delay(1000000); <br />}<br /><br />/*进行GPIO口的初始化*/<br />void Gpio_Init(void)<br />{<br /> rPCONA=0x1FF;<br />/* rPDATA= */<br /> rPCONB=0x7FF;<br />/* rPDATB= */<br /> rPCONC=0xFFFA0054;<br /> rPUPC=0xFCFD;<br />/* rPDATC= */<br /> rPCOND=0xAA00;<br /> rPUPD=0xFF;<br />/* rPDATD= */ <br /> rPCONE=0x20428;<br /> rPUPE=0xFF;<br />/* rPDATE= */ <br /> rPCONF=0x249000;<br /> rPUPF=0x1FF;<br />/* rPDATF= */ <br /> rPCONG=0x0000;<br /> rPUPG=0xFF;<br />/* rPDATG= */ <br /> rSPUCR=0x7;<br />/* rEXTINT=<br /> rEXTINTPND= */<br />}<br /><br />/****************************************************************************<br />【功能说明】系统主函数<br />****************************************************************************/<br />void Main(void)<br />{<br /> while(1)<br /> { Gpio_Init();<br /> Led_Display();<br /> IIS_play();<br /> }<br />}<br /><br /> |
|