
stm32 iic 复用 卡在while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
stm32在用mpu6050时iic复用pb8pb9卡在while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_M...
stm32 在用mpu6050时 iic 复用pb8 pb9卡在 while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题
代码
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能与 I2C1 有关的时钟 */
RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE );
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);
;
/* PB8-I2C1_SCL、PB9-I2C1_SDA*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure); 展开
代码
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能与 I2C1 有关的时钟 */
RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE );
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);
;
/* PB8-I2C1_SCL、PB9-I2C1_SDA*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure); 展开
2个回答
展开全部
需要帮你做吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-17
展开全部
你全部配置为AF_OD!会不会是你这两个口没加上拉电阻?
更多追问追答
追问
在jlink上仿真 默认引脚没问题从6 7 remap到8 9上就过不去了 用的学习版 你的第一句话没懂意思 iic本来就要afod啊
追答
我的意思是你默认的IO上一般是有上拉电阻的,但复用后的IO口在你的板子上是不是没有加上拉电阻??你看看电路
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询