迅维网

查看: 1348|回复: 0
打印 上一主题 下一主题

【NUCLEO-F412ZG试用体验】SPI总线OLED使用

[复制链接]
跳转到指定楼层
1#
发表于 2016-12-28 15:43:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
使用STM32F412驱动USART及OLED
在这个帖子当中,将介绍如何使用STM332F412系列的UART外设以及通过SPI总线驱动OLED屏幕。
一、       驱动USART
在ST官方的HAL驱动库中,我们可以找的很多关于板子的例程供我们参考,如下图所示的:

                               
登录/注册后看高清大图
关于如何配置USART我们可以看官方HAL库“stm32f4xx_hal_usart.c”里面的说明,如下图:

                               
登录/注册后看高清大图
从图中可以看到,首先要声明一个USART_HandleTypeDef结构体,然后在定义HAL_USART_MspInit()这个函数,在这个函数中我们完成了外设时钟初始化、GPIO初始化以及中断初始化等操作。然后初始化UART外设的比特率、数据位数等等配置,调用HAL_USART_Init()进行初始化就完成了USART的初始化配置工作。最后我们重载put()函数,使得我们可以使用printf()函数进行串口打印操作。
从ST官方资料可以了解到,这块NUCLEO板板载了ST-LINKV2仿真器,而仿真器中又集成了一个虚拟串口,从官方给出的电路图中可以看出,芯片的USART3连接到了ST-LINK当中,因此我们在进行串口调试时可以只使用一个USB线就完成了程序下载、仿真以及串口调试的工作,非常的方便。具体的USART配置大家可以看后面上传的文件,这里只放一个结果图了。

                               
登录/注册后看高清大图
二、       驱动OLED
我们知道OLED显示屏作为一种新型的技术,由于其轻便、省电的特性,逐渐被人们广泛应用在各个领域当中。我手上这块OLED采用了SSD1306作为主控芯片,并且使用SPI作为数据传输的总线。因此这里介绍一下如何配置SPI以及如何驱动SSD1306.
SPI总计上配置的流程和UART相似,具体配置请看附件就好了。而SSD1306的配置稍微要复杂一点,我们可以把OLED看成是一块128*64的点阵屏幕,通过程序我们可以控制每个点的亮灭,因此就可以显示出一串组合文字或者图形出来。

                               
登录/注册后看高清大图
这是我从逻辑分析仪中抓取的SPI总线波形,可以看到已经建立的正确的SPI通信。而OLED运行结果如下图:

                               
登录/注册后看高清大图


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复