开发笔记
关键词 PCA9548A I2C Switch 拓展 1 转 8 个 I2C 通道
数显屏
串口通信
EEPROM
1、 PCA9548A
从机地址为 1110 A2 A1 A0 W/R
A2 A1 A0 由硬件或输出高低电平决定
写操作时最后一位为 0,读时为 1。
如,A2A1A0 都输出低电平。
写地址为 0XE0。
读地址为 0XE1。
2、 EEPROM
写地址:0XA0
读地址:0XA1
3 关于 STM32 CPU +PCA9548A + 8 个 EEPROM
CPU 写操作:
// 时 序 : Start-1110A2A1A0-ACK-Channel selectB7~B0---ACK---Stop- Repeat start --- EEPROM
_SLAVE_ADRES_W Address--ACK--DATA---ACK---Stop
void E2PROM_Writ_Page(UINT8 pageNum ,UINT8 *data,UINT8 Lenth)
{
UINT8 adress = 0;
if(pageNum > 31)return;
adress = pageNum * 8;
Drv_I2C_Start();
Drv_I2C_SendBytes(PCA9548A _SLAVE_ADRESS_W);
Drv_I2C_RcvAck();
Drv_I2C_SendBytes(IIC_Channel);
Drv_I2C_RcvAck();
Drv_I2C_Stop();
Drv_I2C_Start();
Drv_I2C_SendBytes(EEPROM _SLAVE_ADRES_W);
Drv_I2C_RcvAck();
Drv_I2C_SendBytes(adress);
Drv_I2C_RcvAck();
for(UINT8 i = 0 ; i < Lenth; i++)
{
Drv_I2C_SendBytes(data[i]);
Drv_I2C_RcvAck();
}
Drv_I2C_Stop();
评论3