3667|6

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

学习MSP430FR5969代码运行中遇到的问题已解决,先分享一下! [复制链接]

代码运行中遇到了一点问题,调了两天才算大体解决,在这里和大家分享一下。
1月份开始学习I2C,手边的板子是MSP430FR5969lachpad。TI提供的是中断方式的I2C,不过一向觉得查询方式的用起来更容易理解一些,所以就开始参考各方资料。不知道为什么大家都喜欢用软件模拟的方式,不过我还是喜欢用硬件提供的I2C,感觉这样正式一点。找到的比较准确的代码就是楼主分享的代码(>> [TI首届低功耗设计大赛]+FR5969硬件IIC驱动MPL3115气压传感器),就此借鉴了一下。可惜的是还是遇到了一些问题,曾经一度想要放弃,不过幸好坚持了下来,终于找到了问题所在。为了感谢楼主的分享,也把自己的问题写出来,希望提供借鉴。
问题出在这段代码:
while(!(UCB0IFG & UCTXIFG))  // 等待UCTXIFG=1 与UCTXSTT=0 同时变化 等待一个标志位即可
  {
    if( UCB0IFG & UCNACKIFG )  // 若无应答 UCNACKIFG=1
    {
      return 1;                //发送失败
    }
  }   

我在写代码的时候觉得有无应答的判断并不重要,MSP430应该会自动进行有无ACK的判断,如果没有应答软件应该无法运行下去。所以将这一段省略为:
while(!(UCB0IFG & UCTXIFG)); //而且IAR 提供的库函数中也是这样写的,所以就没有多想。
当然结果肯定是不正常的,虽然软件能够正常运行,但是读出的数据总是0xFF。实际上数据既没有写进去,也没有读出来。
最后的分析是:在发送一个字节后一定要做一下判断if(UCB0IFG & UCNACKIFG),这样才能保证代码的正确运行。

最新回复

谢谢楼主分享  详情 回复 发表于 2016-1-8 12:07
 
点赞 关注

回复
举报

6066

帖子

93

TA的资源

裸片初长成(初级)

沙发
 
谢谢,希望今后有更多的学习经验能与我们分享!
 
 

回复

230

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
早知道就发出来了,去年我调OLED,刚开始用的是查询方式的IIC,后来觉得速度慢,就改成了硬件方式的IIC ,期间用到了泰克的示波器,不得不说泰克的示波器强大,用那个串行总线分析模块立马可以看出IIC发送的所有数据

点评

呵呵 支持发布 有的时候自己经历过的问题,记录下来,能够帮助不少人呢  详情 回复 发表于 2016-1-8 09:56
哈哈,平时遇到的问题多多与网友分享  详情 回复 发表于 2016-1-8 09:56
 
 
 

回复

6066

帖子

93

TA的资源

裸片初长成(初级)

4
 
lingergz 发表于 2016-1-8 09:53
早知道就发出来了,去年我调OLED,刚开始用的是查询方式的IIC,后来觉得速度慢,就改成了硬件方式的IIC ,期 ...

哈哈,平时遇到的问题多多与网友分享
 
 
 

回复

2万

帖子

74

TA的资源

管理员

5
 
lingergz 发表于 2016-1-8 09:53
早知道就发出来了,去年我调OLED,刚开始用的是查询方式的IIC,后来觉得速度慢,就改成了硬件方式的IIC ,期 ...

呵呵 支持发布   有的时候自己经历过的问题,记录下来,能够帮助不少人呢
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

enen  详情 回复 发表于 2016-1-8 11:37
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

230

帖子

0

TA的资源

一粒金砂(中级)

6
 
soso 发表于 2016-1-8 09:56
呵呵 支持发布   有的时候自己经历过的问题,记录下来,能够帮助不少人呢

enen
 
 
 

回复

396

帖子

5

TA的资源

纯净的硅(中级)

7
 
谢谢楼主分享
 
个人签名一别四五年,变化万千。https://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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