stm8s开发(八) IIC的使用:IIC主机通信!
时间:09-19
来源:互联网
点击:
temp = I2C_SR3;
while((I2C_SR1 & 0x80) == 0); //等待发送寄存器为空
I2C_DR = Address; // 发送要读取的寄存器地址
while((I2C_SR1 & 0x04) == 0); //等待数据发送完成
IIC_Start();
while((I2C_SR1 & 0x01) == 0); //EV5,起始信号已经发送
I2C_DR = (DeviceAddress | 0x01); // 发送iic从器件物理地址,最低位1,读操作
while((I2C_SR1 & 0x02) == 0); //地址已经被发送
temp = I2C_SR1; //清除ADDR标志位
temp = I2C_SR3;
while((I2C_SR1 & 0x40) == 0); //等待接收数据寄存器非空
read_data = I2C_DR;
I2C_CR2 &= 0xfb; //读取数据下,发送stop必须禁止ack,才能释放从机
temp = I2C_SR1; //清零BTF标志位
temp = I2C_DR;
IIC_Stop();
return read_data;
}
附上stm8s在IAR环境下的项目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代码。
http://download.csdn.NET/detail/devintt/9454188
读操作:开始 -> 发送外设地址 -> 开始 ->发送需要读取的寄存器地址 -> 读一个字节 -> (可能再读一个字节) ->。。。 -> 结束
- stm8s开发(六) EXIT的使用:做一个外部中断的按钮!(09-18)
- stm8s开发(五) TIMER的使用:定时!(09-18)
- stm8s开发(四) CLOCK的使用:时钟控制!(09-14)
- stm8s开发(七) SPI的使用:SPI主机通信!(09-19)
- stm8s开发(三) UART的使用:串口通信!(09-14)
- stm8s开发(二) GPIO的使用:点亮LED!(09-13)