NRF51822---驱动0.96寸OLED屏幕(连载4)

  • 前言
  • 屏幕简介
  • 连接方法
  • 驱动原理
    • IIC
    • SSD1306
  • 代码实现
  • 总结

前言

上节讲解了IIC的协议,并用STM32实践了一下。今天趁热打铁,用NRF51822来进行驱动屏幕,程序昨天晚上加班搞完了。这一节主要讲解下0.96屏幕驱动原理和NRF51822的驱动程序、

屏幕简介

该屏幕支持多种驱动方式:3线或者4线SPI、8080、6800等等,我用的是IIC驱动的屏幕。不过原理明白了,什么驱动方式都无所谓了。

简介一定要突出一个“简”字、

连接方法

该屏幕已经设定为IIC模式了,因此不需要你自行修改电路,只需要看丝印把引脚一一对应连接到NRF51822上,我用的是P021和P022引脚,定义如下:
//-----------------OLED IIC端口定义----------------                         #define OLED_SCLK_Clr() nrf_gpio_pin_clear(21)//SCL
#define OLED_SCLK_Set() nrf_gpio_pin_set(21)#define OLED_SDIN_Clr() nrf_gpio_pin_clear(22)//SDA
#define OLED_SDIN_Set() nrf_gpio_pin_set(22)

对应开发板如下图:

驱动原理

IIC

关于IIC的理论部分请点击 这里.

SSD1306

关于这个芯片,其实也没啥好说的,主要内容还是IIC。以下几点手册中都有详细说明,这里提一下:
1.配置设备地址
通过将SA0(D/C#)脚上拉到高电平可以设置从机地址第七位为 1,将SA0(D/C#)脚下拉到低电平可以设置从机地址第七位为 0。通过SA0(D/C#)脚的上拉和下拉来设置从机地址,可以最多挂载2个屏幕。
2.寻址模式
寻址模式配置时需要注意,自己配置的寻址模式要和取模或者字库芯片的取模方式一致,不然显示会出问题、
3.指令
指令有点多,不过没必要记住,因为手册上会有初始化流程,跟着流程配置一遍就行了,下次在用的时候直接移植就可以了。

代码实现

OLED驱动代码是在上一个GPIO的版本上修改完后的。移植的STM32 单片机的0.96屏幕驱动文件

1.添加oled.c文件,改文件可以直接从平衡小车的代码中提取,连同文件夹一起复制到NRF51822的工程目录中,如下图:

2.代码中添加C文件,并且添加.h文件路径,如下图:

3.修改底层代码,配置SDA和SCL引脚:
//-----------------OLED IIC端口定义----------------                         #define OLED_SCLK_Clr() nrf_gpio_pin_clear(21)//SCL
#define OLED_SCLK_Set() nrf_gpio_pin_set(21)#define OLED_SDIN_Clr() nrf_gpio_pin_clear(22)//SDA
#define OLED_SDIN_Set() nrf_gpio_pin_set(22)#define OLED_CMD  0 //写命令
#define OLED_DATA 1 //写数据
4.修改主函数配置,添加引脚初始化和屏幕初始化函数
int main(void)
{nrf_gpio_cfg_output(21);   //配置P021引脚为输出SCLnrf_gpio_cfg_output(22);    //配置P022引脚为输出nrf_gpio_pin_set(21);nrf_gpio_pin_set(22);nrf_delay_ms(800);OLED_Init();nrf_delay_ms(200);OLED_Clear();while(1){OLED_ShowString(0,0,"nrf51822",12);OLED_ShowCHinese(0,2,7);OLED_ShowCHinese(16,2,8);OLED_ShowString(0,5,"D_SEngineer",12);}
}
5.编译下载,实际效果如图所示:

总结

本小节再次总结了IIC,以及重新用NRF51822驱动了0.96寸屏幕,到现在是不是突然觉得写代码这么简单?理解了原理,修改下底层配置就能从STM32移植到NRF51822上、

代码领取方式,复制下面关键字到公众号回复 ,即可领取源码。

nrf51822外设--0.96寸屏

NRF51822---驱动0.96寸OLED屏幕(连载4)相关推荐

  1. STM32(基于HAL库)驱动0.96寸OLED屏幕(六脚)

    STM32驱动0.96寸OLED屏幕(六脚) 1 序言 2 如何利用STM32单片机驱动12864液晶屏 2.1*基本配置* 2.2 *0.96寸OLED端口含义* 2.3 *0.96寸OLED液晶屏 ...

  2. STM32(基于HAL库)驱动0.96寸OLED屏幕(四脚且中英文皆可显示)

    STM32驱动0.96寸OLED屏幕(四脚) 1 注意事项 2 如何利用STM32单片机驱动12864液晶屏 2.1*基本配置* 2.2 *0.96寸OLED端口含义* 2.3 *0.96寸OLED液 ...

  3. 用esp8266驱动0.96寸OLED屏幕 太空人动画

    昨天闲来没事玩了一下OLED屏幕 之前只是做过显示图片 还没弄过动画的 (其实差不多–) 用esp8266驱动0.96寸LED屏幕 太空人动画 入门esp8266 看这篇文章 参考https://bl ...

  4. STM8驱动0.96寸OLED(12864液晶屏)

    由于中景园电子给出的例程不够全面,因此特地花时间重新整理了一下代码,并加上了其他的功能.本文记录了使用模拟四线 SPI 协议驱动 OLED 的代码. 文章目录 1 oled.h 2 oled.c 2. ...

  5. STC15W408AS单片机IIC驱动0.96寸OLED显示

    STC15W408AS单片机IIC驱动0.96寸OLED显示 不同页的滚动效果() 全页的滚动效果 STC15W408AS最新系统板 注意图片上的0欧姆电阻贴错了位置,应该是与GND相连的,图片上是P ...

  6. 0.96寸oled屏幕在任意区域画点

    首先,我使用的是SPI协议的0.96寸oled屏幕,如图 相信大家在淘宝下单的时候,能以各种渠道获得"中景园科技"的关于驱动该屏幕的源码,但令人遗憾的是,源码中仅仅包含了写数字,写 ...

  7. CX32l003 点亮0.96寸OLED屏幕

    之前的文章写了很多关于CX32L003芯片的程序代码,几乎都是应用的芯片内部资源,对于这款低成本的芯片还能做些什么功能呢.本篇文章采用cx32l003单片机实现点亮0.96寸的OLED屏幕. OLED ...

  8. 一文彻底了解SSD1306驱动0.96寸OLED

    微信公众号[物联网思考] 整理东西的时候,翻出了一个OLED,驱动起来玩一玩.先上一张图,显示了字符串.汉字,当然也是我们的公众号,欢迎关注. 在淘宝上找了一些资料,但是要想彻底理解如何驱动,还是要看 ...

  9. STM32F103移植STEMWIN并驱动0.96寸OLED实现弹球界面效果

    现在很多带显示屏的电子产品,在待机状态下都有一个待机界面,最为经典的当属弹球界面了,当弹球碰到屏幕边界之后则反弹,先上效果图: 由于是移植了STEMWIN,所以只有STM系列单片机才可以正常跑该程序. ...

最新文章

  1. 吐血整理:手拿几个大厂 Offer 的秘密武器!
  2. php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例
  3. Qt Creator常用快捷键及技巧提升编码效率
  4. 对jvm 同步锁的理解
  5. Spring精华问答 | 什么是Spring Cloud?
  6. (转)matlab 字符串处理函数
  7. javascript二维数组
  8. Windows安装Nacos单机集群
  9. 用ng-view创建单页APP
  10. linux通过xrander添加分辨率,使用X11,XDamage,XRender和其他技巧保留屏幕内容的QPixmap副本...
  11. Android ListView + ArrayAdapter、SimpleAdapter、BaseAdapter实现列表
  12. android计算器编程思路,android计算器---思路以及计算器功能梳理(未完成)(示例代码)...
  13. 自底向上和自顶向下的区别
  14. android开发环境搭建——android studio
  15. WinRar去除广告弹窗
  16. 中国电信物联网平台物理模型创建
  17. nfs挂载方式启动linux,飞凌OK6410挂载nfs启动步骤
  18. java-net-php-python-jsp无锡尚客优酒店客房管理信息系统mp4计算机毕业设计程序
  19. 慢品国学---“人皆有不忍之心“
  20. 《日语综合教程》第七册 第四課 読み物 初日影のなかで

热门文章

  1. python中字典取值的两种方法
  2. 部署 WVP+ZLMediaKit 实现大华摄像头接入
  3. 前端:HTML学习笔记
  4. 不止于大西瓜,让你的 H5 小游戏一键“起飞”
  5. 计算机控制数控机床是什么领域,数控机床是计算机数字控制机床.ppt
  6. 什么是生命周期函数(钩子函数)
  7. 游戏场景设计干货:《纪念碑谷》潘洛斯视觉效果分析
  8. TMC5240AUU+高性能步进电机控制器-加减速规划运动控制芯片
  9. 美国在线计算机硕士排名,2020US.News美国计算机专业硕士排名 美国卡耐基梅隆大学位居第一...
  10. 3.支付的回调统一处理