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

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

[复制链接]
lkl0305 发布时间:2014-1-16 11:03
板子早就收到了,但未能及时上传笔记,最近几天学习了STM32F0的I2C硬件编程,整理了一个小的关于I2C结构体初始化中时间寄存器的配置的内容。给大家共享一下,共同学习。
  Y) |5 E% O$ `8 X, I今天先发一部分使用方法,整理好后给大家发一个完整的程序。/ i; f  v* T4 r/ O+ ^
一、问题
& S9 G5 g- S, x) D' P+ _$ ^1 k在使用STM32F0xx处理器操纵硬件I2C时,在初始化GPIO后要进行I2C结构体初始化,其结构体成员为:
2 Y: Y3 N% q6 a$ C7 m# ruint32_t  I2C_Ack                   //允许或禁止应答
2 e* S! |% g8 s( k' Guint32_t  I2C_AcknowledgedAddress   //配置7位或10位地址8 B$ S4 g5 L$ \  V9 R
uint32_t  I2C_AnalogFilter          //允许或禁止模拟滤波器  @$ T- d' ~3 z  q5 l( Q
uint32_t  I2C_DigitalFilter         //允许或禁止
& I) }7 J3 F8 F+ w3 Puint32_t  I2C_Mode                  //设置工作模式
' _$ V! d2 w8 _, w: i+ _' l# G: e, wuint32_t  I2C_OwnAddress1           //设置自身器件地址6 I. j. ]- _: a3 \
uint32_t  I2C_Timing                //设置I2C时间寄存器的值& ?/ N- z4 w& p9 H& V
其中时间寄存器(I2C_TIMINGR_REGISTER)的值的设置需要参考ST公司的配置工具(I2C_Timing_Config_Tool)。/ t; u( O- h: o2 H) K
经过查阅资料,本文说明此工具的使用。
) T9 F% d# N# P/ h5 f$ B二、工具使用
/ E' T0 v& i" L0 O- {+ [3 }% ]ST公司提供了I2C时间寄存器配置工具帮助我们进行相应的配置,工具使用EXCEL结合VBA写成。打开后界面如下图1所示。
8 q3 F0 n; c7 U1 Q% k" a0 I% A' E: X4 Z! U# _
图1 I2C时间寄存器配置工具界面
8 {0 g- L9 n1 {; J; j" S具体含义及使用步骤如下:1 \) P$ g$ ]& E9 o, f3 g
1、选择器件模式:在“Device Mode”中有主模式(Master)和从模式(Slave)两个选项。% n7 k2 X+ Q% G& h
2、配置I2C的速度模式:在“I2C Speed Mode”中有标准模式(Standard mode)、快速模式(Fast mode)和增强快速模式(Fast mode Plus)选项。+ _- N/ c4 q( b! {& E6 L: R
(1)标准模式:最大时钟频率100KHz。
  G9 V$ u! `2 @8 Y( K+ @6 E(2)快速模式:最大时钟频率400KHz。
4 B5 D3 X" Y- \0 `2 h  M6 E8 ~(3)增强快速模式:最大时钟频率1000KHz。. O7 W9 S0 a  s6 X3 w
3、如果在主模式(Master)下,设置I2C时钟频率(单位为KHz)。: G5 i# v2 T! }1 X) C1 m2 p) x
4、设置I2C时钟源频率(I2C Clock Source Frequency)值(单位为KHz)。
" o9 Q3 A6 m/ f& t1 o  ?5、确定是否启用模拟滤波器(Analog Filter Delay)。
2 h4 a' S7 H. o  h7 Y* ^. u- n6、确定是否使用数字滤波器(Coefficient of Digital Filter,不启用数字滤波器此处设置为0;如果启用数字滤波器,应设置为1-15,表示1到15个I2C外设时钟)。
' x0 m" P! b# w* Z6 l8 I, w8 W7、设置I2C的上升时间(Rise Time)。
: T3 d# c3 Z$ _& C8、设置I2C的下降时间(Fall Time)。) T% [; F# g3 r2 ^3 A+ i' L! I
9、单击运行(RUN)按钮。- U) w5 @+ v" L5 d
(1)如果时间寄存器计算完成,则会弹出计算完成提示框,可以使用计算的结果来初始化I2C结构体(双击TIMINGR Register Value可以复制计算出来的值)。
) A0 `4 Z' K* j5 e(2)如果时间寄存器计算失败,则会弹出计算失败提示框,需要修改参数重新计算。0 [. W. F8 c6 W7 E+ i0 N
三、实例
* N. e. t8 K+ l& K若要求STMF0xx处理器I2C工作在:
0 X8 N! y( F. |) ?; ]" l(1)主机标准模式1 B6 \" T& G9 K+ a
(2)100KHz频率
, \3 R# c, u# u# a: [) {/ r; l(3)I2C时钟频率32000KHz7 b- a4 W9 [2 x/ P, c3 [8 \
(4)使用模拟滤波器  E' N0 \. u% a( u8 C. f. W' h% \
(5)不使用数字滤波器  x) ^' m  Q# e  f
(6)上升时间100ns7 [1 h1 M. ?$ f
(7)下降时间10ns2 Z4 |4 T4 {0 d/ T& G3 e8 w2 P
(8)采用7为地址
) d2 L6 D+ x* [9 C/ j(9)允许应答: \$ X- M" k) l
则按图1参数输入,点击运行(RUN)按钮,时间寄存器需要设置的值即可计算出来(0x20D22E37)。
4 F: s: O2 M- S& X/ ?; K则可以用下面代码初始化I2C结构体变量
; t5 o3 K% b: v  E% j, U4 x2 T/*----------------声明I2C初始化结构体----------------------------------*/0 N2 n. S0 w# w2 c) N
I2C_InitTypeDef I2C_InitStructure;
$ ^9 Y! N% S" f0 L6 T/*----------------初始化I2C机构体----------------------------------------*/
; Y* o! R& o4 h# T9 u) w5 HI2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
% `* x& M" Q  jI2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
1 c  z' f8 U2 AI2C_InitStructure.I2C_DigitalFilter = 0x00;  i# b2 B# {  {  R; F
I2C_InitStructure.I2C_OwnAddress1 = 0x00;
. e- l. X% ~) F: r+ n  WI2C_InitStructure.I2C_Ack = I2C_Ack_Enable;4 [8 n+ B$ N7 W) N* n
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  {3 v* H9 v, W8 y( C1 b) [; }0 oI2C_InitStructure.I2C_Timing = 0x20D22E37;  {7 P; k# e5 {; L. l
/*----------------调用 I2C_Init() 函数-------------------------------------*/, C6 G) V+ T9 o! l4 |$ J
I2C_Init(I2C1, &I2C_InitStructure);
I2C Timing.png

I2C_Timing_Configuration_V1.0.0.rar

下载

229.22 KB, 下载次数: 2412

I2C timing configuration tool for STM32F3xxxx and STM32F0xxxx microcontrollers.pdf

下载

391.97 KB, 下载次数: 1501

收藏 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时间配置工具使用

顶!多谢分享~' T! H3 A" D+ B/ f
 
2 p" u* ~/ k6 \继续阅读原创汇总:
- c* ^# S& }9 r$ FSTM32F030探索套件开发日志,中文教程,使用问答80篇
wenting920 回答时间:2015-4-21 13:52:20
mark.....I2C 是内伤,有阴影的飘过……
平山村栋爷 回答时间:2015-10-28 15:19:22
哪位大神有F030K6T6的工程模板啊,求
bjflsk 回答时间:2015-10-28 17:12:25
谢谢分享!' l9 ]. v- S( H* M; H! w
0 p) M' J& ~# v: T) X: c. z

( |; y6 O9 `+ z: M futu.png
; f8 D% S- X7 ~3 R4 x$ }
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
软件怎么下载?3 Z) j9 W$ G6 \) u
laishipeng 回答时间:2017-4-24 17:48:10
laishipeng 发表于 2017-3-21 18:565 F# k1 i, h3 p" g6 Z4 F7 x
软件怎么下载?
6 n, t. E. R% \0 |$ B3 H* f' x) y) b/ K
( h7 d% E  o2 f5 [( |" L
知道了,原来个 Excel文件就是那个软件....) G3 k" r2 i! E0 l+ @
我用的Microsoft Office Excel  版本比较低,一直都弄不出来,还以为就是一个图,
" z- f2 h0 O6 K1 N! x哎,这就坑了...
gdyn2 回答时间:2017-10-9 12:47:37
这个软件怎么用啊?我下载了,点击窗口没响应,动不了额,修改不了参数。是和Excel版本有关吗?那能够正常使用软件的Excel版本是哪个?静待大神解除疑惑
gdyn2 回答时间:2017-10-9 21:42:06
需要安装插件,知道了
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版