1、复制一个示例i2c的示例工程,并重命名为LP_MSPM0G3507_oled

2、开启i2c1,并设置速率为400K

3、保存到工程,然后添加oled的驱动库

4、在驱动库中,主要需要修改的为write_byte函数,内容如下:
int I2C_WriteByte(uint8_t addr, uint8_t data) {
  uint8_t buff[2] = {0};
  buff[0] = addr;
  buff[1] = data;
  /* Wait for I2C to be Idle */
  while (!(DL_I2C_getControllerStatus(I2C_OLED_INST) &
           DL_I2C_CONTROLLER_STATUS_IDLE))
    ;
  /* Send the packet to the controller.
   * This function will send Start + Stop automatically.
   */
  DL_I2C_startControllerTransfer(I2C_OLED_INST, OLED_ADDR,
                                 DL_I2C_CONTROLLER_DIRECTION_TX, 2);
  DL_I2C_fillControllerTXFIFO(I2C_OLED_INST, &buff[0], 2);
  /* Poll until the Controller writes all bytes */
  while (DL_I2C_getControllerStatus(I2C_OLED_INST) &
         DL_I2C_CONTROLLER_STATUS_BUSY_BUS)
    ;
  /* Trap if there was an error */
  if (DL_I2C_getControllerStatus(I2C_OLED_INST) &
      DL_I2C_CONTROLLER_STATUS_ERROR) {
    /* LED will remain high if there is an error */
    __BKPT(0);
  }
  return 0;
}这样我们的代码就移植完毕。
4、添加测试代码:
#include "ti_msp_dl_config.h"
#include "\oled\oled.h"
int main(void)
{
    SYSCFG_DL_init();
    /* Set LED to indicate start of transfer */
    OLED_Init();
    OLED_CLS();
    OLED_ShowString(3, 1,"LP-MSPM0G3507", 2);
    OLED_ShowString(5, 1,"eepw Ti", 2);
    /* If write and read were successful, toggle LED */
    while (1) {
    }
}5、测试结果:

到此移植OLED就完毕。
【移植要点】
1、要准备已经做好的OLED的驱动。
2、配置好I2C。
3、改写i2cwritbyte函数。

 
					
				
 
			
			
			
						
			 
					
				 
					
				 
					
				 
					
				 
					
				 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

