嵌入式学习--step9 IIC学习
来源:互联网 发布:淘宝画师招聘 编辑:程序博客网 时间:2024/06/06 03:20
介绍如何使用STM32F4的普通IO口模拟IIC时序,并实现和24C02之间的双向通信,在本章的实验中我们将使用STM32F4的普通IO口模拟IIC时序,来实现24C02的读写,并将结果显示在TFTLCD模块上。
IIC简介:
IIC总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,由数据线SDA和时钟SCL构成的串行总线,可发送和接受数据,在CPU与被控IC之间,IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。
IIC总线在传送数据过程中共有三种类型信号,分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
1、空闲状态,SDA与SCL两条信号线同时处于高电平,规定为空闲状态。
2、开始信号,当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
3、停止信号,当SCL为高期间,SDA由低到高的跳变。
4、应答信号,接收器在第9个时钟脉冲之前的低电平器件将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。
5、数据的有效性,数据在SCL的上升沿到来之前就需要准备好,并在下降沿到来之前必须稳定。
6、数据传输
——————-
**开发板板载的EEPROM芯片型号为24C02,该芯片的总容量是256个字节,该芯片通过IIC总线与外部链接,我们这次实验通过STM32F4来实现24C02的读写。**
——————-
用软件模拟IIC,最大的好处就是方便移植,同一个代码兼容所有MCU,任何一个单片机只要有IO口,就可以很快移植过去,而且不需要特定的IO口。
我们通过GPIO来模拟IIC,myiic.c 文件用来存放iic底层驱动,新增了24cxx.c文件用来存放24C02的底层驱动。EEPROM(24C02)
上面代码是IIC驱动代码,实现主要包括IIC的初始化(IO口)、IIC开始、IIC结束、ACK、IIC读写等功能,在其他函数里面,只需要调用相关的IIC函数就可以和外部IIC器件通信了,这里不限于24C02,可以用于在任何IIC设备上。
- 嵌入式学习--step9 IIC学习
- iic学习
- IIC学习
- 嵌入式arm学习总结(三)--IIC 基于AT24C02
- IIC总线学习总结
- IIC学习笔记
- iic 学习1
- 关于IIC的学习
- IIC驱动学习
- STM32 GPIO IIC学习
- STM32 IIC的学习
- IIC通讯协议学习
- cortex_m3_stm32嵌入式学习笔记(二十):IIC实验(I2C串行总线)
- Linux IIC驱动学习实例
- 基于stm32f103zet6的IIC学习
- 学习IIC(I2C)原理
- 关于STM32 的 硬件IIC和 模拟IIC理解学习
- 嵌入式学习
- Asp.net mvc 动作方法中 调用 另一个控制器的动作方法
- 好的用户界面-界面设计的一些技巧
- 线程之ThreadLocal
- Android自定义捕获Application全局异常
- untiy 简单的shader应用
- 嵌入式学习--step9 IIC学习
- 在 Mac 端获取【网易云音乐】付费音乐的播放地址(注意下载要坚决支持正版!)
- python pygame 复刻小游戏 躲避方块
- 【杭电oj2033】人见人爱A+B
- android BLE蓝牙
- go-并发
- 函数重载的本质
- jquery如何获取隐藏span的值
- 【杭电oj2032】杨辉三角