OpenEdv-开源电子网

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

SIM900A自己写字库问题

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-4-7
在线时间
3 小时
发表于 2019-4-27 14:15:01 | 显示全部楼层 |阅读模式
1金钱
我用的是原子哥的代码,因为没有买SD卡,所以自己搞了一个字库函数,调用后液晶显示屏显示汉字正常,但发送短信,依然只能发送字符,汉字都没了,这是为什么?要在哪里改?
//显示一个指定大小的汉字
//x,y :汉字的坐标
//font:汉字GBK码
//size:字体大小
//mode:0,正常显示,1,叠加显示

void Show_Font(u16 x,u16 y,u8 *str,u8 size,u8 mode)
{
u8 temp,t1,i;
u16 t;
u16 y0=y,x0=x;
u8 dzk[72];   
u8 csize=(size/8+((size%8)?1:0))*(size);//得到字体一个字符对应点阵集所占的字节数  
if(size!=12&&size!=16&&size!=24)return; //不支持的size
Get_HzMat(str,dzk,size); //得到相应大小的点阵数据
for(t=0;t<3000;t++)
{                  
  //temp=dzk[t];   //得到点阵数据                          
  //调用字库
if ((CnChar16x16[t].Index[0]==*str)            
   &&(CnChar16x16[t].Index[1]==*(str+1)))
  for(i=0; i<32; i++)
{
  temp=CnChar16x16[t].Msk;
  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;
   x++;
if((x-x0)==size)
{
    x=x0;
   y++;
   if((y-y0)==size)
   {
    y=y0;
    //x++;
    break;
   }
  }
  }   
}  
}
}



// ------------------  汉字字模的数据结构定义 ------------------------ //
struct  Cn32CharTypeDef                   // 汉字字模数据结构
{
unsigned char  Index[2];            // 汉字内码索引,一个汉字占两个字节
unsigned char   Msk[32];            // 点阵码数据(16*16/8)
};
/////////////////////////////////////////////////////////////////////////
// 汉字字模表,大小为:32*29                                                          //
// 汉字库: 宋体二号,横向取模左高位,数据排列:从左到右从上到下           //
/////////////////////////////////////////////////////////////////////////
struct  Cn32CharTypeDef  const CnChar16x16[]=
{
/*--  文字:  服  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
"服",0x00,0x00,0x3E,0xFC,0x22,0x84,0x22,0x84,0x22,0x94,0x3E,0x88,0x22,0x80,0x22,0xFC,
0x22,0xA4,0x3E,0xA4,0x22,0xA8,0x22,0xA8,0x22,0x90,0x42,0xA8,0x4A,0xC4,0x84,0x82,
/*--  文字:  药  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
"药",0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x10,0x80,0x10,0x80,0x20,0xFC,0x45,0x04,
0xFA,0x04,0x10,0x84,0x20,0x44,0xFC,0x44,0x00,0x04,0x1C,0x04,0xE0,0x28,0x40,0x10,
/*--  文字:  周  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
"周",0x00,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x2F,0xE8,0x21,0x08,0x21,0x08,0x3F,0xF8,
0x20,0x08,0x27,0xC8,0x24,0x48,0x24,0x48,0x27,0xC8,0x40,0x08,0x40,0x28,0x80,0x10,
/*--  文字:  期  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
"期",0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,0x22,0x44,0x3E,0x7C,0x22,0x44,0x22,0x44,
0x3E,0x44,0x22,0x7C,0x22,0x44,0xFF,0x44,0x04,0x84,0x22,0x84,0x41,0x14,0x82,0x08,
。。。。。。。太多了就这些吧

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-4-27 18:12:11 | 显示全部楼层
建议用SD卡来弄字库比较好
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-4-7
在线时间
3 小时
 楼主| 发表于 2019-4-27 18:31:07 | 显示全部楼层
谢谢建议,不过不用难道就不行吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-26 00:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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