本帖最后由 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绝对好的)
请大家指导
谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我贴错了
应是
//IO操作函数
#define IIC_SCL PEout(3) //SCL
#define IIC_SDA PEout(4) //SDA
#define READ_SDA PEin(4) //输入SDA
//初始化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;
}
请指导
工人焊接的是24C02
不是24LC02
换了就好了!
谢谢大家!
一周热门 更多>