M0单片机I2C与EEPROM通信程序调试

1.现象:收不到从机返回的ACK信号。

2.解决:

①示波器查看波形,发现SDA和SCL波形一致,推测短路,重新焊接。

②SDA波形正常,SCL始终高电平,推测初始化不完全,补增初始化程序。

//IIC初始化
void IIC_Init(void)
{
//GPIO_I2C_Init();
GPIO_Init(SDA_PORT, SDA_PIN,GPIO_DIR_OUTPUT,GPIO_PULL_NONE);
GPIO_Init(SCL_PORT, SCL_PIN,GPIO_DIR_OUTPUT,GPIO_PULL_NONE);
SCL_Set_H();
SDA_Set_H();

//PD0 PD1 enable MUX mode
IOCTRLA_SFRS->PDMUX.PD0MODE = 0;//Test mux out0
IOCTRLA_SFRS->PDMUX.PD1MODE = 0;//Test mux out1
}

③读取信号成功啦。

 

参考资料:

编写M0单片机IIC协议主机控制EEPROM 24C08代码 - 纳米搜索

示波器分析I2C时序波形图_gd32 i2c示波器波形-CSDN博客

如何利用示波器解析I2C数据_怎么设置示波器抓取i2c波形-CSDN博客

 

posted @ 2025-02-05 17:43  饭团团1号  阅读(11)  评论(0编辑  收藏  举报