|
【GD32F350分享】【三】OLED驱动程序的编写
[复制链接]
接下来开始真正第一个外设程序的编写,本次作品为简易计步器设计,首先需要使用OLED作为显示。
OLED使用模拟IIC程序编写,之所以使用模拟IIC是因为程序移植方便,之后的陀螺仪和光强传感器均使用IIC驱动,接线完成后再Driver文件夹添加oled源文件和头文件。
- //模拟IIC控制函数
- void IIC_GPIO_Config(void);
- void IIC_Start(void);
- void IIC_Stop(void);
- void IIC_Wait_Ack(void);
- void IIC_Ack(void);
- void IIC_NoAck(void);
- void Write_IIC_Byte(uint8_t IIC_Byte);
- void Write_IIC_Command(uint8_t IIC_Command);
- void Write_IIC_Data(uint8_t IIC_Data);
-
- //OLED控制用函数
- void OLED_WR_Byte(uint8_t dat,OLEDWriteMode mode);
- void OLED_Display_On(void);
- void OLED_Display_Off(void);
- void OLED_Init(void);
- void OLED_Clear(void);
- void OLED_DisPoint(uint8_t x,uint8_t y,uint8_t t);
- void OLED_Fill(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t dot);
- void OLED_DisChar(uint8_t x,uint8_t y,uint8_t chr,AddUnderLineYesOrNot mode);
- void OLED_DisNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size,AddUnderLineYesOrNot mode);
- void OLED_DisString(uint8_t x,uint8_t y, uint8_t *p);
- void OLED_Set_Position(uint8_t x, uint8_t y);
- void OLED_DisChinese(uint8_t x,uint8_t y,char * p,uint8_t Num,FontSize fontSize);
- void OLED_DisBMP(uint8_t x0, uint8_t y0,uint8_t x1, uint8_t y1,uint8_t BMP[]);
复制代码
为了显示图片可以使用取模软件将位图转换成相应数组,进行显示,这里直接给出显示效果,图片中出现的缺像素点实际显示是看不出来的,拍照时才有,应该是IIC的速率比较慢,如果使用SPI驱动的OLED应该效果要好。
|
|