stm32 i2c 从模式求助

2019-03-23 17:15发布

本帖最后由 weizhongc 于 2017-11-17 09:40 编辑

(开发平台硬件使用16M外部晶振,cpu时钟设置为48M,mcu stm32f103cbt6)
        i2c从模式的操作,发现只能做读操作,是可以一直读下去的,如果这时候改成写操作就会出现问题,而且之后i2c 从新配置也无法恢复过来。
(主机i2c读操作 W_addr  Reg R_addr R_data R_data )
(主机i2c写操作 W_addr  Reg R_data R_data R_data )


以为是时钟总线的问题,后面我们对时钟总线进行查找,发现 SYSCLK PCLK1 以及i2c的时钟配置是正确的。
以下是i2c 配置过程中相应寄存器打印出来的值

DBG >>  RCC->CFGR  53040A  
DBG >>  I2C1->CR2 0x18  
DBG >>  I2C1->CR1 0x0  
DBG >>  I2C1->TRISE 0x8  
DBG >>  I2C1->CCR 0xc004  
DBG >>  I2C1->CR1 0x1  
DBG >>  I2C1->CR1 0x401  
DBG >>  I2C1->OAR1 0x4030  

有没有朋友遇到类似的问题呢,可以建议下。谢谢了


问了st的 fae,后面按着建议来改,解决问题了,就用st cpal i2c 库就好了,就搬过来就可以,也不用怎么设置。
https://my.st.com/content/my_st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32127.license%3d1510813611433.product%3dSTSW-STM32127.html




此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
le062
1楼-- · 2019-03-23 22:21
/ 建议用io模拟实现i2c主/从模式
weizhongc
2楼-- · 2019-03-23 23:03
搞定了,研究了好几天老是有bug,后面问了st 的fae  。他们给建议用cpal库,那就采用cpal库就搞定了。

一周热门 更多>