论坛元老
 
- 积分
- 5891
- 金钱
- 5891
- 注册时间
- 2018-7-24
- 在线时间
- 2230 小时
|
3金钱
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 输出高
}
一直显示检查失败,求大神指点,谢谢了!!
|
最佳答案
查看完整内容[请看2#楼]
我用的AT24C16调了半天没弄好,后来是板子画的有问题,你先看WP脚接地了吗,然后SDA脚配置开漏再加上上拉电阻
|