欢迎来到天天文库
浏览记录
ID:51469349
大小:60.00 KB
页数:7页
时间:2020-03-25
《支持i2c外设的函数.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2.4I²C函数下列函数支持I2C外设:函数简述AckI2C生成I2C总线应答信号(Acknowledgecondition)。CloseI2C屏蔽SSP(同步串行口)模块。DataRdyI2CI2C缓存中的数据是否可用?getsI2C在主I2C模式下,从I2C总线读取1个字符串。IdleI2C循环直到I2C总线出现空闲。NotAckI2C生成I2C总线不应答信号(NotAcknowledgecondition)。OpenI2C设置SSP模块。WriteI2CputcI2C向I2C总线写入1个字节。putsI2C在主或从模式下,向I2C总线写入1个字
2、符串。ReadI2CgetcI2C从I2C总线读取1个字节。RestartI2C生成I2C总线Restart信号。StartI2C生成I2C总线START信号。StopI2C生成I2C总线STOP信号。2.4.1函数详解#include原型:voidAckI2C(void);功能:生成I2C总线应答信号源文件:acki2c.c///////////////////acki2c.c//////////////////////////////////////voidAckI2C(void){SSPCON2bits.ACKDT=0;//set
3、acknowledgebitstateforACKSSPCON2bits.ACKEN=1;//initiatebusacknowledgesequence}//////////////////////////////////////////////////////////////////////=======================================#include原型:voidCloseI2C(void);功能:屏蔽SSP(同步串行口)模块。源文件:closei2c.c//////////////closei2c
4、.c://////////////////////////////////voidCloseI2C(void){SSPCON1&=0xDF;//屏蔽SSP(同步串行口)模块}/////////////////////////////////////////////////////////////////=======================================#include原型:unsignedcharDataRdyI2C(void);功能:在I2C缓存中的数据是否可用?确定在SSP(同步串行口)模块的缓存中是否有
5、1字节的待读数据。如果有数据在SSP模块缓存中则返回1;否则返回0。源文件:dtrdyi2c.c//////////////dtrdyi2c.c://////////////////////////////////unsignedcharDataRdyI2C(void){if(SSPSTATbits.BF)//测试缓存满的标志位是否为1return(+1);//数据在寄存器SSPBUF中elsereturn(0);//数据不在寄存器SSPBUF}/////////////////////////////////////////////////////
6、/////////范例:if(DataRdyI2C()){var=getcI2C();}=======================================#include原型:unsignedchargetsI2C(unsignedchar*rdptr,unsignedcharlength);功能:在主I2C模式下,从I2C总线读取1个指定长度的字符串。rdptr指向PICmicroRAM的字符型指针,用来存放从I2C器件读取来的数据。length指定从I2C器件读取的字节数。如果全部字节已发送完毕则返回0;如总线冲突则返回
7、-1。源文件:getsi2c.c//////////////://////////////////////////////////unsignedchargetsI2C(unsignedchar*rdptr,unsignedcharlength){while(length--)//performgetcI2C()for'length'numberofbytes{*rdptr++=getcI2C();//savebytereceivedwhile(SSPCON2bits.RCEN);//checkthatreceivesequenceisoverif(
8、PIR2bits.BCLIF)//testforbuscollision{return(-1);//retu
此文档下载收益归作者所有