|
2019年,某鱼1元一片的时候买了100多片STM32F401CCU6,打了一些PCB,一直没怎么用。去年在某坛又买了一些(是一些)疑似ST7567的LCD13264屏,也没想到用到什么地方去。大家是否也有这样的经历——把屏驱动点亮后就一扔等着吃灰。我就这样,点亮后玩过了,扔一角吃灰了。
没事买那么多STM32F401CCU6?有图为证:
打样的PCB:
写了一些代码玩过OLED屏:
后来买的ST7567LCD:
前阵子羊了,在家没事,边休息边写,与大家分享一下吧,模拟翻页,我的理解就是滚动呗。当然,画线画圆呀也可以;像OLED那样定义XY坐标。
重点来了:
- u8 LCD_GRAM[264][9]; /*将显示缓存区设置位显示屏的2倍,是为了使字符实现滚动效果*/
- //更新显存到LCD
- void LCD_Refresh_Gram(void)
- {
- u16 i,n;
- for(i=0;i<9;i++)
- {
- LCD_WrCmd(0xb0+i); //设置页地址(0~8)
- LCD_WrCmd(0x10); //设置显示位置—列高地址
- LCD_WrCmd(0x00); //设置显示位置—列低地址
- /*将显示数据写入缓存区的中间*/
- for(n=0;n<132;n++)LCD_WrData(LCD_GRAM[n][i]);
- }
- }
复制代码- //画点
- //x:0~127
- //y:0~63
- //t:1 填充 0,清空
- void LCD_DrawPoint(u16 x,u8 y,u8 t)
- {
- u8 pos,bx,temp=0;
- if(x>132||y>64)return;//超出范围了.
- pos=y/8;
- bx=y%8;
- temp=1<<(bx);
- if(t)LCD_GRAM[x][pos]|=temp;
- else LCD_GRAM[x][pos]&=~temp;
- }
复制代码
有了以上代码,想怎样驱动都可以了吧!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|