完善资料让更多小伙伴认识你,还能领取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赋零的函数,在做课程设计贪吃蛇,快完成了。等做完就分享
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3169 浏览 9 评论
2853 浏览 16 评论
3361 浏览 1 评论
8763 浏览 16 评论
3959 浏览 18 评论
9587浏览 3评论
933浏览 3评论
480浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
481浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2201浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-5 18:15 , Processed in 1.008388 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191