你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
官网的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" )