你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
429 I2C CR2怎么设置?
[复制链接]
winamp123
提问时间:2014-11-30 18:29 /
问答
是否解决:
429主频180M, APB1 45MHz. 而手册上写CR2 FREQ最多设置APB是42M。 请问429 I2C是怎么设置的?有没有例子?
赞
0
收藏
0
评论
2
分享
发布时间:2014-11-30 18:29
举报
请先
登录
后回答问题
2个回答
Dylan疾风闪电
回答时间:2014-12-11 10:33:39
a0a.1 32b0c
本帖最后由 Dylan疾风闪电 于 2014-12-11 10:36 编辑
官网的STM32F429I-Discovery例程中有I2C的例子。
--------------------------------------------------------------
下面的附件截取自STM32F429探索套件官方例程“stm32cubef4\STM32Cube_FW_F4_V1.1.0\Projects\STM32F429I-Discovery\Examples\I2C”
本论坛内的下载地址是:
https://www.stmcu.org.cn/document/list/index/category-634
--------------------------------------------------------------
I2C.rar
(209.93 KB, 下载次数: 8)
2014-12-11 10:31 上传
点击文件名下载附件
ä¾ç¨ä»£ç æªåé¨å
赞
0
评论
回复
支持
反对
wamcncn
回答时间:2014-12-11 20:11:07
a0a.1 32b0c
首先配置 I2C
1. 通过 APB 复位 I2C, 使能 I2C 时钟
2. 使能 GPIO 时钟, 配置 GPIO 在 AF OD 模式
3. 使能 I2C ( PE="1")
4. 设置速度参数 FREQ CCR F/S DUTY TRISE
A : CR2.FREQR = 期望的I2C时钟, 一般设置为最大的时钟
确定了 Tck = 1 / FREQ -- 类似于 CANBus 的时间片 Tq
B : PE="0", 设置适当的 CCR F/S DUTY 以及 TRISE, PE="1"
标准模式 Tlow : Thigh = 1 : 1
快速模式 Tlow : Thigh = 2 : 1 ( DUTY="0")
快速模式 Tlow : Thigh = 16 : 9 ( DUTY="1")
以上类似于 CANBus 的 Tseg1, Tseg2
设置 CCR 决定了时钟高低占用的 Tck 个数, 同时确定了时钟的Tbus
标准模式 Tbus = 2 Tck * CCR
快速模式 Tbus = 3 Tck * CCR
快速模式 Tbus = 25 Tck * CCR
首先设置 Tck, 然后根据期望的 TBus 设置 CCR F/S DUTY
假设 Tck = 125ns ( FREQ = 8 Mhz), 期望 100 khz Tbus="10us", 上升时间 Tr = 1000 ns
采用标准模式 F/S = 0 : CCR = Tbus / 2 / Tck = 10 000 / (1+1) / 125 = 40 = 0x28
TRISE = ( Tr / Tck ) + 1 = ( 1000 / 125 ) + 1 = 0x09
5. 配置 I2C 模式 : CR1 = ( ACK="1", SMBUS="0", PE="1" )
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
官网的STM32F429I-Discovery例程中有I2C的例子。
--------------------------------------------------------------
下面的附件截取自STM32F429探索套件官方例程“stm32cubef4\STM32Cube_FW_F4_V1.1.0\Projects\STM32F429I-Discovery\Examples\I2C”
本论坛内的下载地址是:https://www.stmcu.org.cn/document/list/index/category-634
--------------------------------------------------------------
ä¾ç¨ä»£ç æªåé¨å
1. 通过 APB 复位 I2C, 使能 I2C 时钟
2. 使能 GPIO 时钟, 配置 GPIO 在 AF OD 模式
3. 使能 I2C ( PE="1")
4. 设置速度参数 FREQ CCR F/S DUTY TRISE
A : CR2.FREQR = 期望的I2C时钟, 一般设置为最大的时钟
确定了 Tck = 1 / FREQ -- 类似于 CANBus 的时间片 Tq
B : PE="0", 设置适当的 CCR F/S DUTY 以及 TRISE, PE="1"
标准模式 Tlow : Thigh = 1 : 1
快速模式 Tlow : Thigh = 2 : 1 ( DUTY="0")
快速模式 Tlow : Thigh = 16 : 9 ( DUTY="1")
以上类似于 CANBus 的 Tseg1, Tseg2
设置 CCR 决定了时钟高低占用的 Tck 个数, 同时确定了时钟的Tbus
标准模式 Tbus = 2 Tck * CCR
快速模式 Tbus = 3 Tck * CCR
快速模式 Tbus = 25 Tck * CCR
首先设置 Tck, 然后根据期望的 TBus 设置 CCR F/S DUTY
假设 Tck = 125ns ( FREQ = 8 Mhz), 期望 100 khz Tbus="10us", 上升时间 Tr = 1000 ns
采用标准模式 F/S = 0 : CCR = Tbus / 2 / Tck = 10 000 / (1+1) / 125 = 40 = 0x28
TRISE = ( Tr / Tck ) + 1 = ( 1000 / 125 ) + 1 = 0x09
5. 配置 I2C 模式 : CR1 = ( ACK="1", SMBUS="0", PE="1" )