
板子早就收到了,但未能及时上传笔记,最近几天学习了STM32F0的I2C硬件编程,整理了一个小的关于I2C结构体初始化中时间寄存器的配置的内容。给大家共享一下,共同学习。 今天先发一部分使用方法,整理好后给大家发一个完整的程序。 一、问题 在使用STM32F0xx处理器操纵硬件I2C时,在初始化GPIO后要进行I2C结构体初始化,其结构体成员为: uint32_t I2C_Ack //允许或禁止应答 uint32_t I2C_AcknowledgedAddress //配置7位或10位地址 uint32_t I2C_AnalogFilter //允许或禁止模拟滤波器 uint32_t I2C_DigitalFilter //允许或禁止 uint32_t I2C_Mode //设置工作模式 uint32_t I2C_OwnAddress1 //设置自身器件地址 uint32_t I2C_Timing //设置I2C时间寄存器的值 其中时间寄存器(I2C_TIMINGR_REGISTER)的值的设置需要参考ST公司的配置工具(I2C_Timing_Config_Tool)。 经过查阅资料,本文说明此工具的使用。 二、工具使用 ST公司提供了I2C时间寄存器配置工具帮助我们进行相应的配置,工具使用EXCEL结合VBA写成。打开后界面如下图1所示。 图1 I2C时间寄存器配置工具界面 具体含义及使用步骤如下: 1、选择器件模式:在“Device Mode”中有主模式(Master)和从模式(Slave)两个选项。 2、配置I2C的速度模式:在“I2C Speed Mode”中有标准模式(Standard mode)、快速模式(Fast mode)和增强快速模式(Fast mode Plus)选项。 (1)标准模式:最大时钟频率100KHz。 (2)快速模式:最大时钟频率400KHz。 (3)增强快速模式:最大时钟频率1000KHz。 3、如果在主模式(Master)下,设置I2C时钟频率(单位为KHz)。 4、设置I2C时钟源频率(I2C Clock Source Frequency)值(单位为KHz)。 5、确定是否启用模拟滤波器(Analog Filter Delay)。 6、确定是否使用数字滤波器(Coefficient of Digital Filter,不启用数字滤波器此处设置为0;如果启用数字滤波器,应设置为1-15,表示1到15个I2C外设时钟)。 7、设置I2C的上升时间(Rise Time)。 8、设置I2C的下降时间(Fall Time)。 9、单击运行(RUN)按钮。 (1)如果时间寄存器计算完成,则会弹出计算完成提示框,可以使用计算的结果来初始化I2C结构体(双击TIMINGR Register Value可以复制计算出来的值)。 (2)如果时间寄存器计算失败,则会弹出计算失败提示框,需要修改参数重新计算。 三、实例 若要求STMF0xx处理器I2C工作在: (1)主机标准模式 (2)100KHz频率 (3)I2C时钟频率32000KHz (4)使用模拟滤波器 (5)不使用数字滤波器 (6)上升时间100ns (7)下降时间10ns (8)采用7为地址 (9)允许应答 则按图1参数输入,点击运行(RUN)按钮,时间寄存器需要设置的值即可计算出来(0x20D22E37)。 则可以用下面代码初始化I2C结构体变量 /*----------------声明I2C初始化结构体----------------------------------*/ I2C_InitTypeDef I2C_InitStructure; /*----------------初始化I2C机构体----------------------------------------*/ I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable; I2C_InitStructure.I2C_DigitalFilter = 0x00; I2C_InitStructure.I2C_OwnAddress1 = 0x00; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_Timing = 0x20D22E37; /*----------------调用 I2C_Init() 函数-------------------------------------*/ I2C_Init(I2C1, &I2C_InitStructure); |
RE:【STM32F030开发日志/评测/笔记】+(1)STM32F0处理器I2C时间配置工具使用
继续阅读原创汇总:
STM32F030探索套件开发日志,中文教程,使用问答80篇
知道了,原来个 Excel文件就是那个软件....
我用的Microsoft Office Excel 版本比较低,一直都弄不出来,还以为就是一个图,
哎,这就坑了...