各种纠结啊,在51上可以运行,到stm32上就不可以了。对比了一下,和demo对比一下,发现时单字节写入和读取上的问题。程序贴出来。各位大大,帮我看看啊。
#include "24C02.h"
void write_byte(u8 add,u8 dat)
{
Start_IIC();
Write_byte_IIC(0Xa0);
I2C_Ack();
Write_byte_IIC(add);
I2C_Ack();
Write_byte_IIC(dat);
I2C_Ack();
Stop_IIC();
}
u8 read_byte(u8 add)
{
u8 dat;
Start_IIC();
Write_byte_IIC(0Xa0);
I2C_Ack();
Write_byte_IIC(add);
I2C_Ack();
Start_IIC();
Write_byte_IIC(0Xa1);
I2C_Ack();
dat=Read_byte();
I2C_NoAck();
Stop_IIC();
return dat;
}
[/td][/tr][/table]
<div class="pattl"> |