2026-04-08 3:16 AM
Hi,
Here i post a driver for SSD1306 128X64 Oled Display.
You must enable I2C configuration
void I2C_ConfigurationMaster(void) {
GPIO_InitType GPIO_InitStructure;
I2C_InitType I2C_InitStruct;
/* Enable I2C and GPIO clocks */
if ((I2C_Type*) SDK_EVAL_I2C== I2C2) {
SysCtrl_PeripheralClockCmd(CLOCK_PERIPH_I2C2 | CLOCK_PERIPH_GPIO, ENABLE);
}
else {
SysCtrl_PeripheralClockCmd(CLOCK_PERIPH_I2C1 | CLOCK_PERIPH_GPIO, ENABLE);
}
/* Configure I2C pins */
GPIO_InitStructure.GPIO_Pin = SDK_EVAL_I2C_CLK_PIN;
GPIO_InitStructure.GPIO_Mode = SDK_EVAL_I2C_DATA_MODE;
GPIO_InitStructure.GPIO_Pull = DISABLE;
GPIO_InitStructure.GPIO_HighPwr = DISABLE;
GPIO_Init(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = SDK_EVAL_I2C_DATA_PIN;
GPIO_InitStructure.GPIO_Mode = SDK_EVAL_I2C_DATA_MODE;
GPIO_Init(&GPIO_InitStructure);
/* Configure I2C in master mode */
I2C_StructInit(&I2C_InitStruct);
I2C_InitStruct.I2C_OperatingMode = I2C_OperatingMode_Master;
I2C_InitStruct.I2C_ClockSpeed = SDK_EVAL_I2C_CLK_SPEED;
I2C_Init((I2C_Type*) SDK_EVAL_I2C, &I2C_InitStruct);
/* Clear all I2C pending interrupts */
I2C_ClearITPendingBit((I2C_Type*) SDK_EVAL_I2C, I2C_IT_MSK);
}
Regards