STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库) |
您所在的位置:网站首页 › OLED显示屏模块库 › STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库) |
STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库
文章目录
STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库一、OLED简单介绍二、CubeMx设置二、加入OLED屏幕驱动1.生成User文件夹2.添加OLED相关文件
三、结果展示
一、OLED简单介绍
1,.OLED是有机发光二极管,由于其具备自发光,不需要背光的特点,被认为是下一代的平面显示器新兴应用技术 2.0.96寸的OLED显示屏幕分辨率为128*64 3.引脚: GND 电源地VCC 电源正(3~5.5V)SCL OLED 的 D0 脚,在 IIC 通信中为时钟管脚,本篇文章中接PB6SDA OLED 的 D1 脚,在 IIC 通信中为数据管脚,本篇文章中接PB7 二、CubeMx设置1.选择芯片 4.时钟设置为自己的芯片对应的频率(c8t6是72Hz) 5.I2C设置 配置普通I2C即可 7.生成代码 在project中生成MDK代码
oled.c #include "oledfont.h" #include "oled.h" #define OLED_ADD 0x78 static void oled_cmd(uint8_t i2c_cmd) { uint8_t *cmd; cmd = &i2c_cmd; HAL_I2C_Mem_Write(&hi2c1, OLED_ADD, 0x00, I2C_MEMADD_SIZE_8BIT, cmd, 1, 100); } static void oled_data(uint8_t i2c_data) { uint8_t *data; data = &i2c_data; HAL_I2C_Mem_Write(&hi2c1, OLED_ADD, 0x40, I2C_MEMADD_SIZE_8BIT, data, 1, 100); } static void oled_origin(uint8_t x, uint8_t y) { oled_cmd(0xb0+y); oled_cmd(((x&0xf0)>>4)|0x10); oled_cmd((x&0x0f)|0x01); } void oled_clear() { uint8_t i,n; for(i=0;i uint8_t m,n; for(m=0;m oled_data(data); } } } void oled_init(void) { HAL_Delay(100); oled_cmd(0xAE); //display off oled_cmd(0x20); //Set Memory Addressing Mode oled_cmd(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid oled_cmd(0xb0); //Set Page Start Address for Page Addressing Mode,0-7 oled_cmd(0xc8); //Set COM Output Scan Direction oled_cmd(0x00); //---set low column address oled_cmd(0x10); //---set high column address oled_cmd(0x40); //--set start line address oled_cmd(0x81); //--set contrast control register oled_cmd(0xff); //áá?èμ÷?ú 0x00~0xff oled_cmd(0xa1); //--set segment re-map 0 to 127 oled_cmd(0xa6); //--set normal display oled_cmd(0xa8); //--set multiplex ratio(1 to 64) oled_cmd(0x3F); // oled_cmd(0xa4); //0xa4,Output follows RAM content;0xa5,Output ignores RAM content oled_cmd(0xd3); //-set display offset oled_cmd(0x00); //-not offset oled_cmd(0xd5); //--set display clock divide ratio/oscillator frequency oled_cmd(0xf0); //--set divide ratio oled_cmd(0xd9); //--set pre-charge period oled_cmd(0x22); // oled_cmd(0xda); //--set com pins hardware configuration oled_cmd(0x12); oled_cmd(0xdb); //--set vcomh oled_cmd(0x20); //0x20,0.77xVcc oled_cmd(0x8d); //--set DC-DC enable oled_cmd(0x14); // oled_cmd(0xaf); //--turn on oled panel oled_full(0x00); } void oled_display_char(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size) { unsigned char c=0,i=0; c=chr-' ';//得到偏移后的值 if(x>128-1){x=0;y=y+2;} if(Char_Size == 16) { oled_origin(x,y); for(i=0;i uint8_t c = 0,i = 0,j = 0; switch(TextSize) { case 1: { while(ch[j] != '\0') { c = ch[j] - 32; if(x > 126) { x = 0; y++; } oled_origin(x,y); for(i=0;i c = ch[j] - 32; if(x > 120) { x = 0; y++; } oled_origin(x,y); for(i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |