OpenEdv-开源电子网

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

STM32作为i2c从机没有应答信号

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-3-28
在线时间
2 小时
发表于 2016-3-29 17:21:14 | 显示全部楼层 |阅读模式
大家好:
目前将STM32作为i2c从机,已经收到地址匹配,且进入了地址匹配中断,但是没有发出应答信号,可能是什么原因?
i2c初始化已经允许应答信号,如下是I2C初始化代码:
void I2C_CONFIGRATION(){
       

  I2C_InitTypeDef         I2C_InitStructure;
        GPIO_InitTypeDef  GPIO_InitStructure;
        NVIC_InitTypeDef         NVIC_InitStructure;
       
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        /*********** I2C periphral configuration **********/
        I2C_DeInit(I2C1);
        I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; // fixed
        I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; // fixed
        I2C_InitStructure.I2C_OwnAddress1 = 0x24; // user parameter
        I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; // fixed
        I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
        I2C_InitStructure.I2C_ClockSpeed = I2C_Speed; // user parameter
        I2C_AcknowledgeConfig(I2C1, ENABLE);  
        //I2C1->CR1 |= I2C_CR1_ACK;
        I2C_Cmd(I2C1, ENABLE);
        I2C_Init(I2C1, &I2C_InitStructure);
        I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF , ENABLE);
       
        NVIC_InitStructure.NVIC_IRQChannel = I2C1_EV_IRQn ;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        NVIC_InitStructure.NVIC_IRQChannel = I2C2_ER_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 19:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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