9.I2C读写数据—基于CT117E开发板的STM32库函数编程
2017-01-26 10:50
316 查看
I2C 简介IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。 它是由数据线 SDA 和时钟 SCL 构成的串行总线, 可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。应答信号: 接收数据的 IC 在接收到 8bit 数据后, 向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要.( IIC 总线时序图)参考CT117E开发板原理图 I2C具体的设置参考其驱动程序,这里分析其在主函数中的用法。1.读数据
uint8_t x24c02_read(uint8_t address)
{
unsigned char val;
I2CStart();
I2CSendByte(0xa0);
I2CWaitAck();
I2CSendByte(address);
I2CWaitAck();
I2CStart();
I2CSendByte(0xa1);
I2CWaitAck();
val = I2CReceiveByte();
I2CWaitAck();
I2CStop();
return(val);
}2.写数据
void x24c02_write(unsigned char address,unsigned char info)
{
I2CStart();
I2CSendByte(0xa0);
I2CWaitAck();
I2CSendByte(address);
I2CWaitAck();
I2CSendByte(info);
I2CWaitAck();
I2CStop();
}
相关文章推荐
- 11.通用定时器—基于CT117E开发板的STM32库函数编程
- 12.PWM—基于CT117E开发板的STM32库函数编程
- 2.系统延时函数—基于CT117E开发板的STM32库函数编程
- 14.知识点总结归纳—基于CT117E开发板的STM32库函数编程
- 5.LCD驱动调用方法以及按键函数编写—基于CT117E开发板的STM32库函数编程
- 6.外部中断—基于CT117E开发板的STM32库函数编程
- 8.内部温度传感器的使用—基于CT117E开发板的STM32库函数编程
- 3.串口操作—基于CT117E开发板的STM32库函数编程
- 10.RTC内部时钟—基于CT117E开发板的STM32库函数编程
- 7.AD转换—基于CT117E开发板的STM32库函数编程
- 基于STM32CT117E竞赛板(STM32f103RB) 使用USART串口发送数据
- 1.点亮LED—基于CT117E开发板的STM32库函数编程
- Linux驱动编程--基于I2C子系统的I2C驱动的Makefile
- Linux驱动编程--基于I2C子系统的I2C驱动
- Linux驱动编程--基于I2C子系统的I2C驱动
- Linux驱动编程--基于I2C子系统的I2C驱动
- Linux驱动编程--基于I2C子系统的I2C驱动的Makefile
- Linux驱动编程--基于I2C子系统的I2C驱动
- 基于winform的二进制图片数据的存取(用于数据库照片的读写处理)
- 基于smdk2410 开发板u-boot-1.2.0 nand flash读写操作及其命令的实现(续)