2334|2

69

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

msp430g2553 I2C读不到数据 [复制链接]

/*
* 函数名:        I2C_Read(uchar address)
* 功能:                读取对应寄存器的值
* 输入参数:        uchar address-->对应寄存器的地址
* 输出参数: 返回值为I2C读出UCB0RXBUF内的数据
* 说明:                在读数据之前必须先写入要读的寄存器地址。
*/
uchar I2C_Read(uchar address)
{
                PointCnt = 0;
                Tx_Buffer[0] = address;

                I2C_Tx_Init();
                UCB0CTL1 |= UCTXSTT;                                //开始标志位;
                __bis_SR_register(CPUOFF + GIE);

                I2C_Rx_Init();
                UCB0CTL1 |= UCTXSTT;
                while (UCB0CTL1 & UCTXSTT);   //没有这句话运行完 没有提供停止位!

                __bis_SR_register(CPUOFF + GIE);     // Enter LPM0 w/ interrupts

                return Rx_Buffer;
}
请问下大神:为什么我将        __bis_SR_register(CPUOFF + GIE);   用_EINT();代替以后就是读不到数据了?这是为什么?想了很久都没有想明白,求大侠们赐教!




最新回复

__bis_SR_register(CPUOFF + GIE); ,,_EINT();里面都是什么内容啊,详细比较两个函数的差异。  详情 回复 发表于 2014-10-30 20:28
 
点赞 关注

回复
举报

3471

帖子

13

TA的资源

五彩晶圆(高级)

沙发
 
__bis_SR_register(CPUOFF + GIE); ,,_EINT();里面都是什么内容啊,详细比较两个函数的差异。

点评

区别是是前面那个将MCLK关闭了,靠中断来唤醒MCLK。  详情 回复 发表于 2014-11-5 21:16
 
 

回复

69

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
ienglgge 发表于 2014-10-30 20:28
__bis_SR_register(CPUOFF + GIE); ,,_EINT();里面都是什么内容啊,详细比较两个函数的差异。

__bis_SR_register(CPUOFF + GIE); 和_EINT();
区别是是前面那个将MCLK关闭了,靠中断来唤醒MCLK。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表