驱动OLED,包含OLED驱动函数
OLED显示实验.rar
void GUI_Fill(u8 sx,u8 sy,u8 ex,u8 ey,u8 color)
{
u8 i,j;
u8 width=ex-sx 1; //得到填充的宽度
u8 height=ey-sy 1; //高度
for(i=0;i<height;i )
{
for(j=0;j<width;j )
{
OLED_Set_Pixel(sx j, sy i,color);
}
}
OLED_Display();
void GUI_DrawLine(u8 x1, u8 y1, u8 x2, u8 y2,u8 color)
{
u16 t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
int incx,incy,uRow,uCol;
delta_x=x2-x1; //计算坐标增量
delta_y=y2-y1;
uRow=x1;
uCol=y1;
if(delta_x>0)incx=1; //设置单步方向
else if(delta_x==0)incx=0;//垂直线
else {incx=-1;delta_x=-delta_x;}
if(delta_y>0)incy=1;
else if(delta_y==0)incy=0;//水平线
else{incy=-1;delta_y=-delta_y;}
if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴
else distance=delta_y;
for(t=0;t<=distance 1;t )//画线输出
{
OLED_Set_Pixel(uRow,uCol,color);
xerr =delta_x ;
yerr =delta_y ;
if(xerr>distance)
{
xerr-=distance;
uRow =incx;
}
if(yerr>distance)
{
yerr-=distance;
uCol =incy;
}
}
OLED_Display();
}
评论