硬件I2C的从机接收数据一般分为三类:中断接收、DMA接收和轮询接收; 在实际项目中中断接收和DMA接收比较常见,因为不用占据CPU资源,有数据来了才响应接收【需要CPU具有硬件I2C功能】。 而轮询接收数据很占用CPU资源,一般是CPU没有硬件I2C资源,处理的数据不多的情况下。 硬件I2C从机配置I2C这一块比较简单,和上面主机类...
Ⅴ、硬件I2C从机中断接收数据 硬件I2C的从机接收数据一般分为三类:中断接收、DMA接收和轮询接收; 在实际项目中中断接收和DMA接收比较常见,因为不用占据CPU资源,有数据来了才响应接收【需要CPU具有硬件I2C功能】。 而轮询接收数据很占用CPU资源,一般是CPU没有硬件I2C资源,处理的数据不多的情况下。 硬件I2C从机配置I2C...
该函数位于i2c_ee.c文件下面; 1.使用硬件I2C:GPIO_Mode_AF_OD复用开漏模式 2.由于使用硬件I2C,不像使用模拟I2C使用IO操作,所以这里引脚定义的比较“死”GPIO_Pin_6 | GPIO_Pin_7。 如果你使用I2C2或者引脚映射,这里的引脚也要跟着改变。 3.I2C配置 该函数位于i2c_ee.c文件下面; 这个函数才是本文的重点: ...
该函数位于i2c_ee.c文件下面; 这个函数才是本文的重点: 1.I2C模式:I2C_Mode = I2C_Mode_I2C; 硬件有多种模式: I2C_Mode_I2C: I2C模式 I2C_Mode_SMBusDevice: SMBus设备(丛机)模式 I2C_Mode_SMBusHost: 主机模式 2.I2C占空比:I2C_DutyCycle = I2C_DutyCycle_2; 这个参数在快速I2C模式下有效,也就是速...
/* I2C ENGC mask */ #define CR1_ENGC_Set ((uint16_t)0x0040) #define CR1_ENGC_Reset ((uint16_t)0xFFBF) /* I2C SWRST mask */ #define CR1_SWRST_Set ((uint16_t)0x8000) #define CR1_SWRST_Reset ((uint16_t)0x7FFF) /* I2C PEC mask */ ...
从结构框图上看,STM32的外设有串口、定时器、IO口、FSMC、SDIO、SPI、I2C等,这些外设按照速度的不同,分别挂载到AHB、APB2、APB1这三条总线上。 寄存器 什么是寄存器?寄存器是内置于各个IP外设中,是一种用于配置外设功能的存储器,并且有想对应的地址。一切库的封装始于映射。
第二功能输出状态:什么是第二功能,即有些IO口存在复用的情况,复用的功能即被称作第二功能,输出配置如上所示,当IO口被配置为输出时,其输入被默认配置为输入浮空状态,以I2C为例,I2C从机,不仅仅要检测SDA的状态收取数据,还要可以输出状态发送数据,所以第二功能基本上配置为输出,使其即可输入检测,也可输出,输出方式...
5.3 内部集成电路总线接口 I²C GD32E103和STM32F10x的I²C都支持标速(最高100KHz)和快速(最高400KHz),同时GD32E103可支持高速模式(最高 1MHz),要使能高速模式,需将 I2C_FMPCFG 寄存器的 FMPEN 置 1。具体功能以及寄存器设置,请用户参考 GD32E10x 用户手册。
最高100KHz)和快速(最高400KHz),同时GD32E103可支持高速模式(最高1MHz),要使能高速模式,需将I2C...
5.3 内部集成电路总线接口 I²C GD32E103和STM32F10x的I²C都支持标速(最高100KHz)和快速(最高400KHz),同时GD32E103可支持高速模式(最高 1MHz),要使能高速模式,需将 I2C_FMPCFG 寄存器的 FMPEN 置 1。具体功能以及寄存器设置,请用户参考 GD32E10x 用户手册。