云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > stm32-12864并行驱动程序

stm32-12864并行驱动程序

  • 62 次阅读
  • 3 次下载
  • 2025/6/13 16:23:23

*函数描述 *输入参数 *输出结果 *返回值 : 清整个GDRAM空间 :无 :无 :无

******************************************************************************* /

void ClearAll(void) {

uint8_t xxx, yyy; for(yyy=0; yyy<64; yyy++) {

for(xxx=0; xxx<16; xxx++) {

WriteCmd(0x34); WriteCmd(yyy+0x80);

//行地址

WriteCmd(xxx+0x80); //列地址WriteCmd(0x30); WriteData(0x00); WriteData(0x00); } } }

/****************************************************************************** *

*函数名 :DrawLineX *函数描述 :画水平线 *输入参数 : xx0 ---- X 起始, xx1 ---- X 结束, yy ----Y *输出结果 :无 *返回值 :无 ******************************************************************************* /

void DrawLineX(uint8_t xx0,uint8_t xx1,uint8_t yy) {

uint8_t temp; if(xx0 > xx1) {

temp = xx0; xx0 = xx1; xx1 = temp; }

for(xx0=xx0; xx0<=xx1; xx0++) {

DrawPoint(xx0, yy); } }

/****************************************************************************** *

*函数名 :DrawLineY *函数描述 :画垂直线 *输入参数 : yy0 ---- Y 起始, yy1 ---- Y结束,xx------ X *输出结果 :无 *返回值 :无 ******************************************************************************* /

void DrawLineY(uint8_t xx, uint8_t yy0, uint8_t yy1) {

uint8_t temp; if(yy0>yy1) {

temp=yy0; yy0=yy1; yy1=temp; }

for(yy0=yy0;yy0<=yy1;yy0++) {

DrawPoint(xx,yy0); } }

/****************************************************************************** *

*函数名 :DrawLine *函数描述 :画直线 *输入参数 : xx1 ---- X 起始, yy1 ---- Y 起始, xx2 ---- X 结束, yy2 ---- Y结束,

x:横坐标值,范围0~127 y:纵坐标值,范围0~63 xx2>=xx1

*输出结果 :无 *返回值 :无 ******************************************************************************* /

void DrawLine(uint8_t xx1,uint8_t yy1,uint8_t xx2,uint8_t yy2) {

uint8_t x_add,y_add,y_temp,Line_K;

xx1&=0x7f; xx2&=0x7f;

//去掉128 倍

yy1&=0x3f;

yy2&=0x3f; //去掉64 倍

if(xx2>xx1) {

if( yy2>yy1 || yy2==yy1 ) {

Line_K=(yy2-yy1)/(xx2-xx1);

for(x_add=0;x_add<=(xx2-xx1);x_add++) {

y_temp=yy1+(Line_K*(x_add+xx1)); DrawPoint(x_add+xx1,y_temp); } } else {

Line_K=(yy1-yy2)/(xx2-xx1); for(x_add=0;x_add<=(xx2-xx1);x_add++) {

y_temp=yy1-(Line_K*(x_add+xx1));

DrawPoint(x_add+x1,y_temp); } }

}

else if(xx2==xx1) {

for(y_add=0;y_add<=(yy2-yy1);y_add++) {

DrawPoint(xx1,yy1+y_add);

} } }

/****************************************************************************** *

*函数名 :DrawCircle

*函数描述 *输入参数 *输出结果 *返回值 :画圆函数

: x0, y0 为圆心坐标, r为圆的半径 :无 :无

******************************************************************************* /

void DrawCircle(uint8_t x0 , uint8_t y0 , uint8_t r) {

int8_t a,b; int8_t di;

if( r > 31 || r ==0)

return;

//圆大于液晶屏或者没半径则返回

a = 0; b = r;

di = 3 - 2 * r;//判断下个点位置的标志

while(a <= b) {

DrawPoint( x0 - b , y0-a); DrawPoint( x0 + b , y0-a); DrawPoint( x0 - a , y0+b); DrawPoint( x0 - b , y0-a); DrawPoint( x0 - a , y0-b); DrawPoint( x0 + b , y0+a); DrawPoint( x0 + a , y0-b); DrawPoint( x0 + a , y0+b); DrawPoint( x0 - b , y0 +a); a ++;

//使用bresenham 算法画圆

if(di < 0)

di += 4 * a + 6; else

{

di += 10 + 4 * (a - b); b --; }

DrawPoint( x0 + a , y0 + b); } }

//3 //0 //1 //7 //2 //4 //5 //6

搜索更多关于: stm32-12864并行驱动程序 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

*函数描述 *输入参数 *输出结果 *返回值 : 清整个GDRAM空间 :无 :无 :无 ******************************************************************************* / void ClearAll(void) { uint8_t xxx, yyy; for(yyy=0; yyy<64; yyy++) { for(xxx=0; xxx<16; xxx++) { WriteCmd(0x34); WriteCmd(yyy+0x80); //行地址 WriteCmd(xxx+0x80); //列地址WriteCmd(0x30); WriteData(0x00); WriteData(0x00); } } }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com