用arduino开发板在ssd1315上显示hello
时间: 2024-02-11 17:09:56 浏览: 81
好的,这里是一个基本示例程序,可以使用Arduino开发板控制SSD1315显示"Hello":
```
#include <SPI.h>
#define SSD1315_DC_PIN 9
#define SSD1315_CS_PIN 10
SPISettings spiSettings(1000000, MSBFIRST, SPI_MODE0);
void setup() {
// 初始化SPI总线
SPI.begin();
pinMode(SSD1315_DC_PIN, OUTPUT);
pinMode(SSD1315_CS_PIN, OUTPUT);
// 初始化SSD1315
digitalWrite(SSD1315_CS_PIN, LOW);
digitalWrite(SSD1315_DC_PIN, LOW);
SPI.beginTransaction(spiSettings);
SPI.transfer(0xAE); // 关闭屏幕
SPI.transfer(0xD5); // 设置显示时钟分频
SPI.transfer(0x80); // 默认值
SPI.transfer(0xA8); // 设置COM扫描方向
SPI.transfer(0x3F); // 默认值
SPI.transfer(0xD3); // 设置显示偏移
SPI.transfer(0x00); // 默认值
SPI.transfer(0x40); // 设置起始行
SPI.transfer(0xA0); // 设置列地址
SPI.transfer(0xC0); // 设置扫描方向
SPI.transfer(0xDA); // 设置COM引脚硬件配置
SPI.transfer(0x12); // 默认值
SPI.transfer(0x81); // 设置对比度
SPI.transfer(0x7F); // 默认值
SPI.transfer(0xA4); // 关闭全局显示
SPI.transfer(0xA6); // 设置正/反显示
SPI.transfer(0xAF); // 打开屏幕
SPI.endTransaction();
}
void loop() {
digitalWrite(SSD1315_CS_PIN, LOW);
digitalWrite(SSD1315_DC_PIN, LOW); // DC低电平表示写命令
SPI.beginTransaction(spiSettings);
SPI.transfer(0x21); // 设置列地址范围
SPI.transfer(0); // 开始列
SPI.transfer(127); // 结束列
SPI.transfer(0x22); // 设置页地址范围
SPI.transfer(0); // 开始页
SPI.transfer(3); // 结束页
digitalWrite(SSD1315_DC_PIN, HIGH); // DC高电平表示写数据
SPI.transfer(0xFF); // "H"
SPI.transfer(0x81); // "e"
SPI.transfer(0x81); // "l"
SPI.transfer(0x87); // "l"
SPI.transfer(0x87); // "o"
SPI.transfer(0x00); // 空白像素
SPI.transfer(0x00); // 空白像素
SPI.transfer(0x00); // 空白像素
digitalWrite(SSD1315_CS_PIN, HIGH);
SPI.endTransaction();
delay(1000); // 等待1秒钟
}
```
这个程序使用了SPI接口将数据发送到SSD1315,并且使用了Arduino的SPI库来进行SPI通信。它将"Hello"的像素数据写入到SSD1315的内存中,并且通过设置列地址和页地址范围来将数据显示在屏幕上。
请注意,在这个示例程序中,我们假设你将SSD1315的DC引脚连接到了Arduino的数字引脚9上,而将CS引脚连接到了数字引脚10上。如果你的引脚连接不同,请相应地修改程序。
希望这个示例程序能够帮助你开始使用SSD1315!
阅读全文