打印
[STM32L0]

STM32L0X 做从机I2C通信

[复制链接]
2184|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mochou|  楼主 | 2017-10-19 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位:
         有没有用STM32L0X做I2C从机的,从主机读取数据,作从机时时钟主机产生的,那STM32L0X作为从机时钟还要配置吗?主机的时钟为31.25K,
/**
  * Brief   This function configures I2C1, slave.
  * Param   None
  * Retval  None
  */
__INLINE void Configure_I2C1_Slave(void)
{
  /* Configure RCC for I2C1 */
  /* (1) Enable the peripheral clock I2C1 */
  /* (2) Use APBCLK for I2C CLK */
  RCC->APB1ENR |= RCC_APB1ENR_I2C1EN; /* (1) */
  RCC->CCIPR &= ~RCC_CCIPR_I2C1SEL; /* (2) */
  
  /* Configure I2C1, slave */
  /* (3) Timing register value is computed with the AN4235 xls file,
         fast Mode @400kHz with I2CCLK = 16MHz, rise time = 100ns,
         fall time = 10ns  0x00B1112E */
  /* (4) Periph enable, address match interrupt enable */
  /* (5) 7-bit address = 0x5A */
  /* (6) Enable own address 1 */
  I2C1->TIMINGR = (uint32_t)0x00B1112E; /* (3) */
  I2C1->CR1 = I2C_CR1_PE | I2C_CR1_ADDRIE; /* (4) */
  I2C1->OAR1 |= (uint32_t)(I2C1_OWN_ADDRESS << 1); /* (5) */
  I2C1->OAR1 |= I2C_OAR1_OA1EN; /* (6) */
  
  /* Configure IT */
  /* (7) Set priority for I2C1_IRQn */
  /* (8) Enable I2C1_IRQn */
  NVIC_SetPriority(I2C1_IRQn, 0); /* (7) */
  NVIC_EnableIRQ(I2C1_IRQn); /* (8) */
}
沙发
feelhyq| | 2017-10-20 14:20 | 只看该作者
不需要,主机提供时钟作为同步

使用特权

评论回复
板凳
mochou|  楼主 | 2017-10-21 13:47 | 只看该作者
feelhyq 发表于 2017-10-20 14:20
不需要,主机提供时钟作为同步

上面的初始化代码不要I2C1->TIMINGR = (uint32_t)0x00B1112E; /* (3) *这一句?试了不行啊  

使用特权

评论回复
地板
feelhyq| | 2017-10-22 22:40 | 只看该作者
(3) Timing register value is computed with the AN4235 xls file,
         fast Mode @400kHz with I2CCLK = 16MHz, rise time = 100ns,
         fall time = 10ns  0x00B1112E */    请深入理解这句注释

使用特权

评论回复
5
643757107| | 2017-10-23 11:10 | 只看该作者
这些管脚都是复用的,因此要注意了。

使用特权

评论回复
6
wanduzi| | 2017-10-23 16:24 | 只看该作者
用的cubeMX配置的也不好使了?

使用特权

评论回复
7
mochou|  楼主 | 2017-11-3 08:33 | 只看该作者
wanduzi 发表于 2017-10-23 16:24
用的cubeMX配置的也不好使了?

我用的是官方寄存器版本的,能通信,但只能进一次I2C中断,帮看下哪里配置问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

1422

帖子

8

粉丝