这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 活动中心» 下载专区» STM32 SPI驱动OLED(ssd1306 12864)

共13条 1/2 1 2 跳转至

STM32 SPI驱动OLED(ssd1306 12864)

工程师
2013-09-14 08:18:42 打赏

最近驱OLED发现卖家给的程序有些不足,自己就改了下。

希望对你有帮助。code.zip




关键词: STM32 驱动 ssd1306 12864

院士
2013-09-14 09:41:06 打赏
2楼
感谢分享~~~~

高工
2013-09-14 09:49:41 打赏
3楼

看看楼主的改进方案


高工
2013-09-14 12:24:14 打赏
4楼

楼主好人,话说没玩过OLED,倒是看过不少资料。SSD系列的应该是用的比较多的。

感谢楼主分享。


工程师
2013-09-14 20:18:40 打赏
5楼

应该的。。。。。


专家
2013-09-15 10:22:13 打赏
6楼
支持开源

工程师
2013-09-15 18:12:50 打赏
7楼
想法来源于OLED现实汉字,不行繁琐的取模,把字库存单片机里面,无奈容量不够,板子也做好了。


只有做ASCII的转换了,为了提高兼容性 就自己写了个转换函数。把以前32例程中的AsciiLib.c AsciiLib.H包含进去直接可以用了,就是有点慢。。。。


void FORM_CONVERT(unsigned char* pBuffer,unsigned char* dBuffer)

{


uint8_t val_tem1[8][8] = {},val_tem2[8][8] = {};
uint8_t i,j,temp;

for(i=0;i<8;i++)
{
temp = pBuffer[i];
for(j=0;j<8;j++)
{
if(temp & 0x80)
{
val_tem1[7-i][j] = 1;
}
else
{
val_tem1[7-i][j] = 0;
}
temp = temp << 1;
}
}

for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
temp = temp << 1;
temp |= val_tem1[j][i];
}
dBuffer[i] = temp;
temp = 0;
}

for(i=0;i<8;i++)
{
temp = pBuffer[i+8];
for(j=0;j<8;j++)
{
if(temp & 0x80)
{
val_tem2[7-i][j] = 1;
}
else
{
val_tem2[7-i][j] = 0;
}
temp = temp << 1;
}

}
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
temp = temp << 1;
temp |= val_tem2[j][i];
}
dBuffer[i+8] = temp;
temp = 0;
}

}




菜鸟
2014-10-12 17:28:02 打赏
8楼
谢谢,再用

专家
2014-10-29 10:21:51 打赏
9楼
模拟还是硬件spi?

工程师
2014-11-02 16:31:42 打赏
10楼
硬件SPI。

共13条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]