上海网站 备案,ppt素材模板免费下载,做网站能用假图片吗,iis怎么设置网站本文重点叙述如何使用芯片自带的 IIC 外设#xff0c;即硬件 IIC#xff0c;实现 IIC 通信。文章《IIC通信基础_cpu的iic通信-CSDN博客》 中#xff0c;叙述了软件 IIC 通信和硬件 IIC 通信的区别#xff0c; 并且重点叙述了 IIC 的通信协议。在使用软件进行 IIC 通信时即硬件 IIC实现 IIC 通信。文章《IIC通信基础_cpu的iic通信-CSDN博客》 中叙述了软件 IIC 通信和硬件 IIC 通信的区别 并且重点叙述了 IIC 的通信协议。在使用软件进行 IIC 通信时需要用程序代码控制IO口按照通信协议的要求做出动作程序代码是比较繁琐的在使用芯片自带的 IIC 外设即硬件 IIC 进行通信时我们可以直接调用并配置相关的库函数来操作 IIC 的外设而不必关注具体通信协议因为 IIC 外设的工作方式就是基于通信协议的所以我们只需要让他工作起来就可以。
下文就是用户手册中的 IIC 外设的使用方法以STM32F407为例
1、声明I2C_HandleTypeDef句柄结构体
2、通过调用HAL_I2C_MspInit()函数初始化I2C底层资源包括下述几个方面
a、使能I2C接口时钟
b、I2C引脚配置包括
——使能I2C的IO引脚时钟
——配置I2C引脚的复用功能为开漏模式
c、NVIC 配置如果需要使用中断程序包括
——配置I2C中断优先级
——使能NVIC I2C IRQ 通道
d、DMA配置如果需要使用DMA程序包括
——声明DMA_HandleTypeDef句柄结构体为了发送或接受数据流
——使能DMA接口时钟使用
——配置DMA句柄参数
——配置DMA的Tx或Rx的数据流
——将初始化的DMA句柄与hi2c DMA Tx或Rx句柄关联
——配置优先级并使能在DMA的Tx或Rx数据流上的传输完整中断
3、配置通信速率、占空比、寻址方式、自己地址1、双寻址模式、自己地址2、常规呼叫和非拉伸模式在hi2c Init 结构中
4、初始化I2C寄存器通过调用HAL_I2C_Init()也配置底层硬件GPIO、时钟、NVIC等通过调用HAL_I2C_MspInit(hi2c)
5、为了检查是否目标设备准备好通信使用函数HAL_I2C_IsDeviceReady()
6、对于I2C IO和IO MEM操作在这个驱动里可以利用三种操作模式
轮询模式IO操作
轮询模式IO MEM 操作
中断模式IO操作
中断模式IO MEM操作
DMA模式IO操作
DMA模式IO MEM操作
原文如下