OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4453|回复: 3

关于原子老师开发板IIC通讯程序里面的一个问题!!!

[复制链接]

7

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2014-2-10
在线时间
10 小时
发表于 2014-2-11 09:54:00 | 显示全部楼层 |阅读模式
原子老师:
                   您好!在您们min型stm32开发板里面关于IIIC24的操作有段程序:

//等待应答信号到来
  
u8 IIC_Wait_Ack(void)
{
 u8 ucErrTime=0;
 SDA_IN();      //
 IIC_SDA=1;delay_us(1);   
 IIC_SCL=1;delay_us(1); 
 while(READ_SDA)
 {
  ucErrTime++;
  if(ucErrTime>250)
  {
   IIC_Stop();
   return 1;
  }
 }
 IIC_SCL=0;//  
 return 0; 
}
在里面:
SDA_IN();   已经把数据口设置为输入模式了,但是接下来紧跟一句: IIC_SDA=1;人为的向此端口写入数据??这样不知道是什么意思?
然后在这句:while(READ_SDA) 读取端口状态可以理解;是否 IIC_SDA=1;这句可以省略。??

希望原子老师不吝赐教~!

bryanqin
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-2-11 10:27:08 | 显示全部楼层
回复【楼主位】bryanqin:
---------------------------------
释放数据线,因为应答信号是低电平
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

7

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2014-2-10
在线时间
10 小时
 楼主| 发表于 2014-2-11 11:07:23 | 显示全部楼层
Badu_Space 老师:
                 您好!由于刚接触STM32;不太熟悉!
我的意思是:IO口通过:SDA_IN();  操作后;再次执行IIC_SDA=1;语句是否冲突或有用?或者
因为你已经把他设置为输入端口模式,继续人为向里面写数据是否可行?
bryanqin
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-2-11 14:09:33 | 显示全部楼层
回复【3楼】bryanqin:
---------------------------------
可以的.
在输入模式下,ODR寄存器控制输入的上下拉.
写1,就是上拉输入的意思...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 15:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表