我用原子的IIC例程,更改了SDA和CLK两个引脚,就无法读写AT24C16了

2019-07-21 08:05发布

我用原子的IIC例程,更改了SDA和CLK两个引脚,就无法读写AT24C16了,求高手指点!!!
自顶!!!
更改代码如下:

这是没改之前的

//IO·½ÏòéèÖÃ
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}

//IO2ù×÷oˉêy         
#define IIC_SCL    PBout(6)                 //SCL
#define IIC_SDA    PBout(7)                 //SDA         
#define READ_SDA   PBin(7)                          //ê&#228;è&#235;SDA


void IIC_Init(void)
{

        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB, ENABLE );        //ê1&#196;üGPIOBê±&#214;ó
          
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //í&#198;íìê&#228;3&#246;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7);         //PB6,PB7 ê&#228;3&#246;&#184;&#223;

}


这是改了之后的
//IO·&#189;&#207;òéè&#214;&#195;

#define SDA_IN()  {GPIOB->CRL&=0XFFFFFF0F;GPIOB->CRL|=(u32)8<<4;}
#define SDA_OUT() {GPIOB->CRL&=0XFFFFFF0F;GPIOB->CRL|=(u32)3<<4;}

//IO2ù×÷oˉêy         
#define IIC_SCL    PBout(0) //SCL
#define IIC_SDA    PBout(1) //SDA         
#define READ_SDA   PBin(1)  //ê&#228;è&#235;SDA



void IIC_Init(void)
{                                             
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB, ENABLE );        //ê1&#196;üGPIOBê±&#214;ó
          
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //í&#198;íìê&#228;3&#246;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1);         //PB6,PB7 ê&#228;3&#246;&#184;&#223;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
Acuity
1楼-- · 2019-07-21 10:13
hong12345
2楼-- · 2019-07-21 15:53
 精彩回答 2  元偷偷看……
hong12345
3楼-- · 2019-07-21 20:01
自顶,求大神帮忙看一下,我哪里没有配好,我就是更改了两个IO口就无法读取AT24C16的数据了,求各位大神帮忙看一下,小弟在此不胜感激
taizonglai
4楼-- · 2019-07-22 00:07
检查你更改后的这两个脚有没有接上啦电阻
hong12345
5楼-- · 2019-07-22 00:31
zuozhongkai 发表于 2018-7-4 19:24
检查你更改后的这两个脚有没有接上啦电阻

我没接,我是用一个外接的AT24C16,直接接到对应的精英开发板IO口上去的,之前连到PB6、PB7,可以改成PB0、PB1之后就无法读取了
hong12345
6楼-- · 2019-07-22 04:07
zuozhongkai 发表于 2018-7-4 19:24
检查你更改后的这两个脚有没有接上啦电阻

这跟接不接上拉没关系吧,原子配置的时候,输出用到推挽,输入用的时候也上拉了

一周热门 更多>