OpenEdv-开源电子网

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

有知道的吗?,12864 ST7920 关于画点函数乱码的问题

[复制链接]

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
发表于 2016-12-1 21:17:31 | 显示全部楼层 |阅读模式
20金钱
源代码
void DrawPoint(unsigned char x,unsigned char y)
{
    unsigned int bt=0,read=0;
    unsigned char x_adr,y_adr,high_bit,low_bit;
        Write_Cmd(0x34);
        Write_Cmd(0x34);
        Delay1ms(1);
    y_adr=0x80+y%32;            //计算Y轴的地址,当Y大于31时,Y的坐标是下半屏,当Y小于等于31为上半屏。
    if(y>31)                    //从0X88开始,小于31时X的地址是在上半屏,从0X80开始
          x_adr=0x88+x/16;        
    else  x_adr=0x80+x/16;
    bt=0x8000>>(x%16); //求这个点到底是在哪个点
      Write_Cmd(y_adr);        //读取数据的时候要先写入所取数据的地址
          Write_Cmd(x_adr);
    Read_Data();         //读取的第一个字节不要,
    read=Read_Data();     //从第二个字节开始接收。
    read<<=8;
    read|=Read_Data();
    bt=bt|read;
    high_bit=bt>>8;
    low_bit=bt%256;
    Write_Cmd(y_adr);     //写入点的时候,重新写入地址,因为地址已经改变。
    Write_Cmd(x_adr);
    Write_Data(high_bit);
    Write_Data(low_bit);
    Write_Cmd(0x36); //开显示,转回基本指令集 */      
}

显示普通字符是没有问题的,(说明我的电路和基本的读写函数是没有问题的)但是只要一开启绘图显示就会显示乱码?
有没有可以帮忙看看是我的程序哪里写错了吗?

拜托!!!

最佳答案

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

已经解决了,是因为用ST7920控制器画点之前需要把DGRAM全部清零,因为12864的清屏函数并不是清除DGRAM的,所以需要写一个函数就是把所有DGRAM赋零的函数,在做课程设计贪吃蛇,快完成了。等做完就分享
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
 楼主| 发表于 2016-12-1 21:17:32 | 显示全部楼层

已经解决了,是因为用ST7920控制器画点之前需要把DGRAM全部清零,因为12864的清屏函数并不是清除DGRAM的,所以需要写一个函数就是把所有DGRAM赋零的函数,在做课程设计贪吃蛇,快完成了。等做完就分享
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165369
金钱
165369
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-12-1 22:45:05 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-1 16:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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