關(guān)于ch32v003芯片使用i2c時,請問切換i2c的引腳,

void IIC_Init(u32 bound, u16 address)

{

? ? GPIO_InitTypeDef GPIO_InitStructure = {0};

? ? I2C_InitTypeDef I2C_InitTSturcture = {0};


? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

? ? RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);


? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;

? ? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

? ? GPIO_Init(GPIOD, &GPIO_InitStructure);


? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;

? ? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

? ? GPIO_Init(GPIOD, &GPIO_InitStructure);


? ? I2C_InitTSturcture.I2C_ClockSpeed = bound;

? ? I2C_InitTSturcture.I2C_Mode = I2C_Mode_I2C;

? ? I2C_InitTSturcture.I2C_DutyCycle = I2C_DutyCycle_16_9;

? ? I2C_InitTSturcture.I2C_OwnAddress1 = address;

? ? I2C_InitTSturcture.I2C_Ack = I2C_Ack_Enable;

? ? I2C_InitTSturcture.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;

? ? I2C_Init(I2C1, &I2C_InitTSturcture);


? ? I2C_Cmd(I2C1, ENABLE);

}

在上面程序中,我將C口的引腳改成了D,但是在測試中發(fā)現(xiàn)沒有效果,請問如何初始化其他引腳用于iic上使用?

您好,因為PD0、PD1是重映射引腳,需要調(diào)用GPIO_PinRemapConfig函數(shù)進行引腳復用,具體可參考下圖

image.png


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频