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

关于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, 下载次数: 2

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

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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