但读写AT24CL02不成功(AT24绝对好的)

2019-07-21 00:27发布

本帖最后由 STM32_2022 于 2015-12-30 17:07 编辑

用原子F407的IIC实验只是将PB8改为PE3,PB9改为PE4

也将

//IO方向设置
#define SDA_IN()  {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}        //PB9输入模式
#define SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;} //PB9输出模式
//IO操作函数         
#define IIC_SCL    PBout(8) //SCL
#define IIC_SDA    PBout(9) //SDA         
#define READ_SDA   PBin(9)  //输入SDA

改为
//IO方向设置
#define SDA_IN()  {GPIOE->MODER&=~(3<<(4*2));GPIOB->MODER|=0<<4*2;}        //PE4输入模式
#define SDA_OUT() {GPIOE->MODER&=~(3<<(4*2));GPIOB->MODER|=1<<4*2;} //PE4输出模式
//IO操作函数         
#define IIC_SCL    PEout(3) //SCL
#define IIC_SDA    PEout(4) //SDA         
#define READ_SDA   PBin(4)  //输入SDA


但读写AT24CL02不成功(AT24绝对好的)

请大家指导
谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
jermy_z
1楼-- · 2019-07-21 05:33
 精彩回答 2  元偷偷看……
STM32_2022
2楼-- · 2019-07-21 05:53
谢谢你!
我贴错了

应是

//IO操作函数         
#define IIC_SCL    PEout(3) //SCL
#define IIC_SDA    PEout(4) //SDA         
#define READ_SDA   PEin(4)  //输入SDA




STM32_2022
3楼-- · 2019-07-21 06:48
本帖最后由 STM32_2022 于 2015-12-30 14:38 编辑

//初始化IIC
void IIC_Init(void)
{                        
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOB时钟

  //GPIOB8,B9初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化
        IIC_SCL=1;
        IIC_SDA=1;
}
也改为
//初始化IIC
void IIC_Init(void)
{                        
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);//使能GPIOE时钟

  //GPIOE3,E4初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化
        IIC_SCL=1;
        IIC_SDA=1;
}

请指导

augustedward
4楼-- · 2019-07-21 07:16
 精彩回答 2  元偷偷看……
STM32_2022
5楼-- · 2019-07-21 11:03
本帖最后由 STM32_2022 于 2015-12-30 17:09 编辑


工人焊接的是24C02
不是24LC02
换了就好了!

谢谢大家!

一周热门 更多>