你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32F030开发日志/评测/笔记】+(1)STM32F0处理器I2C时间配...  

[复制链接]
lkl0305 发布时间:2014-1-16 11:03
板子早就收到了,但未能及时上传笔记,最近几天学习了STM32F0的I2C硬件编程,整理了一个小的关于I2C结构体初始化中时间寄存器的配置的内容。给大家共享一下,共同学习。' N2 y) L% ?+ U9 C" K' a; \- q7 C5 @
今天先发一部分使用方法,整理好后给大家发一个完整的程序。
3 u  m8 o% @. l& B一、问题( P& N3 q) ~% m1 n2 d4 r0 A
在使用STM32F0xx处理器操纵硬件I2C时,在初始化GPIO后要进行I2C结构体初始化,其结构体成员为:
& v% F8 V* H; G2 `& wuint32_t  I2C_Ack                   //允许或禁止应答
: u, y# C. `  Puint32_t  I2C_AcknowledgedAddress   //配置7位或10位地址
# E! N5 k8 [: ]6 p/ E  X9 wuint32_t  I2C_AnalogFilter          //允许或禁止模拟滤波器2 M8 y4 s2 b+ t+ e, T
uint32_t  I2C_DigitalFilter         //允许或禁止) P( u% R" }' u. u- k: {0 h
uint32_t  I2C_Mode                  //设置工作模式
. |3 ]# b. e1 Q% p9 E. o6 Vuint32_t  I2C_OwnAddress1           //设置自身器件地址4 g  L3 c+ ]- W7 F- A# [4 ?; t
uint32_t  I2C_Timing                //设置I2C时间寄存器的值/ H$ C  M; \7 c" q
其中时间寄存器(I2C_TIMINGR_REGISTER)的值的设置需要参考ST公司的配置工具(I2C_Timing_Config_Tool)。3 [- B' i; l" w$ }) I. h4 [  k
经过查阅资料,本文说明此工具的使用。( e2 ?/ U( o  M$ j
二、工具使用
4 ~1 _2 m4 y7 L/ a# U% ^2 ?ST公司提供了I2C时间寄存器配置工具帮助我们进行相应的配置,工具使用EXCEL结合VBA写成。打开后界面如下图1所示。
- T" m- y' J& ]( _5 I1 m' b+ C3 T& X' M0 g- r
图1 I2C时间寄存器配置工具界面
/ \6 ]8 E4 |  b* e2 M  M. n, Z- Z/ S具体含义及使用步骤如下:. G9 l, A0 f0 \- B
1、选择器件模式:在“Device Mode”中有主模式(Master)和从模式(Slave)两个选项。
. ?' V9 b+ k8 u! `2、配置I2C的速度模式:在“I2C Speed Mode”中有标准模式(Standard mode)、快速模式(Fast mode)和增强快速模式(Fast mode Plus)选项。" X: F+ c  v0 j2 Z! S% i1 b
(1)标准模式:最大时钟频率100KHz。3 M/ v; [" S4 R! F  b; s- a
(2)快速模式:最大时钟频率400KHz。, G8 i4 g! h1 t, v4 w
(3)增强快速模式:最大时钟频率1000KHz。. f2 n- @* n* X. X9 {0 t9 B
3、如果在主模式(Master)下,设置I2C时钟频率(单位为KHz)。
7 ~( z  x* u  X4、设置I2C时钟源频率(I2C Clock Source Frequency)值(单位为KHz)。
) h2 Z4 c8 e0 C1 j! \$ q5、确定是否启用模拟滤波器(Analog Filter Delay)。
: G) p" l# p8 F0 [6、确定是否使用数字滤波器(Coefficient of Digital Filter,不启用数字滤波器此处设置为0;如果启用数字滤波器,应设置为1-15,表示1到15个I2C外设时钟)。
, {  M4 |' s: y/ Y5 E! D* x7、设置I2C的上升时间(Rise Time)。6 Y: w9 ]  L8 z7 m  o2 T. k0 K
8、设置I2C的下降时间(Fall Time)。& _2 N0 q) N6 B: c2 h4 X+ }* u
9、单击运行(RUN)按钮。- D) Q  n3 s$ |
(1)如果时间寄存器计算完成,则会弹出计算完成提示框,可以使用计算的结果来初始化I2C结构体(双击TIMINGR Register Value可以复制计算出来的值)。1 H& @/ r4 a- Q" O( G: g
(2)如果时间寄存器计算失败,则会弹出计算失败提示框,需要修改参数重新计算。
; D4 b' v% D( E3 s/ H& [) o* N三、实例/ E# k: i& {: ]3 Z- x5 ^  B9 W
若要求STMF0xx处理器I2C工作在:2 V2 N6 n" e2 s* D" h' W3 f
(1)主机标准模式
- I7 F4 j& m" v(2)100KHz频率: }6 y% V& o+ p% y" ~
(3)I2C时钟频率32000KHz
8 {# o6 `# \  g(4)使用模拟滤波器/ o( G$ B  n% j1 j9 F8 ]
(5)不使用数字滤波器
4 U# q, d% M5 W% [* R6 F5 ](6)上升时间100ns
8 C5 t5 d, ?8 T$ j5 }(7)下降时间10ns, P% J! [+ ^2 h3 b6 i( |
(8)采用7为地址
! J+ K4 o% ]0 v* K(9)允许应答9 |% G2 K$ N3 P- f3 w! V# Q5 h# y
则按图1参数输入,点击运行(RUN)按钮,时间寄存器需要设置的值即可计算出来(0x20D22E37)。
  T+ y+ k5 X$ e, ?5 l$ U% [+ w则可以用下面代码初始化I2C结构体变量" C2 F) Q0 p. e4 H4 U8 G8 d5 X* U
/*----------------声明I2C初始化结构体----------------------------------*/
- X3 q9 J( k0 ^/ C8 P, WI2C_InitTypeDef I2C_InitStructure;
  ?; B% `  c, y/*----------------初始化I2C机构体----------------------------------------*/
1 X4 F& Y* s: E& _) F( HI2C_InitStructure.I2C_Mode = I2C_Mode_I2C;( C1 j# R6 }+ ~6 B2 ?5 N
I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;  F+ {# U8 s' L$ w
I2C_InitStructure.I2C_DigitalFilter = 0x00;6 c( s8 h1 `3 }
I2C_InitStructure.I2C_OwnAddress1 = 0x00;6 n5 b8 b% u' G
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
) l. p0 T, d3 Q0 sI2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
: Y7 R' R4 i: u" p$ ?I2C_InitStructure.I2C_Timing = 0x20D22E37;! }  R; s! s3 @5 s
/*----------------调用 I2C_Init() 函数-------------------------------------*/! W' P) Q2 K: k% O7 _8 Z$ j' I9 z
I2C_Init(I2C1, &I2C_InitStructure);
I2C Timing.png

I2C_Timing_Configuration_V1.0.0.rar

下载

229.22 KB, 下载次数: 2428

I2C timing configuration tool for STM32F3xxxx and STM32F0xxxx microcontrollers.pdf

下载

391.97 KB, 下载次数: 1509

赞 收藏 13 评论30 发布时间:2014-1-16 11:03

举报

30个回答
a93749 回答时间:2017-11-23 19:42:53
I2C时钟频率32000KHz,比较好奇这个是怎么弄出来的。
大海.Leon 回答时间:2017-11-18 22:59:49
你好,可以提供一些STM32F030F4的有关IIC操作的资料吗?我刚入手STM32F030,怎么样学习他的IIC的相关资料呢?先有一个问题有关IIC的从机模式的数据发送,外部主机和STM32F030F4通信一次后,就再也联系不上从机;我想尽快解决这个问题,可以帮到我吗,谢谢。
大海.Leon 回答时间:2017-11-18 22:59:35
你好,可以提供一些STM32F030F4的有关IIC操作的资料吗?我刚入手STM32F030,怎么样学习他的IIC的相关资料呢?先有一个问题有关IIC的从机模式的数据发送,外部主机和STM32F030F4通信一次后,就再也联系不上从机;我想尽快解决这个问题,可以帮到我吗,谢谢。
沐紫 回答时间:2014-1-20 08:50:38

RE:【STM32F030开发日志/评测/笔记】+(1)STM32F0处理器I2C时间配置工具使用

顶!多谢分享~
) f$ P$ I. ]/ H 
0 [; z8 q  d, ]5 s. Z! c4 B继续阅读原创汇总:- `# D( O1 S; b, I
STM32F030探索套件开发日志,中文教程,使用问答80篇
wenting920 回答时间:2015-4-21 13:52:20
mark.....I2C 是内伤,有阴影的飘过……
平山村栋爷 回答时间:2015-10-28 15:19:22
哪位大神有F030K6T6的工程模板啊,求
bjflsk 回答时间:2015-10-28 17:12:25
谢谢分享!
$ }$ v# E0 k# E0 z  e& W0 G3 h: B6 N
# X, D2 J& B/ y0 Z! z
futu.png ' R' @$ f, s; ]; p5 B. C
yuankunli 回答时间:2016-8-9 20:10:19
让我困惑了一天 刚才STM32F1转而使用F0,这个时间参数都不知道怎么计算
Springyoung 回答时间:2016-9-7 15:01:19
多谢大神分享经验,很有用
小牛555 回答时间:2017-3-10 15:17:36
感谢楼主,通过这个帖子解决我一个大问题。
laishipeng 回答时间:2017-3-21 18:56:51
软件怎么下载?  P) a& }& X, {/ q
laishipeng 回答时间:2017-4-24 17:48:10
laishipeng 发表于 2017-3-21 18:56( L! a: B$ a3 y) ^0 S5 s
软件怎么下载?
: S& |2 x2 I& f5 l! E
. X. E; J/ @7 w# J# p
知道了,原来个 Excel文件就是那个软件..../ d6 p# T% v; u  X* K& @, x
我用的Microsoft Office Excel  版本比较低,一直都弄不出来,还以为就是一个图,
$ @, s4 P; H8 f! H& z哎,这就坑了...
gdyn2 回答时间:2017-10-9 12:47:37
这个软件怎么用啊?我下载了,点击窗口没响应,动不了额,修改不了参数。是和Excel版本有关吗?那能够正常使用软件的Excel版本是哪个?静待大神解除疑惑
gdyn2 回答时间:2017-10-9 21:42:06
需要安装插件,知道了
123下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版