OpenEdv-开源电子网

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

关于IIC通信时IO方向设置的问题

[复制链接]

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-8-25
在线时间
14 小时
发表于 2020-11-27 17:45:47 | 显示全部楼层 |阅读模式
1金钱
原理图上是PB6 PB7接IIC通信,为什么这里是GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;不应该是GPIOB->CRL吗?而且这也只操作了一个IO口,另外一个IO不用管吗?

捕获.PNG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2020-11-28 14:34:29 | 显示全部楼层
你的想法是正确的,原子的手册里面写错了,你可以去看看源码例程是这样写的:
//IO方向设置
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}

//IO操作函数         
#define IIC_SCL    PBout(6)                 //SCL
#define IIC_SDA    PBout(7)                 //SDA         
#define READ_SDA   PBin(7)                          //输入SDA

这里只用控制数据线SDA的方向,因为iic只有两根线,主机要通过数据线发送,从机也要通过数据线发送
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-8-25
在线时间
14 小时
 楼主| 发表于 2020-11-29 12:16:02 | 显示全部楼层
多谢解答,请问下两个IIC器件怎么分别对他们操作呢?
回复

使用道具 举报

11

主题

2154

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4947
金钱
4947
注册时间
2015-1-10
在线时间
620 小时
发表于 2020-11-30 08:36:25 | 显示全部楼层
99999nibb 发表于 2020-11-29 12:16
多谢解答,请问下两个IIC器件怎么分别对他们操作呢?

从机地址区分设备
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2020-11-30 08:40:30 | 显示全部楼层
99999nibb 发表于 2020-11-29 12:16
多谢解答,请问下两个IIC器件怎么分别对他们操作呢?

要么硬件上做区别,要么当发送数据帧的时候,第一帧带地址
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 06:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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