I2C程序和流程图(3)
}
// 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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




