OpenEdv-开源电子网

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

STM8 I2C通信问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-12-26
在线时间
0 小时
发表于 2014-12-26 22:49:14 | 显示全部楼层 |阅读模式
5金钱
各位大神,小弟初学,在用STM8S003F3调试硬件I2C,总线上有三个器件,包括STM8,当我用MCU把另两个器件复位后,发现I2C被IC1占用,MCU要对IC2写配置写不进去,总线一直忙,后来我用IC1的测试工具接到I2C总线上发现,这个工具每次对I2C进行操作的时候都会把SDA和SCL拉低然后再发送数据(图1)。我就想如果让MCU的I2C每次通讯前也把SDA和SCL拉低,但是我用了很多方法都没办法把SDA和SCL拉低,请各位大神指点,程序要怎么写?谢谢!

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-12-26 23:03:19 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-12-26
在线时间
0 小时
 楼主| 发表于 2014-12-27 13:04:20 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
感谢!不知道正点有没有遇到这样的问题,STM8要怎么抢到总线控制权
回复

使用道具 举报

5

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2014-5-20
在线时间
0 小时
发表于 2015-1-7 14:32:20 | 显示全部楼层
请问你的stm8做从机时,从机地址怎样设置,我在datasheet里面找不到stm8做从机时的设备地址
回复

使用道具 举报

3

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2015-2-28
在线时间
251 小时
发表于 2015-2-28 18:22:37 | 显示全部楼层
回复【4楼】月恨:
---------------------------------
STM8做从机,从机地址就是自身的地址
/**
  * @brief  Initializes the I2C according to the specified parameters in standard
  *         or fast mode.
  * @param  OutputClockFrequencyHz: Specifies the output clock frequency in Hz.
  * @param  OwnAddress: Specifies the own address.
  * @param  I2C_DutyCycle: Specifies the duty cycle to apply in fast mode.
  *         This parameter can be any of the  @ref I2C_DutyCycle_TypeDef enumeration.
  * @note   This parameter don't have impact when the OutputClockFrequency lower
  *         than 100KHz.
  * @param  Ack: Specifies the acknowledge mode to apply.
  *         This parameter can be any of the  @ref I2C_Ack_TypeDef enumeration.
  * @param  AddMode: Specifies the acknowledge address to apply.
  *         This parameter can be any of the  @ref I2C_AddMode_TypeDef enumeration.
  * @param  InputClockFrequencyMHz: Specifies the input clock frequency in MHz.
  * @retval None
  */
void I2C_Init(uint32_t OutputClockFrequencyHz, uint16_t OwnAddress, 
              I2C_DutyCycle_TypeDef I2C_DutyCycle, I2C_Ack_TypeDef Ack, 
              I2C_AddMode_TypeDef AddMode, uint8_t InputClockFrequencyMHz )

中的 OwnAddress
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 18:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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