stm32 I2C结构体解析

//```typedef struct

//{

// uint32_t I2C_ClockSpeed; //设置SCL时钟频率,此值要低于400 000

// uint16_t I2C_Mode; //指定工作模式,可选IIC模式及SMBUS模式

// uint16_t I2C_DutyCycle; //时钟占空比,可选low/high = 2:0或16:9

// uint16_t I2C_OwnAddress1; //自身的IIC设备地址

// uint16_t I2C_Ack; //使能或者关闭响应,一般是使能

// uint16_t I2C_AcknowledgedAddress; //指定地址长度,可为7或10

//}I2C_InitTypeDef;

//1: uint32_t I2C_ClockSpeed; //设置SCL时钟频率,此值要低于400 000

// (1)设置IIC的传输速率,在调用初始化函数时,函数会根据我们输入的数值经过"运算"后把时钟因子写入到IIC的时钟控制寄存器CCR。而我们写入的这个参数值不得高于400Khz.

// (2)实际上由于CCR寄存器"不能写入小数类型"的时钟因子,影响到SCL的实际频率可能会低于本成员设置的参数值,这时除了通讯会稍微慢点以外,不会对IIC的标准通讯造成其他影响。

//2:uint16_t I2C_Mode; //指定工作模式,可选IIC模式SMBUS模式

//

// (1)选择IIC的使用方式,有IIC模式(IIC_Mode_IIC)和SMBus主、从模式 (IIC_Mode_SMBusHost、IIC_Mode_SMBusDevice)

//

// (2)IIC不需要在此处区分主从模式,直接设置IIC_Mode_IICj即可

//3:uint16_t I2C_DutyCycle; //时钟占空比,可选low/high = 2:0或16:9

// (1)设置IIC的SCL线时钟的占空比。该配置有两个选择,分别为低电平时间比高电平时间为2:1(IIC_DutyCycle_2)和16:9

//(IIC_DutyCycle_16_9).

// (2)其实这两个模式的比例差别并不大,一般要求都不会如此严格,这里随便选就可以了。

//4:uint16_t I2C_OwnAddress1; //自身的IIC设备地址

// (1)配置STM32的IIC设备自己的地址,每个连接到IIC总线上的设备都有一个自己的地址,作为主机也不例外。地址可以设置为"7位或10位(受下面IIC_AcknowledgeAddress成员决定)",只要该地址是IIC总线上唯一的即可。

// (2)STM32的IIC外设"可同时使用两个地址",即同时对两个地址作出响应,这个结构体成员IIC_OwnAddress1配置的是默认的,OAR1寄存器存储的地址,若需要设置第二个地址寄存器OAR2,可使用

//IIC_OwmAddress2Conig函数来配置,OAR2"不支持10位地址"。

//5:uint16_t I2C_Ack; //使能或者关闭响应,一般是使能

// (1)配置IIC应答是否使能,设置位使能则可以发送响应信号,一般配置位允许应答(IIC_Ack_Enable),这是绝大多数遵循IIC标准的设备的通讯要求,改为禁止应答(IIC_Ack_Disable)往往会导致通讯错误。

//6:uint16_t I2C_AcknowledgedAddress; //指定地址长度,可为7或10

// (1)选择IIC的寻址模式是7位或者是10位地址,这需要根据实际连接到IIC总线上设备的地址进行选择,这个成员的配置也影响到IIC_OwnAddress成员,只有这里设置成10位模式时,IIC_OwnAddress1才支持10位地址

// (2)配置完这些结构体成员的值,调用库函数IIC_Init就可以把结构体的配置写入到对应的寄存器中了。

相关推荐
路上有只喵2 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇 11
单片机·嵌入式硬件
不昀3 小时前
开关电源电流互感器怎么选:匝比、采样电阻与复位的计算笔记
单片机·嵌入式硬件·电子元器件
小李不想当小白5 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
youcans_7 小时前
【嵌入式软件AI编程】(3)面向 AI 协同开发的 STM32 硬件信息标准化
人工智能·stm32·嵌入式硬件·ai编程
智者知已应修善业9 小时前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
辰哥单片机设计10 小时前
STM32智能药盒丨2027单片机新项目
stm32·单片机·嵌入式硬件
LCG米21 小时前
STM32硬件CRC外设实测:多项式固定陷阱、CRC-32校验不匹配根因与软件查表法耗时对比落地
stm32·单片机·嵌入式硬件
La Pulga1 天前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
女神下凡1 天前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范