完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
I2C关于开始和结束是这么说的SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
我在编程的时候这么写 void start() //开始信号 { scl=1; delay(); sda=1; delay(); sda=0; delay(); } void stop() //结束信号 { scl=1; delay(); sda=0; delay(); sda=1; delay(); } 这么写不能实现功能。而改成下面这样就可以了: void start() //开始信号 { sda=1; delay(); scl=1; delay(); sda=0; delay(); } void stop() //停止 { sda=0; delay(); scl=1; delay(); sda=1; delay(); } 感觉时序上是一样的啊,求助! |
|
相关推荐
8个回答
|
|
|
本帖最后由 狂客 于 2014-9-25 17:28 编辑
你的程序在SCL=1时,SDA又变0又变1,这就不行啦。而应该是SDA先稳定不变,再将SCL=1,然后把SDA变一次,完成一次操作。 |
|
|
|
|
|
看的是郭天祥的书本,可是对于起始和终止信号就是在SCL为高电平期间SDA发生跳变啊,书上这么介绍的:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。我两个函数都是使SCL为高,改变SDA的状态。 |
|
|
|
|
|
本帖最后由 狂客 于 2014-9-25 17:22 编辑
,我之前说错了,没表达好,意思是,只能变一次。而你是变两次了。。。。。我修改 了之前错误的表达,你再看看。 |
|
|
|
|
|
我调了一下,出问题的是stop函数,两个start都可以使用,可能是start跟在void init(){ sda=1; delay(); scl=1; delay(); } 后面,时序上不会出现二次跳变。而stop是跟在 void respons() //应答 { uchar i; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay(); } 后面,是不是在执行完应答函数之后sda已经变成高电平了?只有这样才会像你说的在SCL高电平期间产生二次跳变。 |
|
|
|
|
|
我发现我好像似乎没有解决你的问题。。。。。你可能是纠结于P181那个图,话说,在一个SCL高电平期间SDA做两次变化,真没试过。(我猜要么在一个SCL高电平期间SDA做两次变化不行,要么你delay不够,你试试延长delay)。呵呵,我也是半桶水而已。
|
|
|
|
|
|
这个……看看再说吧,,,
|
|
|
|
|
|
是跟着那个图来的,我试着延长了delay,还是不行。我在stop前面的respons后面加了句if(sda==1) P1=0xfe;结果就是sda=1,这样就向前面你说的那样stop中sda会发生两次跳变。可能这样真的不行。。。我也是个菜鸟,大家一起学习。。。 |
|
|
|
|
|
本帖最后由 狂客 于 2014-9-25 18:55 编辑
我试了 一下,好像P181那样做,就是在SCL=1的期间SDA变几次是没问题的哦,我之前的说法有误,你继续试一下。你可以再找找原因,我迟点再回来一起研究。像我这种半桶水的来帮人,果然有点坑,搞得新手有错误的观念,惨了惨了,你要重新思考不要我的观点,我的观点有错!。。。再认真检查一下程序。。。。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
有人有STM8H1K08T连接TM1650的源码吗,可以直接使用的那种,我的代码在烧录之后数码管一直处于熄灭状态
271 浏览 0 评论
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
493 浏览 0 评论
589 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
891 浏览 0 评论
1436 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16925 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 06:38 , Processed in 0.858925 second(s), Total 89, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1599