本人初次使用PIC单片机做一个项目,使用16F877A单片机I2c接口时遇到如下问题:
i2c接口输出的起始信号和停止信号不正确(红线圈出部分,前者是stop信号,后者是下一次发送的起始信号)。
起始信号根本不是SCL 高电平时SDA产生一个下降沿沿,停止信号也不是在SCL高电平时产生一个上升沿。
而我在代码中完全是按照datasheet中的步骤,通过分别设置寄存器SSPCON2的SEN位和PEN位,产生的,为什么信号会不对呢?
(图片是我对一个存储芯片的地址0xa0做循环发送,然后用示波器捕捉到的。)
补充: 我配置的是主机模式,100K的波特率。
希望在这方面的大虾们不吝赐教,先谢谢了! |