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

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

[复制链接]
lkl0305 发布时间:2014-1-16 11:03
板子早就收到了,但未能及时上传笔记,最近几天学习了STM32F0的I2C硬件编程,整理了一个小的关于I2C结构体初始化中时间寄存器的配置的内容。给大家共享一下,共同学习。
& H. I6 x6 w) L9 F: Y" c今天先发一部分使用方法,整理好后给大家发一个完整的程序。# f* _* E1 `) |8 A& T
一、问题
3 c- i9 t4 c' ~  Q, N在使用STM32F0xx处理器操纵硬件I2C时,在初始化GPIO后要进行I2C结构体初始化,其结构体成员为:
" E$ ]5 y" ~9 luint32_t  I2C_Ack                   //允许或禁止应答! R# z# {& W4 ~# {9 Y. Y
uint32_t  I2C_AcknowledgedAddress   //配置7位或10位地址
. p8 y: E: @; _$ J0 |# U0 ~uint32_t  I2C_AnalogFilter          //允许或禁止模拟滤波器9 X* A  @& ~6 i# h; V& m
uint32_t  I2C_DigitalFilter         //允许或禁止
3 S  o! r+ K# B( N0 `uint32_t  I2C_Mode                  //设置工作模式
/ ?; f; T8 u2 [4 ~! p  B* x5 muint32_t  I2C_OwnAddress1           //设置自身器件地址, N  z7 z' B; l, g
uint32_t  I2C_Timing                //设置I2C时间寄存器的值
, e" X7 F* M5 Q" N4 q, E4 ?其中时间寄存器(I2C_TIMINGR_REGISTER)的值的设置需要参考ST公司的配置工具(I2C_Timing_Config_Tool)。6 h: ]# c4 f% u& V5 D
经过查阅资料,本文说明此工具的使用。
0 _( Z+ N5 g  h0 B2 b二、工具使用
8 Z' ], \! J; W2 d: R& l, NST公司提供了I2C时间寄存器配置工具帮助我们进行相应的配置,工具使用EXCEL结合VBA写成。打开后界面如下图1所示。: F9 @* @  b% _1 x" V# ~
# q; ]8 S9 O' R2 R# T
图1 I2C时间寄存器配置工具界面8 b5 |+ Z* B; J! s, V" l7 j# ~+ t
具体含义及使用步骤如下:" ?' x6 {. B: Z3 n* ~2 j& B
1、选择器件模式:在“Device Mode”中有主模式(Master)和从模式(Slave)两个选项。
, x' f/ m& n* B2 n2、配置I2C的速度模式:在“I2C Speed Mode”中有标准模式(Standard mode)、快速模式(Fast mode)和增强快速模式(Fast mode Plus)选项。$ }+ ?& `7 b- o& R4 V
(1)标准模式:最大时钟频率100KHz。. C8 V- s. v0 B
(2)快速模式:最大时钟频率400KHz。( Y0 ^# U. J  G+ w. m' i6 ^
(3)增强快速模式:最大时钟频率1000KHz。
% `) a4 m, L! }  V3、如果在主模式(Master)下,设置I2C时钟频率(单位为KHz)。
6 Q- i2 V$ X. y) \; I9 Q& T0 j0 O% Z4、设置I2C时钟源频率(I2C Clock Source Frequency)值(单位为KHz)。
; B& l/ `5 N: Q, E5、确定是否启用模拟滤波器(Analog Filter Delay)。
( ]$ W2 t5 F% f: n; }6、确定是否使用数字滤波器(Coefficient of Digital Filter,不启用数字滤波器此处设置为0;如果启用数字滤波器,应设置为1-15,表示1到15个I2C外设时钟)。
* e) z3 G1 u- |% H2 S7、设置I2C的上升时间(Rise Time)。+ F9 v# v5 P, J5 c% l; f
8、设置I2C的下降时间(Fall Time)。
$ F- l: v2 P3 d9 h; R( _9、单击运行(RUN)按钮。
$ i1 n' w+ f+ N/ p+ x* B0 V(1)如果时间寄存器计算完成,则会弹出计算完成提示框,可以使用计算的结果来初始化I2C结构体(双击TIMINGR Register Value可以复制计算出来的值)。6 C" z* D1 ^* M! M
(2)如果时间寄存器计算失败,则会弹出计算失败提示框,需要修改参数重新计算。
, y: \7 D  H  [7 q$ O三、实例
; o  `! ?- H& T6 E! a; R若要求STMF0xx处理器I2C工作在:
" N$ Q+ E0 _3 G$ q( g8 Y- ^(1)主机标准模式
; x" |: h  h. Q3 g(2)100KHz频率) I( k2 A" |1 Q( ^
(3)I2C时钟频率32000KHz
- N" l$ \8 y. [9 _. c- f0 ^(4)使用模拟滤波器1 K* n8 n+ v$ u% ?1 @! _( ?7 {6 n% k8 n$ V
(5)不使用数字滤波器
' `: Z2 m6 v8 w& N(6)上升时间100ns
& D! q% H/ U/ a% ^(7)下降时间10ns
; n! I- t0 O2 ~  z/ ~! X(8)采用7为地址
* d6 C0 M6 ^7 n" V1 c(9)允许应答
6 L* E" X+ \0 p4 n6 _则按图1参数输入,点击运行(RUN)按钮,时间寄存器需要设置的值即可计算出来(0x20D22E37)。
" K% C) H7 e- z! Z8 ^则可以用下面代码初始化I2C结构体变量
- i& b( f3 M7 Q0 Q- v/*----------------声明I2C初始化结构体----------------------------------*/# b: w5 @0 |# ]  K  l$ W& ]
I2C_InitTypeDef I2C_InitStructure;
- X! E# b6 j2 c  C/*----------------初始化I2C机构体----------------------------------------*/5 E+ z+ }7 E4 o
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;6 w- b1 e4 e: }# f# Z4 X/ A
I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
2 d- w9 a+ S4 ]) x) lI2C_InitStructure.I2C_DigitalFilter = 0x00;0 W9 m# V/ j  o5 T* b2 j' I( o
I2C_InitStructure.I2C_OwnAddress1 = 0x00;3 @  r" f) b& E
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;+ b+ L2 Q' V% c8 x
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
# a1 d% A+ A5 bI2C_InitStructure.I2C_Timing = 0x20D22E37;
. e' s/ F% }1 s# s# k2 c8 u/*----------------调用 I2C_Init() 函数-------------------------------------*/
/ r0 w) b. B; ~6 m6 YI2C_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时间配置工具使用

顶!多谢分享~
. Y' p  b' [1 x4 l & u* k0 K/ G+ r+ v) d, S
继续阅读原创汇总:" P, R. Z8 @( P; [4 \
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
谢谢分享!+ b; T: n$ d% ]$ x4 M; w2 Y% q

( Z& A( g  @7 Z1 D
# g- U( D8 l4 t9 A. `+ N futu.png + |1 d) N$ h6 [/ B3 s4 r
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
软件怎么下载?1 D! j2 f, T2 q+ P3 ~8 v1 E- N
laishipeng 回答时间:2017-4-24 17:48:10
laishipeng 发表于 2017-3-21 18:56
9 f  `( |6 g7 K- Y/ ^/ K- a. m软件怎么下载?

& ]1 a5 t7 z4 A+ S0 _3 z
; s( l% U5 ]$ U1 r' E知道了,原来个 Excel文件就是那个软件....! X+ F2 x& Q. t1 e) O2 b3 J
我用的Microsoft Office Excel  版本比较低,一直都弄不出来,还以为就是一个图,
5 L( L# K: d) R" n- N哎,这就坑了...
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 手机版