u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(16383);//避免每次开机都写AT24CXX
if(temp==0X55)return 0;
else//排除第一次初始化的情况
{
AT24CXX_WriteOneByte(16383,0X55);
temp=AT24CXX_ReadOneByte(16383);
if(temp==0X55)return 0;
}
return 1;
}
#define EE_TYPE AT24C128
这个两个地方改了,用的是PC8和PC9
//IO方向设置
#define SDA_IN() {GPIOC->CRH&=0XFFFFFFF0;GPIOC->CRH|=(u32)1<<3;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFFFFF0;GPIOC->CRH|=(u32)3<<0;}
//IO操作函数
#define IIC_SCL PCout(9) //SCL
#define IIC_SDA PCout(8) //SDA
//初始化IIC
void IIC_Init(void)
{
RCC->APB2ENR|=1<<4; //先使能外设IO PORTC时钟
GPIOC->CRH&=0XFFFFFF00; //PC8/9 推挽输出
GPIOC->CRH|=0X00000033;
GPIOC->ODR|=3<<8; //PC8/9 输出高
}
一直显示检查失败,求大神指点,谢谢了!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>