OpenEdv-开源电子网

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

26键全键盘输入法开发

[复制链接]

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
发表于 2018-6-22 18:21:38 | 显示全部楼层 |阅读模式
本帖最后由 xcc521 于 2018-6-26 00:22 编辑

可能是不太习惯9键输入法吧,用习惯了26键输入法,于是决定给开发板也做一个26键的全键盘输入法
平台全支持(不用讲了吧,应用层,跟硬件没关系)
这个程序是去年三月份做的了,这个图片也是翻的空间截图出来的,不太清楚,26键也是对其的,不好看

第一版输入法

第一版输入法

下面是26键主程序,篇幅限制原因,省略部分

//字符表
const u8* kbs_tbl[30]={ \
      "Q","W","E","R","T","Y","U","I","O","P",\
      "A","S","D","F","G","H","J","K","L","←",\
      "SHIFT","Z","X","C","V","B","N","M","SPACE","ENTER",\
};

u16 kbdxsize;    //虚拟键盘按键宽度
u16 kbdysize;    //虚拟键盘按键高度
//得到触摸屏的输入
//x,y:键盘坐标
//返回值:按键键值(1~9有效;0,无效)
u8 py_get_keynum(u16 x,u16 y)
{
      u16 i,j;
      static u8key_x=0;//0,没有任何按键按下;1~9,1~9号按键按下
      u8 key=0;
      tp_dev.scan(0);              
      if(tp_dev.sta&TP_PRES_DOWN)              //触摸屏被按下
      {   
            for(i=0;i<3;i++)
            {
                  for(j=0;j<10;j++)
                  {
                    if(tp_dev.x[0]<(x+j*kbdxsize+kbdxsize)&&tp_dev.x[0]>(x+j*kbdxsize)&&tp_dev.y[0]<(y+i*kbdysize+kbdysize)&&tp_dev.y[0]>(y+i*kbdysize))
                       {   
                             key=i*10+j+1;                         //获取按键数字编号   
                             break;                  
                       }
                  }
                  if(key)
                  {      
                       if(key_x==key)key=0;
                       else
                       {
                             py_key_staset(x,y,key_x-1,0);
                             key_x=key;
                             py_key_staset(x,y,key_x-1,1);
                       }
                       break;
                  }
            }  
      }elseif(key_x)
      {
            py_key_staset(x,y,key_x-1,0);
            key_x=0;
      }
      //key=my_tbl[i*10+j+1];
      returnkey;
}

int main(void)
{   
      u8 i=0;               
      u8 result_num;
      u8 cur_index;
      u8 key;
      u8inputstr[7];         //最大输入6个字符+结束符
      u8 inputlen;      //输入长度   

      delay_init();       //延时函数初始化      
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
      uart_init(115200);          //串口初始化为115200
      usmart_dev.init(72);      //初始化USMART
      LED_Init();                          //初始化与LED连接的硬件接口
      KEY_Init();                          //初始化按键
      LCD_Init();                          //初始化LCD   
      W25QXX_Init();                   //初始化W25Q128
      tp_dev.init();                       //初始化触摸屏
      my_mem_init(SRAMIN);       //初始化内部内存池
      exfuns_init();                      //为fatfs相关变量申请内存  
      f_mount(fs[0],"0:",1);          //挂载SD卡
      f_mount(fs[1],"1:",1);          //挂载FLASH.
      POINT_COLOR=RED;      
      while(font_init())                  //检查字库
      {        
            LCD_ShowString(30,50,200,16,16,"FontError!");
            delay_ms(200);                     
            LCD_Fill(30,50,240,66,WHITE);//清除显示           
      }
RESTART:
      POINT_COLOR=RED;
      Show_Str(30,85,200,16,"My_Keyboard",16,0);
      Show_Str(30,105,200,16,"输入:       匹配:  ",16,0);
      Show_Str(30,125,200,16,"拼音:       当前:  ",16,0);
      Show_Str(30,145,210,32,"结果:",16,0);

      if(lcddev.id==0X5510)
      {kbdxsize=45;kbdysize=36;}
      py_load_ui(0,399);
      memset(inputstr,0,7);    //全部清零
      inputlen=0;                   //输入长度为0
      result_num=0;              //总匹配数清零
      cur_index=0;               
      while(1)
      {
            i++;
            delay_ms(10);
            key=py_get_keynum(0,399);
            if(key)
            {
                  if(key==20)//删除
                  {
                       if(inputlen)inputlen--;
                       inputstr[inputlen]='\0';//添加结束符
                  }else
                  {
                       //inputstr[inputlen]=key+'0';//输入字符                          获取数字字符串,根据数字字符串获取拼音表,根据拼音获取文字
                       switch(key)
                       {
                             case1:inputstr[inputlen]='Q';
                                   break;
                             case2:inputstr[inputlen]='W';
                                   break;
                             case3:inputstr[inputlen]='E';
                                   break;
                             case4:inputstr[inputlen]='R';
                                   break;
                             case5:inputstr[inputlen]='T';
                                   break;
                             case6:inputstr[inputlen]='Y';
                                   break;
                             case7:inputstr[inputlen]='U';
                                   break;
                             case8:inputstr[inputlen]='I';
                                   break;
                             case9:inputstr[inputlen]='O';
                                   break;
                             case10:inputstr[inputlen]='P';
                                   break;
                             case11:inputstr[inputlen]='A';
                                   break;
                             case12:inputstr[inputlen]='S';
                                   break;
                             case13:inputstr[inputlen]='D';
                                   break;
                             case14:inputstr[inputlen]='F';
                                   break;
                             case15:inputstr[inputlen]='G';
                                   break;
                             case16:inputstr[inputlen]='H';
                                   break;
                             case17:inputstr[inputlen]='J';
                                   break;
                             case18:inputstr[inputlen]='K';
                                   break;
                             case19:inputstr[inputlen]='L';
                                   break;
                             case20://inputstr[inputlen]=0;//删除键
                                   break;
                             case21://inputstr[inputlen]=0;//SHIFT键
                                   break;
                             case22:inputstr[inputlen]='Z';
                                   break;
                             case23:inputstr[inputlen]='X';
                                   break;
                             case24:inputstr[inputlen]='C';
                                   break;
                             case25:inputstr[inputlen]='V';
                                   break;
                             case26:inputstr[inputlen]='B';
                                   break;
                             case27:inputstr[inputlen]='N';
                                   break;
                             case28:inputstr[inputlen]='M';
                                   break;
                             case29://inputstr[inputlen]=0;//空格键
                                   break;
                             case30://inputstr[inputlen]=0;//回车键
                                   break;
                             default:
                                   break;
                       }
                       //inputstr[inputlen]=key+'0';
                       if(inputlen<7)inputlen++;
                  }
                  if(inputstr[0]!=NULL)
                  {
                       key=t9.getpymb(inputstr);   //得到匹配的结果数
                       if(key)//有部分匹配/完全匹配的结果
                       {
                             result_num=key&0X7F;  //总匹配结果
                             cur_index=1;                //当前为第一个索引
                             if(key&0X80)                 //是部分匹配
                              {
                                   inputlen=key&0X7F; //有效匹配位数
                                   inputstr[inputlen]='\0';//不匹配的位数去掉
                                   if(inputlen>1)result_num=t9.getpymb(inputstr);//重新获取完全匹配字符数
                             }
                       }else                                  //没有任何匹配
                       {                           
                             inputlen--;
                             inputstr[inputlen]='\0';
                       }
                  }else
                  {
                       cur_index=0;
                       result_num=0;
                  }
                  LCD_Fill(30+40,105,30+40+48,110+16,WHITE);   //清除之前的显示
                  LCD_ShowNum(30+144,105,result_num,1,16);     //显示匹配的结果数
                  Show_Str(30+40,105,200,16,inputstr,16,0);   //显示有效的数字串        
                  py_show_result(cur_index);                         //显示第cur_index的匹配结果
            }     
            key=KEY_Scan(0);
            if(key==WKUP_PRES&&tp_dev.touchtype==0)//KEY_UP按下,且是电阻屏
            {
                  tp_dev.adjust();
                  LCD_Clear(WHITE);
                  gotoRESTART;
            }
            if(result_num)    //存在匹配的结果     
            {   
                  switch(key)
                  {
                       caseKEY1_PRES://下翻
                             if(cur_index>1)cur_index--;
                             elsecur_index=result_num;
                             py_show_result(cur_index);  //显示第cur_index的匹配结果
                             break;
                       caseKEY0_PRES://清除输入
                             LCD_Fill(30+40,145,lcddev.width,145+48,WHITE);     //清除之前的显示   
                             gotoRESTART;                                   
                  }   
            }
            if(i==30)
            {
                  i=0;
                  LED0=!LED0;
            }            
      }                                                                                      
}

跟上源程序
拼音输入法26.zip (2.07 MB, 下载次数: 557)
IMG_20180625_231444.jpg
IMG_20180625_231519.jpg
IMG_20180625_234159.jpg
PIC20150114180922 [原始大小].jpg
PIC20150114182510 [原始大小].jpg
PIC20150114182535 [原始大小].jpg
PIC20150114182550 [原始大小].jpg
PIC20150114182738 [原始大小].jpg
PIC20150114182823 [原始大小].jpg
天然懒,天然呆
能吃会睡,未来可期
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-6-23 09:51:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1323
金钱
1323
注册时间
2016-12-27
在线时间
156 小时
发表于 2018-6-23 10:31:05 | 显示全部楼层
我也来顶一个
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-23 13:19:54 | 显示全部楼层

谢谢支持.(^_^).
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-23 13:20:20 | 显示全部楼层

谢谢支持.(^_^).
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-23 13:42:34 | 显示全部楼层
占个楼更新下布局创建程序
//12个主按钮的3中字符串表
const u8 *  t26_mbtnstr_tbl[3][35]=
{
{                                   
        "Q","W","E","R","T","Y","U","I","O","P",
        "A","S","D","F","G","H","J","K","L",
        "shift","Z","X","C","V","B","N","M","←",
        "中",",。","123","└┘","←┘",
},
{                                   
        "q","w","e","r","t","y","u","i","o","p",
        "a","s","d","f","g","h","j","k","l",
        "shift","z","x","c","v","b","n","m","←",
        "英",",。","123","└┘","←┘",
},
{                                   
        ",",".","?", "!",":","、", ";","…","()","+",
        "-","*", "/","=","±", "≈","%","‰","√",
        "≠",">", "<","≥","≤", "≯","≮","|","‖",
        "^", "&", "{}","@","#",
},
};

//创建输入法控件
//left,top:起始坐标.
//width,height:宽度(必须为10的倍数+11)和高度(必须是5的倍数+6).
//mode:模式
//[7:5]:0,保留
//[4:3]:(左侧纵向按钮状态)0,输入法切换状态;1,汉字输入状态;2,标点符号状态;
//[2:0]:0,拼音;1,123;2,abc;3,ABC,4,手写.
_t26_obj * t26_creat(u16 left,u16 top,u16 width,u16 height,u8 mode)
{
        u8 i,t;
        u8 sta=0;
        u16 tbtnw=0;
        u16 tbtnh=0;
        u8 xoff=0;
        u8 yoff=0;
         _t26_obj * t26_crt;
        
        t26_crt = (_t26_obj *)gui_memex_malloc(sizeof(_t26_obj));
        
        gui_memset(t26_crt,0,sizeof(_t26_obj));
        if(t26_crt==NULL)return NULL;//内存分配不够.
        tbtnw = (width - 11) / 10;
        tbtnh = (height - 6) / 5;
        for(i=0;i<10;i++)
        {
                t26_crt->hbtn1=btn_creat(left+(tbtnw + 1)*i,top+tbtnh + 1,tbtnw,tbtnh,i,0X02);                        
                if(t26_crt->hbtn1==NULL)
                {
                        sta=1;//标记有内存申请失败.
                        break;
                }
                t26_crt->hbtn1->font=16;                                //为16字体
                t26_crt->hbtn1->caption=(u8*)t26_mbtnstr_tbl[0];
                t26_crt->hbtn1->bcfucolor=WHITE;//松开时为白色
                t26_crt->hbtn1->bcfdcolor=BLACK;//按下时为黑色
        }
        for(i=0;i<9;i++)
        {
                t26_crt->hbtn2=btn_creat(left+(tbtnw + 1)*i+tbtnw/2,top+(tbtnh)*2 + 2,tbtnw,tbtnh,i+10,0X02);                        
                if(t26_crt->hbtn2==NULL)
                {
                        sta=1;//标记有内存申请失败.
                        break;
                }
                t26_crt->hbtn2->font=16;                                //为16字体
                t26_crt->hbtn2->caption=(u8*)t26_mbtnstr_tbl[0][i+10];
                t26_crt->hbtn2->bcfucolor=WHITE;//松开时为白色
                t26_crt->hbtn2->bcfdcolor=BLACK;//按下时为黑色
        }
        for(i=0;i<9;i++)
        {
                if(0 == i)
                {
                        t26_crt->hbtn3=btn_creat(left + 1,top+tbtnh*3 + 3,tbtnw * 3 / 2,tbtnh,i+19,0X02);
                }
                else if(8 == i)
                {
                        t26_crt->hbtn3=btn_creat(left+(tbtnw + 1)*i + tbtnw / 2,top+tbtnh*3 + 3,tbtnw * 3 / 2,tbtnh,i+19,0X02);
                }
                else
                {
                        t26_crt->hbtn3=btn_creat(left+(tbtnw + 1)*i+tbtnw/2,top+tbtnh*3 + 3,tbtnw,tbtnh,i+19,0X02);
                }
                if(t26_crt->hbtn3==NULL)
                {
                        sta=1;//标记有内存申请失败.
                        break;
                }
                t26_crt->hbtn3->font=16;                                //为16字体
                t26_crt->hbtn3->caption=(u8*)t26_mbtnstr_tbl[0][i+19];
                t26_crt->hbtn3->bcfucolor=WHITE;//松开时为白色
                t26_crt->hbtn3->bcfdcolor=BLACK;//按下时为黑色
        }
        for(i=0;i<5;i++)
        {
                if(0 == i)
                {
                        t26_crt->hbtn4=btn_creat(left+(tbtnw)*i+1,top+(tbtnh + 1)*4,tbtnw * 3 / 2,tbtnh,i+28,0X02);
                }
                else if((1 == i)||(2 == i))
                {
                        t26_crt->hbtn4=btn_creat(left+(tbtnw + 1)*i+tbtnw/2,top+(tbtnh + 1)*4,tbtnw,tbtnh,i+28,0X02);
                }
                else if(3 == i)
                {
                        t26_crt->hbtn4=btn_creat(left+(tbtnw)*7/2+i,top+(tbtnh + 1)*4,tbtnw * 5,tbtnh,i+28,0X02);
                }
                else
                {
                        t26_crt->hbtn4=btn_creat(left+(tbtnw)*17/2+i,top+(tbtnh + 1)*4,tbtnw * 3 / 2,tbtnh,i+28,0X02);
                }
                if(t26_crt->hbtn4==NULL)
                {
                        sta=1;//标记有内存申请失败.
                        break;
                }
                t26_crt->hbtn4->font=16;                                //为16字体
                t26_crt->hbtn4->caption=(u8*)t26_mbtnstr_tbl[0][i+28];
                t26_crt->hbtn4->bcfucolor=WHITE;//松开时为白色
                t26_crt->hbtn4->bcfdcolor=BLACK;//按下时为黑色
        }
        //8个文字按键
        tbtnw=width/8-1;                        //文字选择按钮的宽度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           //按键宽度
        tbtnh=(height-8)/6;                        //文字选择按键的高度
        xoff=(width-(tbtnw+1)*8)/2;        //在中间   
        for(i=0;i<8;i++)
        {
                t26_crt->hbtn=btn_creat(left+(tbtnw+1)*i+xoff,top+1,tbtnw,tbtnh,i+33,0X04);//文字按钮,背景色单一
                t26_crt->hbtn->bcfucolor=BLACK;//松开时为黑色
                t26_crt->hbtn->bcfdcolor=WHITE;//按下时为白色
                 if(t26_crt->hbtn==NULL)
                {
                        sta=1;//标记有内存申请失败.
                        break;
                }
                if(tbtnh>30)t26_crt->hbtn->font=24;                //为24字体
                else t26_crt->hbtn->font=16;                                //为16字体
        }
        if(sta)//未申请成功
        {
                t26_delete(t26_crt);
                return NULL;
        }
        t26_crt->top=top;
        t26_crt->left=left;
        t26_crt->width=width;
        t26_crt->height=height;                 
        t26_crt->mode=mode;
        t26_crt->sta=0;                                          
        t26_crt->disstr=NULL;                                          
        t26_crt->dispagenum=0;                                          
        t26_crt->dispagecur=0;                                          
        t26_crt->instr[0]=NULL;                                          
        t26_crt->outstr[0]=NULL;                                          
        //t26_set_inputtype(t26_crt,0);//设置为拼音输入法
        return t26_crt;
}
//删除t26输入法
//t26_del:要删除的输入法.
void t26_delete(_t26_obj * t26_del)
{
        u8 i;
        i=0;
        if(t26_del==NULL)return;//非法的地址,直接退出
        while(i<10)
        {
                btn_delete(t26_del->hbtn1);                //删除mbtn
                if(i<=8)btn_delete(t26_del->hbtn);        //删除hbtn
                if(i<=9)btn_delete(t26_del->hbtn2);        //删除hbtn
                if(i<=9)btn_delete(t26_del->hbtn3);        //删除hbtn
                if(i<=5)btn_delete(t26_del->hbtn4);        //删除hbtn
                 i++;
  }
         gui_memin_free(t26_del);        //释放申请到的内存
}

//t26x:输入法
void t26_draw_mbtn(_t26_obj * t26x)
{
        u8 i;
         for(i=0;i<10;i++)
        btn_draw(t26x->hbtn1);         
        for(i=0;i<9;i++)
        btn_draw(t26x->hbtn2);        
        for(i=0;i<9;i++)
        btn_draw(t26x->hbtn3);        
        for(i=0;i<5;i++)
        btn_draw(t26x->hbtn4);        
}
//画横向的8个选择按钮
//t26x:输入法.
void t26_draw_hbtn(_t26_obj * t26x)
{
        u8 i;
         for(i=0;i<8;i++)
        btn_draw(t26x->hbtn);         
}

//画t26输入界面
//t26x:输入法.
void t26_draw(_t26_obj * t26x)
{
        gui_fill_rectangle(t26x->left,t26x->top,t26x->width,t26x->height,T26_PANEL_BKC);//填充内部
        if(1)
        {
                t26_draw_mbtn(t26x);
                t26_draw_hbtn(t26x);
        }
}
//切换输入法
//t26x:t26
//type:0~4;0,拼音;1,123;2,abc;3,ABC,4,手写.
void t26_set_inputtype(_t26_obj *t26x,u8 type)
{
        u8 i;
        u8 mx=0;
        if(type>4)return;//非法的type.

        for(i=0;i<8;i++)t26x->hbtn->caption=NULL;                //清空横向的8个按钮
        if(type!=4)//不是手写识别模式
        {
                if(type==0||type==2)mx=0;
                else if(type==1)mx=1;
                else if(type==3)mx=2;
                for(i=0;i<10;i++)
                {
                        if(i<9)
                        {
                                t26x->hbtn2->caption=(u8*)t26_mbtnstr_tbl[mx];//9个主按钮的名字
                                t26x->hbtn3->caption=(u8*)t26_mbtnstr_tbl[mx];//9个主按钮的名字
                        }
                        if(i<5)
                        {
                                t26x->hbtn4->caption=(u8*)t26_mbtnstr_tbl[mx];//9个主按钮的名字
                        }
                        t26x->hbtn1->caption=(u8*)t26_mbtnstr_tbl[mx];//12个主按钮的名字
                        //t26x->hbtn4->bcfucolor=0XFFFF;//松开时颜色为白色
                }
        }
        t26x->instr[0]='\0';
        t26x->disstr='\0';        //横向显示字符串归零
        t26x->dispagenum=0;
        t26x->dispagecur=0;
        t26x->mode&=0xE7;        //取消标记(字符/拼音),切换为输入法切换状态
        t26x->mode&=~(0x07);        //重设输入法状态
        t26x->mode|=type;         
}

天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2018-6-24 01:32:28 | 显示全部楼层
xcc521 发表于 2018-6-23 13:42
占个楼更新下布局创建程序
//12个主按钮的3中字符串表
const u8 *  t26_mbtnstr_tbl[3][35]=

可以啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-24 12:53:46 | 显示全部楼层

谢谢支持.(^_^).
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2018-6-25 01:49:03 | 显示全部楼层

确实可以,动手能力强
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

207

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2017-5-27
在线时间
108 小时
发表于 2018-6-25 09:43:01 | 显示全部楼层
关注      
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-25 13:55:06 | 显示全部楼层
正点原子 发表于 2018-6-25 01:49
确实可以,动手能力强

哇,好开心呀
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-25 13:55:48 | 显示全部楼层

谢谢关注.(^_^).
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-26 00:21:29 | 显示全部楼层
本帖最后由 xcc521 于 2018-6-26 00:24 编辑

2018.06.26
本来想打印一下按键布局坐标的,可是试了几个尺寸之后发现好像偏大的宽度才会造成后面的按钮失真
上几张测试图
http://www.openedv.com/forum.php ... =1&extra=#pid849331


再来几个截图




















天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2018-6-26 01:13:10 | 显示全部楼层
xcc521 发表于 2018-6-26 00:21
2018.06.26
本来想打印一下按键布局坐标的,可是试了几个尺寸之后发现好像偏大的宽度才会造成后面的按钮失 ...

楼主玩的溜啊。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2018-6-26 09:10:37 | 显示全部楼层

谢谢谢谢谢谢,好荣幸呀,感谢正点原子,感谢您.(^_^).
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

6

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2018-4-18
在线时间
10 小时
发表于 2018-6-26 16:57:09 | 显示全部楼层
大神是真的多
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-8-15
在线时间
0 小时
发表于 2018-8-15 15:53:30 | 显示全部楼层
本帖最后由 hanguocheng 于 2018-8-15 15:56 编辑

正好做个产品,需要这个代码,怎么联系上这位高人呀,我的QQ 412408351
回复 支持 反对

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
发表于 2018-8-15 16:02:04 | 显示全部楼层
666   
回复 支持 反对

使用道具 举报

79

主题

396

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2015-9-21
在线时间
552 小时
发表于 2019-1-10 13:35:06 | 显示全部楼层
做的真好,用心了啊!!
回复 支持 反对

使用道具 举报

0

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2018-9-23
在线时间
21 小时
发表于 2019-5-3 17:55:37 | 显示全部楼层
楼主厉害
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2019-5-4 15:08:07 | 显示全部楼层

多谢支持,忙的忘记更新了
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2019-5-4 15:08:33 | 显示全部楼层

多谢支持,忙的忘记更新了
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2019-5-4 15:08:54 | 显示全部楼层
硕果累累 发表于 2019-1-10 13:35
做的真好,用心了啊!!

多谢支持,忙的忘记更新了,哈
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-28
在线时间
5 小时
发表于 2019-5-5 09:10:41 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2019-5-5 11:45:50 | 显示全部楼层

多谢支持,有时间一定更新
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2019-10-21
在线时间
90 小时
发表于 2019-12-5 15:53:58 | 显示全部楼层
楼主还有最新的源代码吗
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2019-12-6 09:27:21 | 显示全部楼层
xm870408 发表于 2019-12-5 15:53
楼主还有最新的源代码吗

不好找了,有时间再重新研究一下吧
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-2-22
在线时间
37 小时
发表于 2020-11-27 19:01:41 | 显示全部楼层
这个是要插SD卡才能用吗?
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
 楼主| 发表于 2020-11-30 18:46:30 | 显示全部楼层
小黑先生 发表于 2020-11-27 19:01
这个是要插SD卡才能用吗?

不是,不是必须SD卡
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2022-3-12
在线时间
5 小时
发表于 2022-3-14 09:52:40 | 显示全部楼层
请问一下您的屏幕分辨率是多少呀
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 23:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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