完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于SPI接口的OLED数据显示
一、SPI原理 1.SPI的定义 SPI(Serial Peripheral Interface)就是串行外围设备接口。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。 2.SPI引脚 SS( Slave Select):从设备选择信号线,常称为片选信号线。 SCK (Serial Clock):时钟信号线,用于通讯数据同步。 MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。 MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。 二、显示数据 1.实验环境 (1)本次使用的是野火STM32指南者开发板 (2)0.96寸OLED显示屏相关介绍 2.实现功能 显示姓名 显示一串数字 3.程序详解 由于程序并不需要显示所有的中文,所以将对应需要的文字添加到程序就可以了 (1)首先我们使用字模软件,取出自己所需要的字模数据 进入字模软件后,我们需要进行一些设置,点击选项,设置成如下选项 黄(0) 怡(1) 凯(2) 6(3) 3(4) 1(5) 8(6) 0(7) 7(8) 0(9) 3(10) 0(11) 3(12) 1(13) 2(14) DB 10H 10H 12H D2H 52H 5FH 52H F2H 52H 5FH 52H D2H 12H 10H 10H 00H; DB 00H 00H 00H 9FH 52H 32H 12H 1FH 12H 32H 52H 9FH 00H 00H 00H 00H;“黄”,0 DB 80H 70H 00H FFH 08H 10H 40H 60H 50H 4CH 43H 40H 50H 60H C0H 00H; DB 00H 00H 00H FFH 00H 00H 00H FEH 42H 42H 42H 42H 42H FEH 00H 00H;“怡”,1 DB 5EH 50H 50H 5FH 50H 50H DEH 00H FEH 02H 02H FEH 00H 00H 00H 00H; DB 00H 7EH 42H 22H 22H 12H 93H 60H 1FH 00H 00H 3FH 40H 40H 78H 00H;“凯”,2 DB 00H E0H 10H 88H 88H 90H 00H 00H 00H 0FH 11H 20H 20H 20H 1FH 00H;“6”,3 DB 00H 30H 08H 08H 08H 88H 70H 00H 00H 18H 20H 21H 21H 22H 1CH 00H;“3”,4 DB 00H 00H 10H 10H F8H 00H 00H 00H 00H 00H 20H 20H 3FH 20H 20H 00H;“1”,5 DB 00H 70H 88H 08H 08H 88H 70H 00H 00H 1CH 22H 21H 21H 22H 1CH 00H;“8”,6 DB 00H E0H 10H 08H 08H 10H E0H 00H 00H 0FH 10H 20H 20H 10H 0FH 00H;“0”,7 DB 00H 18H 08H 08H 88H 68H 18H 00H 00H 00H 00H 3EH 01H 00H 00H 00H;“7”,8 DB 00H E0H 10H 08H 08H 10H E0H 00H 00H 0FH 10H 20H 20H 10H 0FH 00H;“0”,9 DB 00H 30H 08H 08H 08H 88H 70H 00H 00H 18H 20H 21H 21H 22H 1CH 00H;“3”,10 DB 00H E0H 10H 08H 08H 10H E0H 00H 00H 0FH 10H 20H 20H 10H 0FH 00H;“0”,11 DB 00H 30H 08H 08H 08H 88H 70H 00H 00H 18H 20H 21H 21H 22H 1CH 00H;“3”,12 DB 00H 00H 10H 10H F8H 00H 00H 00H 00H 00H 20H 20H 3FH 20H 20H 00H;“1”,13 DB 00H 70H 08H 08H 08H 08H F0H 00H 00H 30H 28H 24H 22H 21H 30H 00H;“2”,14 (2)打开keil中的测试程序 void TEST_MainPage(void) { GUI_ShowCHinese(28,20,16,"黄怡凯",1);//中文姓名 GUI_ShowString(4,48,"631807030312",16,1);//数字详细 delay_ms(1500); delay_ms(1500); } int main(void) { delay_init(); //延时函数初始化 OLED_Init(); //初始化OLED OLED_Clear(0); //清屏(全黑) while(1) { TEST_MainPage(); //界面显示 } } |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:15 , Processed in 1.104057 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号