GigaDevice GD32 MCU
直播中

赵俊涛

9年用户 173经验值
擅长:嵌入式技术 模拟技术 接口/总线/驱动
私信 关注

【GD32330C-START开发板试用体验】模拟IIC驱动OLED屏

`       本项目主要的元件之一就是OLED屏,同时也是主要的显示元件,可以显示数字,字符串,图片等信息。这里使用的OLED屏是IIC接口,为了快速开发和移植,使用模拟IIC进行驱动。
        首先在工程目录中的Drivers文件夹内添加oled源文件和头文件,接线除了VCC和GND,SCL和SDA分别接开发板的PA11和PA112引脚。
        其中OLED的主要控制函数如下:
  1. //模拟IIC控制函数
  2. void IIC_GPIO_Config(void);
  3. void IIC_Start(void);
  4. void IIC_Stop(void);
  5. void IIC_Wait_Ack(void);
  6. void IIC_Ack(void);
  7. void IIC_NoAck(void);
  8. void Write_IIC_Byte(uint8_t IIC_Byte);
  9. void Write_IIC_Command(uint8_t IIC_Command);
  10. void Write_IIC_Data(uint8_t IIC_Data);

  11. //OLED控制用函数
  12. void OLED_WR_Byte(uint8_t dat,OLEDWriteMode mode);            
  13. void OLED_Display_On(void);
  14. void OLED_Display_Off(void);                                                                                          
  15. void OLED_Init(void);
  16. void OLED_Clear(void);
  17. void OLED_DisPoint(uint8_t x,uint8_t y,uint8_t t);
  18. void OLED_Fill(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t dot);
  19. void OLED_DisChar(uint8_t x,uint8_t y,uint8_t chr,AddUnderLineYesOrNot mode);
  20. void OLED_DisNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size,AddUnderLineYesOrNot mode);
  21. void OLED_DisString(uint8_t x,uint8_t y, uint8_t *p);         
  22. void OLED_Set_Position(uint8_t x, uint8_t y);

  23. void OLED_DisChinese(uint8_t x,uint8_t y,char * p,uint8_t Num,FontSize fontSize);

  24. void OLED_DisBMP(uint8_t x0, uint8_t y0,uint8_t x1, uint8_t y1,uint8_t BMP[]);
在主函数中调用显示方法,效果如下:
OLED1.jpg

` OLED2.jpg

回帖(2)

trucy

2020-9-28 17:22:54
方便提供工程代码到trucy2010@163.com
举报

trucy

2020-9-28 17:24:21
方便发一个工程包到trucy2010@163.com
举报

更多回帖

发帖
×
20
完善资料,
赚取积分