OpenEdv-开源电子网

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

求助原子哥及各位大神!如下代码中 "u8 num"中num是一个字符,而asc2_1206[num][t]是一个数组,那么它里面的索引值num不应该是一个数字吗?

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-9-20
在线时间
0 小时
发表于 2015-10-5 09:11:56 | 显示全部楼层 |阅读模式
5金钱
//在指定位置显示一个字符
//x,y:起始坐标
//num:要显示的字符:" "--->"~"
//size:字体大小 12/16/24
//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{    
    u8 temp,t1,t;
u16 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数
 num=num-' ';//得到偏移后的值(ASCII字库是从空格开始取模,所以-' '就是对应字符的字库)
for(t=0;t<csize;t++)
{   
if(size==12)temp=asc2_1206[num][t]; //调用1206字体
else if(size==16)temp=asc2_1608[num][t]; //调用1608字体
else if(size==24)temp=asc2_2412[num][t]; //调用2412字体
else return; //没有的字库
for(t1=0;t1<8;t1++)
{    
if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
temp<<=1;
y++;
if(y>=lcddev.height)return; //超区域了
if((y-y0)==size)
{
y=y0;
x++;
if(x>=lcddev.width)return; //超区域了
break;
}
}    
}          
}   

最佳答案

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

理解这句话,你就懂了: num=num-' ';//得到偏移后的值(ASCII字库是从空格开始取模,所以-' '就是对应字符的字库)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-5 09:11:57 | 显示全部楼层
理解这句话,你就懂了:
num=num-' ';//得到偏移后的值(ASCII字库是从空格开始取模,所以-' '就是对应字符的字库)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-10-5 09:46:19 | 显示全部楼层
是一個數字阿
怎麼了?
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-9-20
在线时间
0 小时
 楼主| 发表于 2015-10-5 11:59:49 | 显示全部楼层
回复【2楼】Rocks:
---------------------------------
可是,void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)在void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p){
                     LCD_ShowChar(x,y,*p,size,0);
}被调用,而主函数里LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");然后,我就不明白num了,此时num内容是什么?
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-10-5 16:29:43 | 显示全部楼层
有沒有原始檔阿
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-9-20
在线时间
0 小时
 楼主| 发表于 2015-10-5 17:35:07 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
明白了,谢谢原子哥!!!
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2017-6-21
在线时间
9 小时
发表于 2017-7-10 18:42:17 | 显示全部楼层
zk 发表于 2015-10-5 17:35
回复【5楼】正点原子:
---------------------------------
明白了,谢谢原子哥!!!

能说一下吗,我还是不明白,新手
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1310
金钱
1310
注册时间
2014-7-23
在线时间
418 小时
发表于 2017-7-10 23:14:18 | 显示全部楼层
渣渣的我 发表于 2017-7-10 18:42
能说一下吗,我还是不明白,新手

const unsigned char asc2_1206[95][12]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-18 14:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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