第六章 OLED模块+STM32的使用

        这一章教大家使用OLED显示模块,OLED模块在众多的物联网相关的毕设中出现率是比较高的,一般我们用OLED模块来显示系统的一些检测数据或者当前一些状态。

        下图是我经常使用的OLED显示模块,其使用也是非常简单,模块上有4根引脚,分别是连接3.3V或5V的VCC引脚,接地的GND引脚,连接IIC时钟线的SCL引脚,连接IIC数据线的SDA引脚。关注公众号发送“OLED”,获取资料下载链接,按照链接里的接线图,用杜邦线把STM32F103C8T6与OLED模块连接起来,再通过Jlink或STlink将提供的代码烧录进STM32中即可看到现象。

第六章 OLED模块+STM32的使用_第1张图片第六章 OLED模块+STM32的使用_第2张图片

         接下来讲解STM32的代码。

第六章 OLED模块+STM32的使用_第3张图片

        7行 delay_init( ) 初始化延时函数,执行这条语句后,延时效果才会准确。

        9行 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2) 是设置中断优先级分组。此份代码没有用到中断,所以将该行代码删除了也不影响效果。

        11行 OLED_Init( ) 初始化OLED模块函数,初始化完成后,我们就可以调用15~28行的屏幕显示函数来实现OLED显示汉字、字符、字符串和数值了。        

        13行 OLED_Clear( ) 屏幕清除函数,就是将屏幕的显示全部清除,以免影响接下来15~28行显示函数的显示效果。

        15~25行 OLED_ShowCHinese( ) 是显示汉字函数,该函数有三个参数,前面两个是汉字显示的起始X坐标、Y坐标,我们可以通过改变这两个参数来改变汉字显示的位置,起始坐标就是一个汉字显示区域的左上角的那个点,如下图所示,“欢”字起始X坐标是0,起始Y坐标是0,“欢”字起始X坐标是16,起始Y坐标是0。

第六章 OLED模块+STM32的使用_第4张图片

第六章 OLED模块+STM32的使用_第5张图片

        在这里注意一下,参数X轴的取值范围是0~127,Y轴的取值范围是0~7,而一个汉字在Y轴方向占2个单位(即0和1),在X轴方向占16个单位(即0~15),具体如下图所示,在X轴占了0~15,在Y轴占用了0和1,在X轴占了16~31,在Y轴占用了0和1......以此类推。

第六章 OLED模块+STM32的使用_第6张图片

        接下来说第三个参数,第三个参数是要显示的汉字字模在存储数组里的位置号,存储数组的代码在下图中的位置。图中,从上往下,最前面的两个数组是位置0,接下来两个数组是位置1,再接下来两个数组是位置2....以此类推,我们就知道了每个汉字字模存储的位置号了,想要显示什么字,直接在OLED_ShowCHinese( )函数的第三个参数写上它所在的位置号就可以了。例如上图,想要起始坐标(32,0)的位置打印一个“大”字,我们就可以直接调用OLED_ShowCHinese(32,0,2);为什么最后一个参数要写2,因为“大”的字模存储在位置2。

第六章 OLED模块+STM32的使用_第7张图片

         那万一存储数组里边没有我们想要的汉字字模怎么办呢?我们可以用一个软件生成我们想要的字模,然后把它添加进上图的Hzk数组里边就可以了。首先打开下图的取模软件(资料链接里面有)

第六章 OLED模块+STM32的使用_第8张图片

         打开软件后,按照下面操作。

第六章 OLED模块+STM32的使用_第9张图片

         打开设置后,按照下图进行设置,设置完后点击确定。

第六章 OLED模块+STM32的使用_第10张图片

         设置完后,在下图中的输入框内输入汉字,然后点击生成字模即可。

第六章 OLED模块+STM32的使用_第11张图片

         将生成的字模加添加到Hzk数组里就好了。顺便在注释里面对应好位置号,如下图所示。

第六章 OLED模块+STM32的使用_第12张图片

        执行完这些操作,如果想要在屏幕上显示“牛”字,我们只要确定好显示坐标后,直接调用OLED_ShowCHinese( )函数并将坐标和“牛”的位置号11填写进去就可以了,参考下图。

第六章 OLED模块+STM32的使用_第13张图片

         OLED_ShowString( )函数是显示英文字符串的函数,该函数有四个参数,前面两个参数也是显示的起始X坐标、Y坐标,第三个参数是我们要显示的英文字符串(记得加上英文双引号),第四个参数不用改动,参考下图。

第六章 OLED模块+STM32的使用_第14张图片

        OLED_ShowNum( )显示数值的函数,该函数有五个参数,前面两个参数也是显示的起始X坐标、Y坐标,第三个参数是我们要显示的数值,参考例程中,第三个参数是常数 666 ,我们可以用变量来代替,这样,我们要在屏幕上显示什么数值,只要改变变量的数值就可以了,第四个参数是要显示的数值的最大位数,例如,DHT11温湿度模块能检测到的最高温度在99以内,所以第四个参数只要大于等于2就可以了,接下来第五个参数我们不用改动,参考下图。

第六章 OLED模块+STM32的使用_第15张图片

         这一章还是建议大家买个模块,将资料链接里提供的例程下载到STM32中,然后尝试自己修改,资料链接里还有模块的购买链接和OLED与STM32的接线图。(关注公众号发送“OLED”,获取资料下载链接

        下一章给教大家在屏幕上动态显示DHT11获取到的温湿度数据。


第六章 OLED模块+STM32的使用_第16张图片

你可能感兴趣的:(STM32,单片机,stm32,物联网,mcu,嵌入式硬件)