//发送数据 void Send_Byte(u8 cmd, u8 dat) {/* Common I2C transaction setup */i2cTransaction.writeBuf= txBuffer;i2cTransaction.writeCount = 2;i2cTransaction.readBuf= rxBuffer;i2cTransaction.readCount = 0;i2cTransaction.slaveAddress = OLED_SLAVEADDR;txBuffer[0] = cmd;txBuffer[1] = dat;if (!I2C_transfer(I2Chandle, &i2cTransaction)) {Log_error0("I2C Transaction fail!");} } void OLED_WR_Byte(u8 dat,u8 mode) {if(mode != OLED_CMD){Send_Byte(0x40, dat);}else{Send_Byte(0x00, dat);} OLED 初始化:OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panelOLED_WR_Byte(0xFD,OLED_CMD);OLED_WR_Byte(0x12,OLED_CMD);OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequencyOLED_WR_Byte(0xA0,OLED_CMD);OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 dutyOLED_WR_Byte(0xD3,OLED_CMD);//-set display offsetShift Mapping RAM Counter (0x00~0x3F)OLED_WR_Byte(0x00,OLED_CMD);//-not offsetOLED_WR_Byte(0x40,OLED_CMD);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F)OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping0xa0×óÓÒ·ŽÖà 0xa1Õý³£OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction0xc0ÉÏÏ·ŽÖà 0xc8Õý³£OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configurationOLED_WR_Byte(0x12,OLED_CMD);OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control registerOLED_WR_Byte(0xBF,OLED_CMD);// Set SEG Output Current BrightnessOLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge periodOLED_WR_Byte(0x25,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 ClocOLED_WR_Byte(0xDB,OLED_CMD);//--set vcomhOLED_WR_Byte(0x34,OLED_CMD);//Set VCOM Deselect LevelOLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)OLED_Clear();OLED_WR_Byte(0xAF,OLED_CMD);
D0:SDA
D2:SCL
D4: RES
Lease:
回复 Viki Shi:
初始化配置:I2C_init();//i2c initI2C_Params_init(&I2Cparams);I2Cparams.bitRate = I2C_100kHz;I2Chandle = I2C_open(Board_I2C_TMP, &I2Cparams);if(I2Chandle == NULL){Log_error0("open i2c init error!");return;}else{Log_info0("open i2c init sucess!");}
OLEDPinHandle = PIN_open(&OLEDPinState, OLEDPinTable);if(OLEDPinHandle == NULL){Log_error0("open i2c pin error!");return;}else{Log_info0("open i2c pin sucess!");}