教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

I2C程序和流程图(3)

来源:网络收集 时间:2026-04-26
导读: } // I2CTCTL |= I2CSTP; //I2CRM =1模式中,在发送最后一个数据之前将停止位置位,*特别注意,必须 I2cBusSendByte(*ps); while((I2CIFG // 无应答,结束总线 return(0); } return(1); } //------------------写at

}

// I2CTCTL |= I2CSTP; //I2CRM =1模式中,在发送最后一个数据之前将停止位置位,*特别注意,必须 I2cBusSendByte(*ps);

while((I2CIFG & 0x02) == NACKIFG) // 等待数据的应答 {

I2CTCTL |= I2CSTP; // 无应答,结束总线 return(0); }

return(1); }

//------------------写at24c512---- void I2cWrAt24c512(void) {

unsigned int j=0; unsigned char m,n;

unsigned int tempAddr;

for (j = 0;j <462;j++) // page write {

tempAddr = 128*j;

while (I2CBUSY & I2CDCTL); // I2C ready? I2cSendSubAddr(tempAddr,0x80);

I2cSendStr(FPGACfg+tempAddr,0x80); P4OUT ^= 0x80;

for (m=0;m<125;m++) {for (n=0;n<110;n++);} P4OUT ^= 0x80; }

tempAddr = 128*j;

while (I2CBUSY & I2CDCTL); // I2C ready? I2cSendSubAddr(tempAddr,0x4f);

I2cSendStr(FPGACfg+tempAddr,0x4f); P4OUT ^= 0x80;

for (m=0;m<125;m++) {for (n=0;n<110;n++);} P4OUT ^= 0x80; }

/*-------------------------- MSP430 I2C 读取数据-----------------------------*/ /*---------------------------------------------------------------------

--子程标号 :I2cSlaSubAddr

--子程功能 :主器件发送从机器件地址和子地址 --入口参数 :unsigned int suba --参数说明 :子地址

--子程调用 :I2cBusSendByte --子程序状况 :Y

--说明 :完成地址信息的定位,先确定顺序读写的起始地址 --------------------------------------------------------------------- --*/

void I2cReceSubAddr(unsigned int suba) // test 09-25 读之前先写地址 {

unsigned char Hi_suba,Lo_suba;

P3OUT = 0x00; // clear P3 output register

P3SEL = 0x0A; // P3.1=SDA, P3.3=SCL,Select I2C pins, Setup I2C module U0CTL |= I2C + SYNC; // select I2C mode;XA=0,7bit_addresing; U0CTL &= ~I2CEN; // i2c功能使能无效

// I2CTCTL = I2CRM + I2CSSEL_2; // I2CRM = 1,自己设定字节个数

I2CTCTL = I2CSSEL_2; // I2CRM = 0,

I2CNDAT = 2; // I2CRM = 0,2byte地址 + 128byte数据,固定字节 I2CIFG = 0;

I2CPSC = 1; // set scl

// I2CSCLH = 0x02; // High period of SCL // I2CSCLL = 0x02; // Low period of SCL

I2CSA = 0x50; // Slave address of At24c512

U0CTL |= I2CEN; // enable I2C module, 7 bit addr, master mode 08-26 U0CTL |= MST;

Hi_suba = ( unsigned char )( suba >> 8 );

Lo_suba = ( unsigned char )( suba & 0x00ff );

while (I2CBUSY & I2CDCTL); // I2C ready? 在空闲状态:0,空闲;1:忙 I2CTCTL |= I2CTRX + I2CSTT + I2CSTP ; // I2CRM =0,启动总线,发送从器件地址

while((I2CIFG & NACKIFG) == 0x02) // ack 为低电平,等待地址应答位 ,判断 无应答NACKIFG = 1 {

I2CTCTL |= I2CSTP; // 结束总线 }

I2cBusSendByte( Hi_suba ); //发送器件子地址

while((I2CIFG & NACKIFG) == 0x02) // ack 为低电平,等待地址应答位 ,判断 无应答NACKIFG = 1 {

I2CTCTL |= I2CSTP; // 结束总线 }

I2cBusSendByte( Lo_suba ); //发送器件子地址

while((I2CIFG & NACKIFG) == 0x02) // ack 为低电平,等待地址应答位 ,判断 无应答NACKIFG = 1 {

I2CTCTL |= I2CSTP; // 结束总线 }

DelayTime10us(250); DelayTime10us(250); DelayTime10us(250); DelayTime10us(250); }

/*---------------------------------------------------------------------

--子程标号 :I2cSlaSubAddr --子程功能 :主器件接收初始化

--入口参数 :无

--子程序状况 : --说明 :

--------------------------------------------------------------------- --*/

void InitI2cRece(unsigned char num) {

P3OUT = 0x00; // clear P3 output register

P3SEL = 0x0A; // P3.1=SDA, P3.3=SCL,Select I2C pins, Setup I2C module U0CTL |= I2C + SYNC; // select I2C mode;XA=0,7bit_addresing; U0CTL &= ~I2CEN; // i2c功能使能无效

// I2CTCTL = I2CRM + I2CSSEL_2; // I2CRM=1 x(x>256)字节模式

I2CTCTL = I2CSSEL_2; // I2CRM=0 I2CNDAT = num; // 1个字节 I2CPSC = 1; // set scl

// I2CSCLH = 0x01; // High period of SCL // I2CSCLL = 0x01; // Low period of SCL I2CIFG = 0;

I2CSA = 0x50; // Slave address of At24c512 I2CTCTL &= ~I2CTRX;

U0CTL |= I2CEN; // enable I2C module, 7 bit addr, master mode 08-26 }

/*--------------------------------------------------------------- --功能描述 : 读一个字节 --子程序状况 :

------------------------------------------------------------------ --*/

unsigned char I2cReceSlaByte(void) {

unsigned char ch; DelayTime10us(15);

U0CTL |= MST; //主模式

while (I2CBUSY & I2CDCTL); // I2C ready? 在空闲状态:0,空闲;1:忙

I2CTCTL |= I2CSTT + I2C …… 此处隐藏:1755字,全部文档内容请下载后查看。喜欢就下载吧 ……

I2C程序和流程图(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/439077.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)