完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这个函数不懂。。
void display_GB2312_string(uchar y,uchar x,uchar *text) { uchar i= 0; uchar addrHigh,addrMid,addrLow ; uchar fontbuf[32]; while((text[i]>0x00)) { if(((text[i]>=0xb0) &&(text[i]<=0xf7))&&(text[i+1]>=0xa1)) { /*????(GB2312)???eee?????IC ????????????:*/ /*Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0*/ /*????8 ???????????,????????*/ fontaddr = (text[i]- 0xb0)*94; fontaddr += (text[i+1]-0xa1)+846; fontaddr = (ulong)(fontaddr*32); addrHigh = (fontaddr&0xff0000)>>16; /*????8 ?,?24 ?*/ addrMid = (fontaddr&0xff00)>>8; /*????8 ?,?24 ?*/ addrLow = fontaddr&0xff; /*????8 ?,?24 ?*/ get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32 );/*?32 ??????,??"fontbuf[32]"*/ display_graphic_16x16(y,x,fontbuf);/*?????LCD ?,y ????,x ????,fontbuf[]???*/ i+=2; x+=16; } else if((text[i]>=0x20) &&(text[i]<=0x7e)) { unsigned char fontbuf[16]; fontaddr = (text[i]- 0x20); fontaddr = (unsigned long)(fontaddr*16); fontaddr = (unsigned long)(fontaddr+0x3cf80); addrHigh = (fontaddr&0xff0000)>>16; addrMid = (fontaddr&0xff00)>>8; addrLow = fontaddr&0xff; get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,16 );/*?16 ??????,??"fontbuf[32]"*/ display_graphic_8x16(y,x,fontbuf);/*??8x16 ?ASCII ??LCD ?,y ????,x ????,fontbuf[]???*/ i+=1; x+=8; } else i++; } } 这是JLX12864显示程序 但是调用时display_GB2312_string(7,1,"?5X7 ??ASCII ?"); 总不行不知道为什莫.。。。 |
|
相关推荐 |
|
2817 浏览 0 评论
1747 浏览 2 评论
4926 浏览 2 评论
3174 浏览 0 评论
这是汽车360全景控制器上的主板,请问圆圈中的原件是什么,起什么作用?
2812 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 09:05 , Processed in 0.553510 second(s), Total 67, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号