你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于NUCLEO L496ZG的单色0.91'OLED屏显示例程分享

[复制链接]
jinglixixi 发布时间:2020-8-18 14:01
OLED屏是一种小巧的显示器件,特别是I2C接口的OLED 屏更能节省I/O口资源。本次使用的是一款0.91'的单色OLED屏,它比常规的OLED屏要长且窄,故更适于显示信息和参数,也更适于用在便携装置上。
1. OLED屏显示
1)OLED屏与NV32F100的连接关系如下:
SCL  ---  PA5
SDA  ---  PA6
2)为进行显示定义引脚输出高低电平的语句为:
#defineOLED_SCLK_Clr() GPIO_PinClear(GPIO_PTE1);
#defineOLED_SCLK_Set() GPIO_PinSet(GPIO_PTE1);

#defineOLED_SDIN_Clr() GPIO_PinClear(GPIO_PTE0);
#defineOLED_SDIN_Set() GPIO_PinSet(GPIO_PTE0);

3)OLED屏初始化函数为:
  1. void OLED_Init(void)
  2. {   
  3.        GPIO_InitTypeDef  GPIO_InitStruct;
  4.        __HAL_RCC_GPIOA_CLK_ENABLE();
  5.        GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;      
  6.        GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  7.        GPIO_InitStruct.Pull  = GPIO_PULLUP;
  8.        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  9.        HAL_GPIO_Init(GPIOA,   &GPIO_InitStruct);
  10.        OLED_SCLK_Set();
  11.        OLED_SDIN_Set();
  12.        Delay_1ms(800);
  13.        OLED_WR_Byte(0xAE,OLED_CMD);//--display off
  14.        OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
  15.        OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  16.        OLED_WR_Byte(0x81,OLED_CMD); // contract control
  17.        OLED_WR_Byte(0xFF,OLED_CMD);//--128  
  18.        OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  19.        OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  20.        OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  21.        OLED_WR_Byte(0x1F,OLED_CMD);//--1/32 duty
  22.        OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  23.        OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  24.        OLED_WR_Byte(0x00,OLED_CMD);//
  25.        OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  26.        OLED_WR_Byte(0xF0,OLED_CMD);//
  27.        OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  28.        OLED_WR_Byte(0x22,OLED_CMD);//
  29.        OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  30.        OLED_WR_Byte(0x02,OLED_CMD);//
  31.        OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  32.        OLED_WR_Byte(0x49,OLED_CMD);//
  33.        OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  34.        OLED_WR_Byte(0x14,OLED_CMD);//
  35.        OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  36.        OLED_Clear();
  37. }
复制代码

4)汉字显示函数为:
  1. void OLED_ShowCHinese(unsigned char x,unsigned char y,unsigned char no)
  2. {                           
  3.        unsigned char t,adder=0;
  4.        OLED_Set_Pos(x,y);     
  5.        for(t=0;t<16;t++)
  6.        {
  7.                             OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
  8.                             adder+=1;
  9.        }
  10.        OLED_Set_Pos(x,y+1);
  11.        for(t=0;t<16;t++)
  12.        {     
  13.                             OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
  14.                             adder+=1;
  15.     }                                 
  16. }
复制代码

2. 字模提取
为了显示汉字,需要提前相应的字模,以PCtoLCD2002字模提取软件为例,在提取前需按图1所示来进行设置。                              
1.jpg
图1 格式设置

1)录入需显示的内容,如图2所示。
2.jpg
图2 输入提取内容

2)编写显示函数,其内容为:
  1. void cd()
  2. {
  3.        OLED_ShowCHinese(18,0,0);  
  4.        OLED_ShowCHinese(36,0,1);
  5.        OLED_ShowCHinese(54,0,2);
  6.        OLED_ShowCHinese(72,0,3);
  7.        OLED_ShowCHinese(90,0,4);
  8.       
  9.        OLED_ShowCHinese(18,2,5);  
  10.        OLED_ShowCHinese(36,2,6);
  11.        OLED_ShowCHinese(54,2,7);
  12.        OLED_ShowCHinese(72,2,8);
  13.        OLED_ShowCHinese(90,2,9);
  14. }
复制代码

3)编写主程序,其代码如下:
  1. int main(void)
  2. {
  3.   HAL_Init();
  4.   /* Configure the system clock to 80 MHz */
  5.   SystemClock_Config();
  6.   OLED_Init();                    
  7.   OLED_Clear();
  8.   cd();
  9.   while (1);
  10. }
复制代码

4)下载并运行后,其效果如图3所示。
3.jpg
图3 显示效果

工程代码:

0.91_OLED.rar

下载

3.65 MB, 下载次数: 5

收藏 1 评论0 发布时间:2020-8-18 14:01

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版