玩转X-CTR100 l STM32F4 l OLED显示-SSD1306无字库
我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】

OLED显示屏具有自发光特性,不需要背光,对比度高等特点,常用于电子制作。
本节介绍0.96寸OLED显示屏的使用,X-CTR100控制器配套专用OLED显示模块X-CTR100-OLED,即插即用。
本节例程也适用于具有SPI接口的通用OLED模组(SSD1306不带字库)。
原理
OLED有机发光二极管(Organic Light-Emitting Diode),同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
X-CTR100-OLED为X-CTR100控制器专用OLED显示模块,显示模块直接安插在X-CTR100控制器上。
显示模块采用0.96寸128X64规格OLED显示屏,驱动芯片为SSD1306,不带字库,关于OLED显示屏详细资料请参考技术资料相关内容。
例程
实现了OLED显示功能,并读取加速度数据通过OLED实时显示,显示功能包括图片显示、字符显示、汉字显示、反色显示。
硬件说明
硬件资源:
- 串口UART1
- MPU6050
- SPI3扩展接口(LE)
- X-CTR100-OLED显示屏模组或具有SPI接口的OLED显示模组(需自备)

连接图

软件生态
X-SOFT软件生态,X-API扩展文件如下。
ax_oled.c——OLED操作函数源文件
ax_oled.h——OLED操作头文件
ax_oled_ascii.h——ASCII字模数据文件
ax_oled_chinese.h——汉字字模数据文件
ax_oled_picture.h——图片数据文件
接口函数
|
void AX_OLED_Init(void); //OLED初始化 void AX_OLED_ClearScreen(void); //OLED清除屏幕 void AX_OLED_DisplayChar(uint8_t x, uint8_t y, uint8_t ch, uint8_t mode); // OLED指定位置显示一个ASCII字符(8X16) void AX_OLED_DisplayAsciiStr(uint8_t x, uint8_t y, uint8_t *ch, uint8_t mode); //OLED指定位置显示ASCII字符串(8X16) void AX_OLED_DisplayChinese(uint8_t x, uint8_t y, const uint8_t *pbuf, uint8_t mode); //OLED指定位置显示一个汉字(16X16) void AX_OLED_DisplayPicture(uint8_t x, uint8_t y, uint8_t xsize, uint8_t ysize, const uint8_t *pbuf, uint8_t mode); //OLED指定位置显示一个指定尺寸照片 void AX_OLED_DisplayNum(uint8_t x, uint8_t y, uint8_t num, uint8_t mode); //OLED指定位置显示一个数字(8X16) void AX_OLED_DisplayValue(uint8_t x, uint8_t y, int32_t value, uint8_t inte, uint8_t deci, uint8_t mode); //OLED指定位置显示数值 |
软件说明
X-CTR100-OLED模块为不带字库OLED模组,字模需自己采集。当前X-API函数默认字符大小为16X8,汉字大小为16X16。ASCII字符已在ax_oled_ascii.h文件中,无须用户准备,可直接使用。汉字和图片需要用户自己取模,下面以PCtoLCD2002完美版为例进行说明。
汉字提取,打开软件,选择字符模式。

选择"选项"按钮,按如下配置。

字高,字宽选择16,输入要取模的汉字,例如下"塔克科技",点击"生成字模"按钮,即可完成取模。

图像取模类似,首先准备要取模的黑白BMP图片,尺寸为小于128X64的任意图片,可通过Windows自带画图软件编辑。打击"文件-打开"按钮,可载入图片。点击"生成字模"即可生成需要的字模。

例程代码开始显示XTARK LOGO图片,然后显示实时加速度数据,主程序代码。
|
int main(void) { int16_t acel[3];
//XRT1初始化 AX_Init(115200); printf("***OLED 显示例程***\r\n\r\n");
//模块初始化及配置 AX_OLED_Init();
//MPU6050初始化 AX_MPU6050_Init(); AX_MPU6050_SetAccRange(AX_ACC_RANGE_2G); //设置加速度量程 AX_MPU6050_SetGyroRange(AX_GYRO_RANGE_250); //设置陀螺仪量程 AX_MPU6050_SetGyroSmplRate(200); //设置陀螺仪采样率 AX_MPU6050_SetDLPF(AX_DLPF_ACC94_GYRO98); //设置低通滤波器带宽
AX_OLED_DisplayPicture(0, 0, 128, 8, PIC64X128_XTARK, 0); AX_Delayms(1000); AX_OLED_DisplayPicture(0, 0, 128, 8, PIC64X128_XTARK, 1); AX_Delayms(1000); AX_OLED_ClearScreen();
AX_OLED_DisplayChinese(0, 0, CH_塔, 1); AX_OLED_DisplayChinese(16, 0, CH_克, 1); AX_OLED_DisplayChinese(32, 0, CH_科, 1); AX_OLED_DisplayChinese(48, 0, CH_技, 1); AX_OLED_DisplayChinese(64, 0, CH_创, 0); AX_OLED_DisplayChinese(80, 0, CH_客, 0); AX_OLED_DisplayChinese(96, 0, CH_精, 0); AX_OLED_DisplayChinese(112, 0, CH_品, 0);
AX_OLED_DisplayAsciiStr(0, 2, "ACC_X:", 0); AX_OLED_DisplayAsciiStr(0, 4, "ACC_Y:", 0); AX_OLED_DisplayAsciiStr(0, 6, "ACC_Z:", 0);
while (1) { AX_MPU6050_GetAccData(acel); //读取三轴加速度数据 AX_OLED_DisplayValue(48, 2, acel[0], 4, 2, 0); //显示加速度数值 AX_OLED_DisplayValue(48, 4, acel[1], 4, 2, 0); //显示加速度数值 AX_OLED_DisplayValue(48, 6, acel[2], 4, 2, 0); //显示加速度数值
AX_Delayms(200); AX_LEDG_Toggle(); } } |
实现效果
显示效果如下,其中"塔克科技"为反色显示,"创客精品"为正色显示,加速度数据实时显示,更新频率为5Hz。


玩转X-CTR100 l STM32F4 l OLED显示-SSD1306无字库的更多相关文章
- 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接 ...
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
- 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器如何开启ST ...
随机推荐
- java的事务类型及定义
转载: 什么是事务: 首先,说说什么事务.我认为事务,就是一组操作数据库的动作集合. 事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务. ...
- HDU 3466 Proud Merchants(0-1背包)
http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意: 最近,iSea去了一个古老的国家.在这么长的时间里,它是世界上最富有和最强大的王国.结果,这个国家 ...
- 基于贝叶斯优化的超参数tuning
https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/ 贝叶斯优化:使用高斯过程作为代理函数, ...
- Python操作Rabbit MQ的5种模式
python版本: 2.7.14 一 消息生产者代码: # -*- coding: utf-8 -*- import json import pika import urllib import u ...
- shell逻辑运算符
逻辑运算符 以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 && 逻辑的 AND [[ $a -lt 100 && ...
- Jmeter 抓app包 抓到一半不好用了
错误描述: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl ...
- 《WAP团队项目需求分析改进》
基于原型的团队项目需求调研与分析 本项目是一个家教系统的实现,随着时代的进步,现今已经进入信息技术时代,越来越多的人注意到了教育的重要性.家长对于孩子的学习提高注意力,大家都不想自己的孩子输在起跑线上 ...
- 《剑指offer》第三十题(包含min函数的栈)
// 面试题30:包含min函数的栈 // 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min // 函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). #i ...
- HttpClient的用法总结
使用HttpClient连接服务端的步骤: 1.创建HttpClient客户端对象 HttpClient client = new DefaultHttpClient(); 2.创建请求对象 ...
- Codeforces 294D - Shaass and Painter Robot
294D - Shaass and Painter Robot 思路: 可以用数学归纳法证明一个结论:整个棋盘黑白相间当且仅当边缘黑白相间. 分奇偶讨论又可得出边缘黑色格个数为n+m-2 这样就可以暴 ...