在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 4709|回复: 2

[讨论] STM32F030日志之I2C

[复制链接]
发表于 2017-4-9 08:54:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 wadezhu 于 2017-4-9 15:36 编辑

最近调试 一款 IQS333 电容触摸按键芯片IC,调了好几天发现I2C端口上没数据。最后追STM Clock tree 和STM 提供的I2C_Timing_Configuration工具解决了这个问题。现在分享给大家。

1. 首先我们观察Clock tree 查看 I2C clock source的缘由。


                               
登录/注册后可看大图


由 Clock tree可以得出I2C clock source 可以选择使用内部8MHz时钟,还是选用的系统SYSCLK.

本人选用的是STM32F030开发板。开发使用的是8MHz的外部晶振。所以采用外部8MHz时钟为例。

根据下面的 clock source时钟走势进行RCC 模块配置:


                               
登录/注册后可看大图


从走势我们可以看出我们需要确定PREDIV,PLLSRC,PLLMUL,SW和I2C1的源输入选择。

Clock configuration register 2 (RCC_CFGR2)


                               
登录/注册后可看大图

Clock configuration register (RCC_CFGR)


                               
登录/注册后可看大图

最后配置RCC相应的PREDIV,PLLSRC,PLLMUL,SW得到PLLCLK为48MHz.

并且STM32厂商提供得了I2C时钟配置的工具。


                               
登录/注册后可看大图


根据STM32厂商提供的配置I2C时钟说明,根据自己的应用我的配置如下:


                               
登录/注册后可看大图


因此在配置I2C的使用Timing的值如下


                               
登录/注册后可看大图


然后配置相应的I2C管脚,代码如下:



I2C多字节写实现



I2C多字节读实现

发表于 2018-2-6 21:31:07 | 显示全部楼层
SCHEMATIC BOARD
发表于 2018-4-28 12:47:37 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 20:29 , Processed in 0.015843 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表