专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
msp430f5438硬件i2c问题
2019-03-24 11:36
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
14786
16
1446
请教一个问题,官网的资料上都是利用中断的,但是我不想使用中断,只想使用专断标志位帮助我判断状态,但是我发现很奇怪,首先发送完slave地址以后没有ack的clk出现使得ubxctrl1的开始条件位不能自动复位,另外在发送数据时都需要延时,不然不会有任何数据出现。请问大家有没有碰上过类似的情况 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
flywith
1楼-- · 2019-03-24 15:44
< UCB1I2CSA =WRITEADDR;
while (UCB1CTL1 & UCTXSTP);
UCB1CTL1 |= UCTXSTT+UCTR ;
// while(UCB1CTL1 & UCTXSTT) ; uctxstt放在这里会死循环。
while(! (UC1IFG & UCB1TXIFG) ) ;
UCB1TXBUF = addr;
while(UCB1CTL1 & UCTXSTT) ; 放在这里就通过了
while( !(UC1IFG & UCB1TXIFG) ) ;
UCB1TXBUF = data;
while( !(UC1IFG & UCB1TXIFG) ) ;
UCB1CTL1 |= UCTXSTP;
UC1IFG &= ~UCB1TXIFG;
delay_ms(1);
感觉像楼主说的,UCB1CTL1 |= UCTXSTT+UCTR ;
并没真的开始有应答,当有数据写入的时候,UCB1TXBUF = addr; 才会有ack,这个时候uctxstt才会清楚。
加载中...
woshi2007a
2楼-- · 2019-03-24 21:09
精彩回答 2 元偷偷看……
加载中...
鸵鸟蝈蝈
3楼-- · 2019-03-25 02:23
你的丛机接的是什么啊?
加载中...
woshi2007a
4楼-- · 2019-03-25 08:19
从机接的是气压传感器,在发地址的时候这个问题就存在了,主机少发了一个clk,没有给从机应答的机会
加载中...
鸵鸟蝈蝈
5楼-- · 2019-03-25 09:45
精彩回答 2 元偷偷看……
加载中...
woshi2007a
6楼-- · 2019-03-25 14:56
见图,这是发出start后的波形,地址是0xee,写数据。可以看到没有ack的clk
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
while (UCB1CTL1 & UCTXSTP);
UCB1CTL1 |= UCTXSTT+UCTR ;
// while(UCB1CTL1 & UCTXSTT) ; uctxstt放在这里会死循环。
while(! (UC1IFG & UCB1TXIFG) ) ;
UCB1TXBUF = addr;
while(UCB1CTL1 & UCTXSTT) ; 放在这里就通过了
while( !(UC1IFG & UCB1TXIFG) ) ;
UCB1TXBUF = data;
while( !(UC1IFG & UCB1TXIFG) ) ;
UCB1CTL1 |= UCTXSTP;
UC1IFG &= ~UCB1TXIFG;
delay_ms(1);
感觉像楼主说的,UCB1CTL1 |= UCTXSTT+UCTR ;
并没真的开始有应答,当有数据写入的时候,UCB1TXBUF = addr; 才会有ack,这个时候uctxstt才会清楚。
一周热门 更多>