STM32F4学习(五)——SPI和IIC
来源:互联网 发布:ntfs for mac 未安装 编辑:程序博客网 时间:2024/06/02 07:04
I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,stm32的I2C可以使用DMA方式操作。
这里是用STM32与EEPROM的通讯,具体步骤如下:
1、配置I/O端口,确定并配置I2C的模式,使能GPIO和I2C时钟。
/* * 函数名: I2C_GPIO_Config * 描述 : 配置I2C1的I/O * 输入 : 无 * 输出 : 无 */ static void I2C_GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStructure;/* 使能与I2C1有关的时钟 */RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); /* PB6-I2C1_SCL、PB7-I2C1_SDA*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 开漏输出 GPIO_Init(GPIOB, &GPIO_InitStructure);}2、写:
检测SDA是否空闲;
->按I2C协议发出起始信号;
->发出7位器件地址和写模式;
->要写入的存储区首地址;
->有页写入方式或字节写入方式写入数据;
每个操作之后要检测“事件”确定是否成功。写完后检测EEPROM是否进入standby状态。
3、读:
检测SDA是否空闲;
->按I2C协议发出起始信号;
->发出7位器件地址和写模式(伪写);
->发出要读取的存储区首地址;
->重发起始信号;
->发出7位器件地址和读模式;
->接收数据;
每个操作之后要检测“时间”确定是否成功。
SPI在LIS302DL的时候在说明。
1 1
- STM32F4学习(五)——SPI和IIC
- STM32F4——IIC总线与SPI总线
- STM8S学习01——SPI&IIC
- IIC和SPI总线
- IIC和SPI
- IIC和SPI通信
- SPI和IIC和Uart
- IIC和SPI总线协议
- 关于IIC和SPI总线
- IIC和SPI的区别
- 关于IIC和SPI总线
- 关于IIC和SPI总线
- SPI、UART和IIC区别
- IIC和SPI总线比较
- SPI和IIC通信区别
- 关于IIC和SPI总线
- 关于IIC和SPI总线
- 硬件相关基础知识1(IIC和SPI的区别)
- (二)、HighCharts图表js库结构介绍及下载
- 关于Android AVD的方向键DPAD不能用的问题
- (三)、使用HighCharts创建第一个图表实例
- (四)、读取数据库数据并在HighCharts上显示
- oracle 查询某段时间的sql
- STM32F4学习(五)——SPI和IIC
- mqtt协议实现安卓的推送客户端实现
- LTE Measurement Gap
- MongoDB增删改查(命令行、java api)
- Java编译问题
- Jquery Mobile学习教程之预加载与页面缓存
- listview去除底边黑色框线,去除拖动时黑屏
- 使用Linux命令行测试网速
- SPOJ PT07Y