这一章教大家使用OLED显示模块,OLED模块在众多的物联网相关的毕设中出现率是比较高的,一般我们用OLED模块来显示系统的一些检测数据或者当前一些状态。
下图是我经常使用的OLED显示模块,其使用也是非常简单,模块上有4根引脚,分别是连接3.3V或5V的VCC引脚,接地的GND引脚,连接IIC时钟线的SCL引脚,连接IIC数据线的SDA引脚。关注公众号发送“OLED”,获取资料下载链接,按照链接里的接线图,用杜邦线把STM32F103C8T6与OLED模块连接起来,再通过Jlink或STlink将提供的代码烧录进STM32中即可看到现象。
接下来讲解STM32的代码。
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。
在这里注意一下,参数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......以此类推。
接下来说第三个参数,第三个参数是要显示的汉字字模在存储数组里的位置号,存储数组的代码在下图中的位置。图中,从上往下,最前面的两个数组是位置0,接下来两个数组是位置1,再接下来两个数组是位置2....以此类推,我们就知道了每个汉字字模存储的位置号了,想要显示什么字,直接在OLED_ShowCHinese( )函数的第三个参数写上它所在的位置号就可以了。例如上图,想要起始坐标(32,0)的位置打印一个“大”字,我们就可以直接调用OLED_ShowCHinese(32,0,2);为什么最后一个参数要写2,因为“大”的字模存储在位置2。
那万一存储数组里边没有我们想要的汉字字模怎么办呢?我们可以用一个软件生成我们想要的字模,然后把它添加进上图的Hzk数组里边就可以了。首先打开下图的取模软件(资料链接里面有)。
打开软件后,按照下面操作。
打开设置后,按照下图进行设置,设置完后点击确定。
设置完后,在下图中的输入框内输入汉字,然后点击生成字模即可。
将生成的字模加添加到Hzk数组里就好了。顺便在注释里面对应好位置号,如下图所示。
执行完这些操作,如果想要在屏幕上显示“牛”字,我们只要确定好显示坐标后,直接调用OLED_ShowCHinese( )函数并将坐标和“牛”的位置号11填写进去就可以了,参考下图。
OLED_ShowString( )函数是显示英文字符串的函数,该函数有四个参数,前面两个参数也是显示的起始X坐标、Y坐标,第三个参数是我们要显示的英文字符串(记得加上英文双引号),第四个参数不用改动,参考下图。
OLED_ShowNum( )显示数值的函数,该函数有五个参数,前面两个参数也是显示的起始X坐标、Y坐标,第三个参数是我们要显示的数值,参考例程中,第三个参数是常数 666 ,我们可以用变量来代替,这样,我们要在屏幕上显示什么数值,只要改变变量的数值就可以了,第四个参数是要显示的数值的最大位数,例如,DHT11温湿度模块能检测到的最高温度在99以内,所以第四个参数只要大于等于2就可以了,接下来第五个参数我们不用改动,参考下图。
这一章还是建议大家买个模块,将资料链接里提供的例程下载到STM32中,然后尝试自己修改,资料链接里还有模块的购买链接和OLED与STM32的接线图。(关注公众号发送“OLED”,获取资料下载链接)文章来源:https://www.toymoban.com/news/detail-413169.html
下一章给教大家在屏幕上动态显示DHT11获取到的温湿度数据。文章来源地址https://www.toymoban.com/news/detail-413169.html
到了这里,关于第六章 OLED模块+STM32的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!