OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2546|回复: 4

大神帮我看看,我的12864打点程序为什么只能话竖线,横线就被后面的覆盖了,只剩下最后一个点?

[复制链接]

22

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-9-26
在线时间
59 小时
发表于 2016-12-14 18:07:18 | 显示全部楼层 |阅读模式
20金钱
大神帮我看看,我的12864打点程序为什么只能话竖线,横线就被后面的覆盖了,只剩下最后一个点?

u8 DrawDots(u8 x,u8 y,u8 color)//打点函数   //x,y为128*64 点阵的坐标
{
     u8 row,xlabel,xlabel_bit;
     u8 Read_H=0,Read_L=0;  
     Write_LCD_Command(0x34);       //扩充指令
     Write_LCD_Command(0x36);       //绘图指令
     xlabel=x>>4;            //确定水平坐标地址
     xlabel_bit=x & 0x0F; // 细分水平坐标中的第几位
     if(y<32) row=y;
     else      {         row=y-32;         xlabel+=8;      }
     Write_LCD_Command(row+0x80);
      Write_LCD_Command(xlabel+0x80);
      Read_Data();
      Read_H=Read_Data();
      Read_L=Read_Data();   
      Write_LCD_Command(row+0x80);
      Write_LCD_Command(xlabel+0x80);   //水平坐标地址+基址=显示的水平地址   
      if(xlabel_bit<8)
     {
          switch(color)
         {
             case 0:Read_H &=(~(0x01<<(7-xlabel_bit))); break; //变暗 ,看不见
             case 1:Read_H |=(0x01<<(7-xlabel_bit)); break; //变亮  ,看得见
             case 2:Read_H ^=(0x01<<(7-xlabel_bit)); break; //反转
             default:break;
          }
         Write_LCD_Data(Read_H);
         Write_LCD_Data(Read_L);
      }
      else
     {
          switch(color)
          {
               case 0:Read_L &=(~(0x01<<(15-xlabel_bit))); break; //变暗    ,看不见
               case 1:Read_L |=(0x01<<(15-xlabel_bit)); break; //变亮  ,看得见
               case 2:Read_L ^=(0x01<<(15-xlabel_bit)); break; //反转
               default:break;
          }
          Write_LCD_Data(Read_H);
          Write_LCD_Data(Read_L);
     }
     Write_LCD_Command(0x30);//恢复正常模式  

最佳答案

查看完整内容[请看2#楼]

论坛搜索,参考别人代码
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-14 18:07:19 | 显示全部楼层
论坛搜索,参考别人代码
回复

使用道具 举报

22

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2016-12-18 15:33:37 | 显示全部楼层
正点原子 发表于 2016-12-14 18:07
论坛搜索,参考别人代码

原子哥 想问一下12864的液晶串行口读取ram可以实现么,网上有说不行,可是51单片机我看到有实现的
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-10-24
在线时间
13 小时
发表于 2016-12-19 08:56:16 | 显示全部楼层
lhshengshi 发表于 2016-12-18 15:33
原子哥 想问一下12864的液晶串行口读取ram可以实现么,网上有说不行,可是51单片机我看到有实现的

看数据手册吧,有些不支持串口READ,不过可以用缓存实现读,12864缓存1KB。
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-12-13
在线时间
15 小时
发表于 2016-12-21 01:49:07 来自手机 | 显示全部楼层
读函数里面判断不忙后给0xff,如P0=0XFF;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 13:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表