|
STM32F103VCT6的I2C出问题了(好像跟映射有关系),难以解决
[复制链接]
调了好几天了,快崩溃了,下面我把情况说一下:
STM32F103VCT6的PB8\PB9用作I2C1,连接PCF8563,硬件连接是没有问题的,8563的读写函数也没有问题,因为是原来用在RBT6上的软件,区别是按照STM32F103VCT6的手册,PB8\PB9用作I2C1的话是需要重新映射的,这个我也加了,下面我把初始化函数贴上:
void I2C1_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
I2C_InitTypeDef I2C_InitStructure;
GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);
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);
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = 0xa2;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_ClockSpeed = 100000;
I2C_Cmd(I2C1, ENABLE);
I2C_Init(I2C1, &I2C_InitStructure);
}
除了在函数刚开始的地方加了重映射之外,其它都是从RBT6应用成功的项目中复制的代码,所以软件应该是没有问题的,但跑一下发现不成功,难道重新映射这个地方出问题了?实在找不到什么原因了,各路高手帮我分析一下!
|
|