OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2920|回复: 10

iic在断电重启后就不工作,通电后按复位键就可以工作,谁遇到过。。

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
发表于 2016-11-8 12:19:40 | 显示全部楼层 |阅读模式
1金钱
STM32f107vct6芯片     配置应该没问题 ,因为在其他地方也用过,移植过来的。
程序下载后iic可以工作,按复位键也可以工作。但是断电后就不行了,iic没有信号。
boot1和boot0都是0。




最佳答案

查看完整内容[请看2#楼]

已解决,真是醉了。原来是受纽扣电池影响。估计有脏东西进去,取出来就正常了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-8 12:19:41 | 显示全部楼层
已解决,真是醉了。原来是受纽扣电池影响。估计有脏东西进去,取出来就正常了。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-8 12:20:03 | 显示全部楼层
谁遇到过这样的情况呀。。。。。好郁闷。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-8 12:23:46 | 显示全部楼层
本帖最后由 你好zjl 于 2016-11-8 12:44 编辑

程序也贴上来,配置应该没问题。其他地方都可以用的。
void IIC_Init(void)
{                        
    GPIO_InitTypeDef GPIO_InitStructure;   
    GPIO_DeInit(GPIOE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, DISABLE);   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE );
        
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_Out_OD ;  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE, &GPIO_InitStructure);
  
    GPIO_ResetBits(GPIOE,GPIO_Pin_8|GPIO_Pin_9);     
    Delay_ARMJISHU(500);//delay_ms(50);
  GPIO_SetBits(GPIOE,GPIO_Pin_8|GPIO_Pin_9);        
}
void IIC_Start(void)
{
    SDA_OUT();  //sda
    Delay_ARMJISHU(50);//2015-03-30
    GPIO_SetBits(GPIOE,GPIO_Pin_9); //SDA PC9  
    IIC_SCL=1;
    Delay_ARMJISHU(50);
     GPIO_ResetBits(GPIOE,GPIO_Pin_9);//IIC_SDA=0;  //START:when CLK is high,DATA change form high to low
    Delay_ARMJISHU(50);
    IIC_SCL=0;  //I2C
}      
void IIC_Stop(void)
{
    SDA_OUT();//sda
    Delay_ARMJISHU(50);//2015-03-30
    IIC_SCL=0;
    Delay_ARMJISHU(50);//2015-03-31
    GPIO_ResetBits(GPIOE,GPIO_Pin_9);//STOP:when CLK is high DATA change form low to high
     Delay_ARMJISHU(50);
    IIC_SCL=1;
    Delay_ARMJISHU(50);//2015-03-30
    GPIO_SetBits(GPIOE,GPIO_Pin_9);//   
    Delay_ARMJISHU(50);                                   
}




u8 IIC_Wait_Ack(void)
{
    u8 ucErrTime=0;
//    SDA_OUT();
    IIC_SCL=0;
    Delay_ARMJISHU(50);//2015-03-31
    SDA_IN();      
    GPIO_SetBits(GPIOE,GPIO_Pin_9);//SDA  
    Delay_ARMJISHU(50);      
    IIC_SCL=1;
    Delay_ARMJISHU(50);   
//    SDA_IN();   //2015-03-31
    Delay_ARMJISHU(50);//2015-03-31
    while(READ_SDA)
    {
        ucErrTime++;
        if(ucErrTime>250)
        {
            IIC_Stop();
            return 1;
        }
    }
    IIC_SCL=0;//      
    return 0;  
}

//I2CÓ¦´ðÐźź¯Êý
void IIC_Ack(void)
{
    IIC_SCL=0;
    SDA_OUT();
    Delay_ARMJISHU(50);//2015-03-30
    GPIO_ResetBits(GPIOE,GPIO_Pin_9);//IIC_SDA=0; 2016.8.25
    Delay_ARMJISHU(50);
    IIC_SCL=1;
    Delay_ARMJISHU(50);
    IIC_SCL=0;
    Delay_ARMJISHU(50);//2015-03-31
}


//I2CÎÞÓ¦´ðÐźź¯Êý            
void IIC_NAck(void)
{
    IIC_SCL=0;
    SDA_OUT();
    Delay_ARMJISHU(50);//2015-03-30
    GPIO_SetBits(GPIOE,GPIO_Pin_9);//IIC_SDA=1; 2016.8.25
    Delay_ARMJISHU(50);
    IIC_SCL=1;
    Delay_ARMJISHU(50);
    IIC_SCL=0;
    Delay_ARMJISHU(50);
}                                          



//I2C·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý 2016.8.22

void IIC_Send_Byte(u8 txd)
{                        
    u8 t;   
        SDA_OUT();
        Delay_ARMJISHU(50);//2015-03-30
    IIC_SCL=0;  //
    for(t=0;t<8;t++)
    {              
            if((txd&0x80)>>7)
                GPIO_SetBits(GPIOE,GPIO_Pin_9);//SDA
            else
                GPIO_ResetBits(GPIOE,GPIO_Pin_9);//SDA
            
            txd<<=1;      
            Delay_ARMJISHU(50);
            IIC_SCL=1;
            Delay_ARMJISHU(50);
            IIC_SCL=0;   
            Delay_ARMJISHU(50);
    }     
}        

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-11-10 00:10:31 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-10 09:37:28 | 显示全部楼层
还有一点:iic芯片是飞线到开发板上的,之前没有共地。估计也会受影响。
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-10 11:20:43 | 显示全部楼层
最好逻辑分析仪接上看
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-10 11:48:17 | 显示全部楼层
小陀螺爱炒蛋 发表于 2016-11-10 11:20
最好逻辑分析仪接上看

我用的示波器   一样的吧?
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-10 12:49:32 | 显示全部楼层
你好zjl 发表于 2016-11-10 11:48
我用的示波器   一样的吧?

逻辑分析仪可以直接解析协议,显示数据出来,更直观
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-10 13:05:46 | 显示全部楼层
你好zjl 发表于 2016-11-10 11:48
我用的示波器   一样的吧?

飞线没有太大影响,IIC是低速信号~
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2016-11-8
在线时间
2 小时
 楼主| 发表于 2016-11-10 13:20:29 | 显示全部楼层
小陀螺爱炒蛋 发表于 2016-11-10 13:05
飞线没有太大影响,IIC是低速信号~

噢。。受教了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 02:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表