初级会员

- 积分
- 117
- 金钱
- 117
- 注册时间
- 2015-4-27
- 在线时间
- 39 小时
|

楼主 |
发表于 2015-7-18 18:52:52
|
显示全部楼层
可能不够详细吧 我再贴出代码
#include "stm32f10x.h"
#include "oled.h"
#include "delay.h"
#include "oledfont.h"
#include "usart1.h"
#include "gpio.h"
volatile u8 Lcd_Refresh_Int=0;
#define Vop 0x2a//21 //Set Reference Voltage (0~0x3F)
#define Ratio 0x24//24 //SET INTERNAL REGULATOR RESISTOR RATIO(100B)-POR(20~27)
#define  age0 0xb0 //
#define  age_max 0xb8 //
#define Column_h 0x10 //
#define Column_l 0x00 //
void OLED_Init(void)
{
OLED_RST=1;
delay_ms(10);
OLED_RST=0;
delay_ms(50);
OLED_RST=1;
WriteCmd(0xE2);/
delay_us(20);
WriteCmd(0xA3);//
WriteCmd(0xA0);/
WriteCmd(0xC8);/
WriteCmd(0x25);//
WriteCmd(0x81);/
WriteCmd(0x25);// ok
WriteCmd(0xF8);//
WriteCmd(0x01);
WriteCmd(0x2F);//
WriteCmd(0xA6); //°
WriteCmd(0xA4); //
WriteCmd(0x40);//
WriteCmd(0xAF); //
}
//===========LCD_??12864??=============
void Lcd12864_ClearScreen(void)
{
uchar i, j;
for(i=0; i<8; i++) ?
{
WriteCmd(0xB0+i); /
WriteCmd(0x10); ?
WriteCmd(0x00);
for(j=0; j<128; j++)
{
WriteData(0x00);
}
}
}
void displayPhoto (uchar *pic)
{
uchar a,x;
for(a = 0; a < 8; a++ )
{
WriteCmd(0xB0 + a);
WriteCmd(0x10);
WriteCmd(0x00);
for( x = 0; x < 128; x ++ )
{
WriteData(*pic++);
}
}
}
void WRITE_STRING816(uchar plat,uchar column,uchar p, uchar x0[][16], uchar c)
{
uchar page,page1,col,col_h,col_l;
uchar i,a,j=0;
page1= plat*2;
page=page1+Page0;
col=column*8;
col_h=((col>>4)|0xf0)&0x1f;
col_l=col&0x0f;
for(a = 0; a < 2; a++)
{
WriteCmd(col_h);
WriteCmd(col_l);
WriteCmd(page+a);
for(i = 0; i < 8; i ++ )
{
if(c == 0){WriteData(x0[p][j++]);}
if(c == 1){WriteData(~(x0[p][j++]));}
}
}
}
void WriteCmd( u8 cmd)///???ü??
{
OLED_A0=0;
OLED_SCLK=0;
SPI_RW(cmd);
}
void WriteData(u8 data)//??????
{
OLED_A0=1;
OLED_SCLK=0;
SPI_RW(data);
}
以上的这些是我对ST7567的基本操作来的 望大家给点意见 解惑一下迷途小书童 |
|