IIS是飞利浦公司定义的一种用于音频传输的数字总线,LPC1768支持该总线, I2S接口为一条3线串行总线,含有1根数据线、1根时钟线和1根字选择信号线。基本的I2S连接具有一个主机(其总是为主机)和一个从机。LPC1700系列Cortex—M3微控制器的I2S提供了彼此独立的发送和接收通道,每个通道都可作为主机或从机.

使用代码如下

void IISInit(void)

{

//打开IIS时钟

LPC_SC->PCONP |= 1<<27;

LPC_SC->PCLKSEL1 &= ~(0X03<<22);    //时钟选择25M

//0.4 IIS RX CLK

LPC_PINCON->PINSEL0 &= ~(0x03u<<8);

LPC_PINCON->PINSEL0 |= (0x01u<<8);

//0.5 IIS RX LR

LPC_PINCON->PINSEL0 &= ~(0x03u<<10);

LPC_PINCON->PINSEL0 |= (0x01u<<10);

//0.6 IIS RX DAT

LPC_PINCON->PINSEL0 &= ~(0x03u<<12);

LPC_PINCON->PINSEL0 |= (0x01u<<12);

//0.7 IIS TX CLK

LPC_PINCON->PINSEL0 &= ~(0x03u<<14);

LPC_PINCON->PINSEL0 |= (0x01u<<14);

//0.8 IIS TX LR

LPC_PINCON->PINSEL0 &= ~(0x03u<<16);

LPC_PINCON->PINSEL0 |= (0x01u<<16);

//0.9 IIS TX DAT

LPC_PINCON->PINSEL0 &= ~(0x03u<<18);

LPC_PINCON->PINSEL0 |= (0x01u<<18);

//mclk  IIS TX MCLK

LPC_PINCON->PINSEL9 &= ~(0x03u<<26);

LPC_PINCON->PINSEL9 |= (0x01u<<26);

//FS 48K DATALENGTH 16 MONO ON MCLK 256FS

LPC_I2S->I2STXRATE = 0;

LPC_I2S->I2STXRATE = (98<<8)| 100;       //X 98 Y 100 MCLK (25000000/2)*0.98 12250000

LPC_I2S->I2SRXRATE = 0;

LPC_I2S->I2SRXRATE =(98<<8)| 100;        //X 98 Y 100 MCLK (25000000/2)*0.98 12250000

LPC_I2S->I2STXBITRATE = 7;           //BIT_RATE=MCLK/(7+1)=1531250  FS = 1531250/16/2 = 47.85

LPC_I2S->I2SRXBITRATE = 7;           //BIT_RATE=MCLK/(7+1)=1531250  FS = 1531250/16/2 = 47.85

LPC_I2S->I2STXMODE |= 1<<3; //禁止TCLK输出

LPC_I2S->I2SRXMODE |= 1<<3; //禁止RCLK输出

//16位数据 立体声 使能fifo 主模式 采样周期32 仅仅发送0

LPC_I2S->I2SDAO = (1<<0)|(0<<2)|(0<<3)|(0<<4)|(0<<5)|(15<<6)|(0<<15);

LPC_I2S->I2SDAI = ((16-1)<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(1<<0);

IIS_Stop();

LPC_I2S->I2SIRQ = (0<<0)|(0<<1)|(32<<8)|(32<<16);  //32位fifo深度 不使能接受中断,发送中断

NVIC_EnableIRQ(I2S_IRQn);

FillBuffer(Buf_L,1000,Buf_R,1000);

}

void IISStart()

{

LPC_I2S->I2SDAO &=  (~(1<<4)); //复位停止访问fifo使能并开始发送

LPC_I2S->I2SDAO &=  (~(1<<3));

LPC_I2S->I2SDAO &=  (~(1<<15));

}

void IISStartTransData(void)

{

IISStart();

LPC_I2S->I2SIRQ |= LPC_I2S->I2SIRQ | (1<<1);

}

void I2S_IRQHandler(void)

{

u32 state=LPC_I2S->I2SSTATE;

if(state&0x1)

{

if( ((state>>16)&0x1f)==0 )

{

s16 datl=Buf_L[current_l++];

s16 datr=Buf_R[current_r++];

LPC_I2S->I2STXFIFO = (datr<<16) | (datl & 0xFFFF);

if(current_l>=len_l)current_l=0;

if(current_r>=len_r)current_r=0;

}

}

}

LPC1768的IIS通讯的更多相关文章

  1. LPC1768的iic通讯

    LPC1768有三路IIC,其中IIC0支持高速模式和plus模式,另外两路是普通IIC,使用IIC的过程如下 首先依然是打开IIC时钟,同时打开GPIO时钟 然后配置引脚为IIC功能 另外,因为ii ...

  2. LPC1768的SPI通讯

    SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机.在数据传输过程中总线上只能有一个主机和一个从机通信.在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送 ...

  3. Cortex-M3学习日志(四) -- UART0实验

    LPC1768含有4 个符合16C550工业标准的异步串口UATR0-UART3,其中UART1具有标准的MODEM接口和RS-485/EIA-485接口模式.串口通讯接口是连接计算机.终端.通讯控制 ...

  4. ASP.NET机制详细的管道事件流程(转)

    ASP.NET机制详细的管道事件流程 第一:浏览器向服务器发送请求. 1)浏览器向iis服务器发送请求网址的域名,根据http协议封装成请求报文,通过dns解析请求的ip地址,接着通过socket与i ...

  5. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  6. 试解析Tomcat运行原理(一)--- socket通讯

    关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...

  7. IIS 部署WCF 4.0

    上一章节讲解如何新建WCF服务,此文讲解如何在IIS上发布,并能正常访问 本地部署IIS 首先在本机安装IIS,IIS如何勾选,哪些是必须的?不太清楚,有清楚的大牛请指正!目前我的基本配置如下: 配置 ...

  8. 转:用WCAT进行IIS压力测试

    Microsoft的Web容量分析工具(WCAT) 是测试你的客户-服务器网络配置的必备工具.这个工具在你的网络上对多种工作量的场景进行仿真,允许你确定你的网络和服务器的最佳配置.WCAT是专门为 评 ...

  9. 三十、【C#.Net开发框架】WCFHosting服务主机的利用WCF服务通讯和实现思路

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...

随机推荐

  1. hdu 5536 xor题

    input 1<=T<=1000 3<=n<=1000 s1 s2 ... sn 0<=si<=10e9 最多十个样例n>=100 output max((a ...

  2. 单元测试、自动化测试、接口测试过程中的Excel数据驱动(java实现)

    import java.io.FileInputStream;import java.io.InputStream;import java.util.HashMap;import java.util. ...

  3. HDU1162-Eddy's picture(最小生成树)

    Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become ...

  4. This compilation unit is not on the build path SVN

    This compilation unit is not on the build path of a Java project 解决办法​ 把项目导入STS(基于Eclipse)时,项目出现问题, ...

  5. IDL 实现 EOF(经验正交函数分析)

    关于EOF详细介绍请wiki http://en.wikipedia.org/wiki/Empirical_orthogonal_functions或者Google之. 与PCA一样,EOF也是遥感多 ...

  6. Windows API 之 InternetOpen、InternetOpenUrl、InternetReadFile

    InternetOpen: Initializes an application's use of the WinINet functions. HINTERNET InternetOpen( _In ...

  7. C++调用java

    摘要: 1 java类生成c头文件和库文件 2 对于c/c++程序,启动时先启动jvm,然后获得对应的java类的对象和方法.然后正常使用. 最近正在做一个C/C++调用java的程序,这里说的调用j ...

  8. 5V与3.3V器件电平转换

    源:5V与3.3V器件电平转换 当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦 ...

  9. 关于tomcat启动没有进行编译或者编译报错的问题

    关于tomcat 的问题 如果项目没有编译 解决方案:1: 把项目刷新一下 然后Clean一下,之后等待右下角编译完成100%2: 有可能tomcat conf 里的配置文件的错误 进入查看下3: 如 ...

  10. 饥饿的牛(hunger)

    饥饿的牛(hunger) 题目描述 牛在饲料槽前排好了队.饲料槽依次用1到n(1≤n≤2000)编号.每天晚上,一头幸运的牛根据约翰的规则,吃其中一些槽里的饲料.约翰提供B个区间的清单.一个区间是一对 ...