TA的每日心情 | 开心 2022-8-16 09:50 |
---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
|
在点亮led灯之后,要做什么呢,当然是让屏幕先亮起来了,没有屏幕怎么搞游戏机。
Blazar β-Board开发版用的是OLED屏,分辨率有128*64,体积却不大,小巧玲珑。
先看图:
oled屏幕用的是spi通讯,这里我们用io口模拟spi的方式驱动,硬件连接也不允许用硬件的spi,初始化还是和灯的一样,全部配置成推挽就可以。驱动程序附到最后了。这里就几个函数做些说明。
void LEDPIN_Init(void); //LED控制引脚初始化
void OLED_Init(void);//oled引脚的初始化
//==============================================================
//函数名: void LED_PrintBMP(byte x0,byte y0,byte x1,byte y1,byte bmp[]);
//功能描述:显示BMP图片 大小为(x1-x0+1) × ((y1-y0+1)*8)
// BMP图片先取页码y为0以8位(低位在上)为单位取满(x1-x0+1)列
// 再取页码y为1以8位(低位在上)为单位取满(x1-x0+1)列以此类推
//参数:x的范围为0~127,y为页的范围0~7
//返回:无
//==============================================================
void LED_PrintBMP(byte x0,byte y0,byte x1,byte y1,byte bmp[]);
//==============================================================
//函数名: void LED_PrintValue(uchar x, uchar y, char data);
//功能描述:将一个char型数转换成3位数进行显示
//参数:x的范围为0~122,y为页的范围0~7,data为需要转化显示的数值
//返回:无
//==============================================================
void LED_PrintValueC(uint8 x, uint8 y,signed char data)
//==============================================================
//函数名: void LED_PrintValueI(uchar x, uchar y, int data);
//功能描述:将一个int型数转换成5位数进行显示
//参数:x的范围为0~120,y为页的范围0~7,data为需要转化显示的数值
//返回:无
//==============================================================
void LED_PrintValueI(uint8 x, uint8 y, int data);
这几个函数就是显示变量用的,下边炫酷的来了,显示汉字的和显示bmp图片的;
小的字是16*14的,大的字是64*64的,
void LED_P14x16Str(byte x,byte y,byte ch[]);函数调用的这个函数,大的字调用的是画图的函数,
void LED_PrintBMP(byte x0,byte y0,byte x1,byte y1,byte bmp[]);这个函数也可以显示位图,
但是这些都需要先进行取模的,软件用的
配置选项也给了。严格按照这个取模写汉字,不然出来乱码可不关我的事。
oled的驱动程序在网盘里。
链接:https://pan.baidu.com/s/1dEWB7SP 密码:tl09 |
|