OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 4782|回复: 68

STM32F767NIH6+TFT+GSM+GPRS+蓝牙+GPS+FM+WM8978+SHT20+MPU9250+HMC5883+BMP180+8002+SD+AP3216+0V2640+N25Q256+IS42S22800G...

  [复制链接]

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
发表于 2017-6-27 11:03:36 | 显示全部楼层 |阅读模式
正点原子公众号
本帖最后由 天道酬勤8988 于 2017-6-27 11:58 编辑

加入论坛也一年多了在坛友和原子老师的帮助下解决了很多困惑学到了很多知识,此次综合在电子方面的学习制作一个自名为"MINI"的电子作品,在此发帖与志同道合的朋友交流学习,此次投入重大希望在作品完成之际有喜欢的朋友收藏学习“MINI”来犒劳小弟的劳动力。由于本人语言组织能力差此次发帖后续将采用短视频的方式更新。
整体尺寸10*5.4CM集成:锂电池供电和充电+STM32F767NIH6+TFT+GSM+GPRS+蓝牙+GPS+FM+WM8978+SHT20+MPU9250+HMC5883+BMP180+8002+SD+AP3216+0V2640+N25Q256+IS42S22800G...,目前所有硬件调试完毕,正在基于UCOSIII+STEMWIN5.3编写代码。现已实验:
1、收音机播放,支持耳机和扬声器(板载功放),耳机和功放播放声音可单独控制。
2、播放音乐,支持耳机和扬声器(板载功放),耳机和功放播放声音可单独控制。
3、拨打/接听电话,支持耳机和扬声器(板载功放),耳机和功放播放声音可单独控制。
4、发送/接收短信。
5、GPRS联网。
6、GPS定位,地速,时间和日期。
7、温度湿度气压海拔。
8、九轴加速度。
9、绝对航向。
10、手势操作。
11、距离检测,光线检测。
12、蓝牙串口传输。
13、LCD显示和触摸屏操作。14、USB HOST。
15、USB SLAVE。
...
其余的继续在调试持续更新请关注...



背面

背面

正面

正面
回复

使用道具 举报

  离线 

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-6-2
在线时间
21 小时
发表于 2017-6-30 23:02:49 | 显示全部楼层
回复 支持 0 反对 1

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-27 11:14:01 | 显示全部楼层
本帖最后由 天道酬勤8988 于 2017-6-27 11:17 编辑

第一个核心板直接焊接的大概调试了半个月出了问题,邮票孔不会拆,整个底板和核心板都报废了,后来又就换成了排针连接,核心板出问题可以直接更换,核心板奖金300大元那个心疼
360截图20170627111703744.jpg
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-27 11:18:29 | 显示全部楼层
排针连接
360截图20170627111141130.jpg
360截图20170627111108042.jpg
360截图20170627111132343.jpg
回复 支持 反对

使用道具 举报

  离线 

31

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1474
金钱
1474
注册时间
2016-8-10
在线时间
352 小时
发表于 2017-6-27 11:37:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-27 15:39:54 | 显示全部楼层
本帖最后由 天道酬勤8988 于 2017-6-27 15:41 编辑

MPU9250调试视频:

回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-27 15:43:14 | 显示全部楼层
STEMWIN移植视频:

回复 支持 反对

使用道具 举报

  离线 

10

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
429
金钱
429
注册时间
2016-2-5
在线时间
78 小时
发表于 2017-6-27 18:11:45 来自手机 | 显示全部楼层
大佬,大佬
回复 支持 反对

使用道具 举报

  离线 

25

主题

118

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-11-13
在线时间
250 小时
发表于 2017-6-27 18:58:11 | 显示全部楼层
学一年多就这样了,实在佩服啊
回复 支持 反对

使用道具 举报

  离线 

8

主题

245

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1221
金钱
1221
注册时间
2016-3-6
在线时间
215 小时
发表于 2017-6-27 20:02:49 | 显示全部楼层
很强势,关注学习
路漫漫其修远兮,吾将上下而求索。
回复 支持 反对

使用道具 举报

  离线 

40

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
806
金钱
806
注册时间
2016-1-7
在线时间
183 小时
发表于 2017-6-28 08:11:39 | 显示全部楼层
不错,核心板没重做吗?好像用原子哥的。
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-28 09:18:02 | 显示全部楼层
cmz 发表于 2017-6-27 18:58
学一年多就这样了,实在佩服啊

没日没夜的学啊
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-28 09:18:41 | 显示全部楼层
challenger 发表于 2017-6-28 08:11
不错,核心板没重做吗?好像用原子哥的。

核心板适型找的
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-28 09:19:23 | 显示全部楼层
WM8978播放音乐实验:

回复 支持 反对

使用道具 举报

  离线 

40

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
806
金钱
806
注册时间
2016-1-7
在线时间
183 小时
发表于 2017-6-28 10:21:04 | 显示全部楼层
本帖最后由 challenger 于 2017-6-28 10:22 编辑

很好,我只设计过F103,F407的主板,F767还没做过,改天也来做一板。 不知F767及所带的SRAM芯片成本各是多少钱一片?是否就这两个芯片成本价最高?
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-28 10:53:27 | 显示全部楼层
challenger 发表于 2017-6-28 10:21
很好,我只设计过F103,F407的主板,F767还没做过,改天也来做一板。 不知F767及所带的SRAM芯片成本各 ...

SDRAM不贵的 就是F7芯片贵点
回复 支持 反对

使用道具 举报

  离线 

40

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
806
金钱
806
注册时间
2016-1-7
在线时间
183 小时
发表于 2017-6-28 11:17:17 | 显示全部楼层
天道酬勤8988 发表于 2017-6-28 10:53
SDRAM不贵的 就是F7芯片贵点

F7现在多少钱一片?
回复 支持 反对

使用道具 举报

  离线 

8

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-3-12
在线时间
95 小时
发表于 2017-6-28 13:17:38 | 显示全部楼层
邮票孔要用风枪拆~!~!而且要仔细
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-28 13:53:47 | 显示全部楼层
challenger 发表于 2017-6-28 11:17
F7现在多少钱一片?

BGA的应该上百了
回复 支持 反对

使用道具 举报

  离线 

40

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
806
金钱
806
注册时间
2016-1-7
在线时间
183 小时
发表于 2017-6-28 13:58:54 | 显示全部楼层

价格不便宜,如果不是项目非用不可,一般为节省成本,估计很难去考虑它。
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-29 21:41:19 | 显示全部楼层
本帖最后由 天道酬勤8988 于 2017-6-30 22:51 编辑

硬件解码AVI:贴上颜色转换核心代码

ycomp = (int32_t)(*(pLum +j));

            *(__IO uint16_t *)pOutAddr =
              ((CLAMP(ycomp + c_red) >> 3) << JPEG_RED_OFFSET)     | \
              ((CLAMP( ycomp + c_green) >> 2) << JPEG_GREEN_OFFSET) | \
              ((CLAMP(ycomp + c_blue) >> 3) << JPEG_BLUE_OFFSET);
            /**********/
            ycomp = (int32_t)(*(pLum +j +1));

            *((__IO uint16_t *)(pOutAddr + 2)) =
              ((CLAMP(ycomp + c_red) >> 3) << JPEG_RED_OFFSET)     | \
              ((CLAMP( ycomp + c_green) >> 2) << JPEG_GREEN_OFFSET) | \
              ((CLAMP(ycomp + c_blue) >> 3) << JPEG_BLUE_OFFSET);

            /**********/
            ycomp = (int32_t)(*(pLum +j +8));

            *(__IO uint16_t *)pOutAddr2 =
              ((CLAMP(ycomp + c_red) >> 3) << JPEG_RED_OFFSET)     | \
              ((CLAMP( ycomp + c_green) >> 2) << JPEG_GREEN_OFFSET) | \
              ((CLAMP(ycomp + c_blue) >> 3) << JPEG_BLUE_OFFSET);

            /**********/
            ycomp = (int32_t)(*(pLum +j +8 +1));

            *((__IO uint16_t *)(pOutAddr2 +2)) =
              ((CLAMP(ycomp + c_red) >> 3) << JPEG_RED_OFFSET)     | \
              ((CLAMP( ycomp + c_green) >> 2) << JPEG_GREEN_OFFSET) | \
              ((CLAMP(ycomp + c_blue) >> 3) << JPEG_BLUE_OFFSET);   



回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-6-30 22:53:38 | 显示全部楼层
本帖最后由 天道酬勤8988 于 2017-7-1 08:32 编辑

开始搭建软件主框架,插播下STemwin知识:
先看下最终需要实现的效果:
未按下时
图片:360截图20170630222341186.jpg[[url=]删除[/url]]




按下时
图片:360截图20170630222348934.jpg[[url=]删除[/url]]




上面图标使用的是Button按钮控件,STemwin自带的有ICONVIEW控件个人觉得使用不方便就使用按钮代替。
先使用BUILDE软件排版:
图片:360截图20170630222812601.jpg[[url=]删除[/url]]




下载到单片机显示:
图片:360截图20170630222332446.jpg[[url=]删除[/url]]




按钮的颜色使用的自定义的,背景和其他显示这次不做介绍,只关注这九个按钮,默认按钮是上图所示,加入位图显示如下
图片:360截图20170630222322812.jpg[[url=]删除[/url]]




第一个图标是在按钮上添加位图,使用的是BNG图片,但是按钮已经赋予了颜色图片只能显示在按钮之上,第三个按钮是使用按钮自绘皮肤,可以绘制jpg、bmp、bng图片,可以去掉背景显示,这样就达到了我们想要的效果,自绘皮肤使用方式:
在初始化窗口时调用WM_INIT_DIALOG消息时
    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
    BUTTON_SetFont(hItem, &GUI_FontHZ16);
    BUTTON_SetText(hItem, "相册");
加入自绘皮肤
  BUTTON_SetSkin(hItem, _DrawSkinFlex_BUTTON2);//自绘皮肤函数
BUTTON_SetSkin第一个参数为按钮的句柄第二个为自绘皮肤回掉函数
_DrawSkinFlex_BUTTON2函数:

//BUTTON按钮自绘皮肤回调函数
int _DrawSkinFlex_BUTTON2(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo) {

// GUI_RECT Rect={0,56,56,72};//文字显示的区域
const char *txt="相册";
  
switch (pDrawItemInfo->Cmd) {
  
case WIDGET_ITEM_CREATE: //创建小工具后立即发送。
     
break;  
case WIDGET_ITEM_DRAW_TEXT: //换肤函数将绘制可选的按钮文本。
   
//  GUI_SetTextMode(GUI_TEXTMODE_NORMAL|GUI_TEXTMODE_TRANS);
//  GUI_SetFont(&GUI_FontHZ12);
//  GUI_DispStringAt(txt,10,10);      
break;
case WIDGET_ITEM_DRAW_BACKGROUND : //换肤函数将绘制背景。
   
   switch(pDrawItemInfo->ItemIndex)
   {
    case BUTTON_SKINFLEX_PI_PRESSED: //已按下状态的属性。

    GUI_DrawBitmap(&bmXiangCe1, 0, 0); //按下后的图片

     GUI_SetTextMode(GUI_TEXTMODE_NORMAL|GUI_TEXTMODE_TRANS);
     GUI_SetFont(&GUI_FontHZ12);   
     GUI_SetColor(BUTTON_TXT_AnXia_Clocr);

     GUI_DispStringInRect(txt, &BUTTON_TXT_Rect, GUI_TA_HCENTER | GUI_TA_VCENTER);

    break;

    case BUTTON_SKINFLEX_PI_FOCUSSED:// 已聚焦状态的属性。

    GUI_DrawBitmap(&bmXiangCe0, 0, 0); //未按下时的图片

     GUI_SetTextMode(GUI_TEXTMODE_NORMAL|GUI_TEXTMODE_TRANS);
     GUI_SetFont(&GUI_FontHZ12);     
     GUI_SetColor(BUTTON_TXT_JuJiao_Clocr);

     GUI_DispStringInRect(txt, &BUTTON_TXT_Rect, GUI_TA_HCENTER | GUI_TA_VCENTER);

    break;   
    case BUTTON_SKINFLEX_PI_ENABLED:// 启用状态的属性。

      GUI_DrawBitmap(&bmXiangCe0, 0, 0); //按钮可用时的图片

     GUI_SetTextMode(GUI_TEXTMODE_NORMAL|GUI_TEXTMODE_TRANS);
     GUI_SetFont(&GUI_FontHZ12);     
     GUI_SetColor(BUTTON_TXT_QiYong_Clocr);

     GUI_DispStringInRect(txt, &BUTTON_TXT_Rect, GUI_TA_HCENTER | GUI_TA_VCENTER);

    break;   
    case BUTTON_SKINFLEX_PI_DISABLED:// 禁用状态的属性。
     GUI_DrawBitmap(&bmXiangCe0, 0, 0); //按钮不可用时的图片

     GUI_SetTextMode(GUI_TEXTMODE_NORMAL|GUI_TEXTMODE_TRANS);
     GUI_SetFont(&GUI_FontHZ12);     
     GUI_SetColor(BUTTON_TXT_JinYong_Clocr);
     GUI_DispStringInRect(txt, &BUTTON_TXT_Rect, GUI_TA_HCENTER | GUI_TA_VCENTER);
    break;   

   }

break;

case WIDGET_ITEM_DRAW_BITMAP://换肤函数将绘制可选的按钮位图。

break;
default:
return BUTTON_DrawSkinFlex(pDrawItemInfo); //其他命令将执行默认设置  
}
return 0;
}
回复 支持 反对

使用道具 举报

  离线 

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-6-2
在线时间
21 小时
发表于 2017-6-30 22:59:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

485

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
120495
金钱
120495
注册时间
2010-12-1
在线时间
963 小时
发表于 2017-7-1 00:18:26 | 显示全部楼层
真是天道酬勤
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
微信公众平台:正点原子   点击扫码添加
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-1 08:32:07 | 显示全部楼层
小恒心 发表于 2017-6-30 23:02
请问你是买500那块板子学的吗

推荐使用阿波罗开发板学习,资料多,例程多,教程多,很容易掌握STM32
回复 支持 反对

使用道具 举报

  离线 

4

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
360
金钱
360
注册时间
2017-2-11
在线时间
46 小时
发表于 2017-7-1 16:22:40 | 显示全部楼层
6666
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-1 21:41:16 | 显示全部楼层
本帖最后由 天道酬勤8988 于 2017-7-1 21:47 编辑

主界面滑动页面设计:主界面滑动页面设计:
滑动核心代码:
创建一个单独的任务
void EMWIN_task(void *p_arg)
{
OS_ERR err;
GUI_PID_STATE State;
long  x1=0, x2=0, x3=0, x4=0, x5=0;
char flag = 1;
char flag1=0;
char page =1;
GUI_RECT pRect={0,0,10,10};
WM_HWIN _hwin;
while (1)
{
  _hwin = WM_GetFocussedWindow();//获取当前聚焦窗口
  if(_hwin==ZhuJieMian_hWin)
  {
   printf("已聚焦在主界面\r\n");
  GUI_TOUCH_GetState(&State);
  if (State.Pressed == 1)
  {
   flag1=1;
   if (flag == 1)
   {
    flag = 0;
    x1 = State.x;//储存第一个触点
    x4 = WM_GetWindowOrgX(ZhuJieMian_hWin);//当前窗口X坐标
   }
   x2 = State.x;

   if (x1 != x4)
   {
    if (page==1)
     WM_MoveTo(ZhuJieMian_hWin, x2-x1-320, 0); //移动窗口
    else
    if (page == 2)
     WM_MoveTo(ZhuJieMian_hWin, x2 - x1-320-320, 0);

   }
  }
  else
  {
   x4 = WM_GetWindowOrgX(ZhuJieMian_hWin);


   if (page == 1)
   {
//    printf("第一页\r\n");
    if ((x2 - x1) >= 1)
     WM_MoveTo(ZhuJieMian_hWin, 0-320, 0);
    else
    if ((x2 - x1) <= -100)
    {
     page = 2;
     WM_MoveTo(ZhuJieMian_hWin, -320-320, 0);
    }
    else
     WM_MoveTo(ZhuJieMian_hWin, 0-320, 0);

   }
   else if (page == 2)
   {

//    printf("第二页\r\n");
    if ((x2 - x1) >= 100)
    {
     page = 1;
     WM_MoveTo(ZhuJieMian_hWin, 0-320, 0);

    }     
    else
    if ((x2 - x1) <=0)
    {

     WM_MoveTo(ZhuJieMian_hWin, -320-320, 0);
    }else
     WM_MoveTo(ZhuJieMian_hWin, -320-320, 0);

   }

   x1 = x2 = 0;
   flag = 1;

  }
}

  OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err
}
}






回复 支持 反对

使用道具 举报

  离线 

0

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
923
金钱
923
注册时间
2016-4-3
在线时间
71 小时
发表于 2017-7-2 13:31:26 | 显示全部楼层
棒!
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-7-2
在线时间
7 小时
发表于 2017-7-2 19:52:54 来自手机 | 显示全部楼层
这个是我之前做的一个界面
IMG_20170702_195105.jpg
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-7-2
在线时间
7 小时
发表于 2017-7-2 19:54:25 来自手机 | 显示全部楼层
楼主这个板子花了几多大洋?
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-3 13:54:09 | 显示全部楼层
lili1013 发表于 2017-7-2 19:54
楼主这个板子花了几多大洋?

上千大洋是有了
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-7-2
在线时间
7 小时
发表于 2017-7-3 14:09:03 来自手机 | 显示全部楼层
玩这些还是比较烧钱的
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-4 11:48:27 | 显示全部楼层
lili1013 发表于 2017-7-3 14:09
玩这些还是比较烧钱的

你上面的图片中是使用什么芯片做的?
回复 支持 反对

使用道具 举报

头像被屏蔽

  离线 

29

主题

123

帖子

2

精华

禁止发言

积分
1211
金钱
1211
注册时间
2015-11-11
在线时间
119 小时
发表于 2017-7-4 14:02:00 | 显示全部楼层
lili1013 发表于 2017-7-2 19:52
这个是我之前做的一个界面

你这个代码可以参考下吗
签名被屏蔽
回复 支持 反对

使用道具 举报

  离线 

4

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2014-1-9
在线时间
64 小时
发表于 2017-7-4 22:26:50 | 显示全部楼层
相当硬气,,,不过  那些伸手党 要失望了
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-6 10:33:28 | 显示全部楼层
关于图标和背景显示:
方法一:
准备好需要显示的图片使用BmpCvtST.exe生成C文件
微信截图_20170630195608.png
微信截图_20170630195631.jpg
将C文件添加到工程里
360截图20170701141750838.jpg
360截图20170706102331008.jpg
添加到按钮自绘皮肤函数里
360截图20170706102506175.jpg
在初始化按钮是设置自绘函数
360截图20170706102619142.jpg
这种方式图片文件都在工程里比较占FLASH内存,下面介绍方法二将图片存放在内存卡或外部FLASH里
第二种方法:
把图片放在内存卡的某个目录里,然后在开机时将图片加载到SDRAM里:

FIL *ZhuJieMian_TuBiao_File;
APP_TuBiao *ZhuJieMian_TuBiao_BUF;
u8 ZhuJieMian_TuBiao_Flag[ZhuJieMian_TuBiao_NUM]={0};

//图片存放的地址
u8* const ZhuJieMian_TuBiao_Addr[]=
{
"0:/SYSTEM/APP/ICOS/GongJuXiang0.png",
"0:/SYSTEM/APP/ICOS/GongJuXiang1.png",
        
"0:/SYSTEM/APP/ICOS/XiangCe0.png",
"0:/SYSTEM/APP/ICOS/XiangCe1.png",
        
"0:/SYSTEM/APP/ICOS/ZaoXiangJi0.png",
"0:/SYSTEM/APP/ICOS/ZaoXiangJi1.png",
        
"0:/SYSTEM/APP/ICOS/WenJianLiuLan0.png",
"0:/SYSTEM/APP/ICOS/WenJianLiuLan1.png",        

"0:/SYSTEM/APP/ICOS/YinYue0.png",
"0:/SYSTEM/APP/ICOS/YinYue1.png",

"0:/SYSTEM/APP/ICOS/ShiPin0.png",
"0:/SYSTEM/APP/ICOS/ShiPin1.png",
        
"0:/SYSTEM/APP/ICOS/LianXiRen0.png",
"0:/SYSTEM/APP/ICOS/LianXiRen1.png",        
        
"0:/SYSTEM/APP/ICOS/DianHua0.png",
"0:/SYSTEM/APP/ICOS/DianHua1.png",

"0:/SYSTEM/APP/ICOS/DuanXin0.png",
"0:/SYSTEM/APP/ICOS/DuanXin1.png",
        
};



/**********************************************************************************************************
*        函 数 名: u8 Get_ZhuJieMian_TueBiao(void)
*        功能说明: 获取主界面图片数据
*        形    参:
*        返 回 值: 0 正确 1错误
*********************************************************************************************************
*/
u8 Get_ZhuJieMian_TueBiao(void)
{
        u8 res;
        u8 i,j;
        u32 bread;
//申请文件信息内存
        ZhuJieMian_TuBiao_File=(FIL*)mymalloc(SRAMEX,sizeof(FIL));//申请内存        
        if(ZhuJieMian_TuBiao_File==0)//申请失败 返回失败
        {
                myfree(SRAMEX,ZhuJieMian_TuBiao_File);               
                return 1;
        }
        printf("文件信息内存申请成功\r\n");
        
        
//打开所有文件        并读取图片数据
  for(i=0;i<ZhuJieMian_TuBiao_NUM;i++)
        {        

                res=f_open(ZhuJieMian_TuBiao_File,(const TCHAR*)ZhuJieMian_TuBiao_Addr,FA_READ);        //打开文件        
                if(res==FR_OK)
                {
                        printf("TuBiao[%d]打开成功\r\n",i);
                        ZhuJieMian_TuBiao_BUF.TuBiao=(char*)mymalloc(SRAMEX,ZhuJieMian_TuBiao_File->obj.objsize);//申请内存        
//                        printf("TuBiao[%d]:%dB\r\n",i,ZhuJieMian_TuBiao_File->obj.objsize);
                        if(ZhuJieMian_TuBiao_BUF.TuBiao==0) //内存申请失败
                        {
                                printf("TuBiao[%d]内存申请失败\r\n",i);
                                myfree(SRAMEX,ZhuJieMian_TuBiao_BUF.TuBiao);//释放此图片内存
                                ZhuJieMian_TuBiao_Flag=0;//标记为无图标        
                                continue; //继续下一次        
                        }                        
                        
                        ZhuJieMian_TuBiao_Flag=1;                        //标记为有图标
                        f_read(ZhuJieMian_TuBiao_File,ZhuJieMian_TuBiao_BUF.TuBiao,ZhuJieMian_TuBiao_File->obj.objsize,(UINT *)&bread); //读取数据
                        f_close(ZhuJieMian_TuBiao_File);                        //关闭文件        
                        printf("TuBiao[%d]获取数据成功\r\n",i);        

                }else//有一个文件打开失败关闭文件并标记为无图标
                {        
                        printf("TuBiao[%d]打开文件失败\r\n",i);        
                        ZhuJieMian_TuBiao_Flag=0;//标记为无图标         
                        f_close(ZhuJieMian_TuBiao_File);                        //关闭文件        
                }
                                       
        }        
        myfree(SRAMEX,ZhuJieMian_TuBiao_File);               
        return 0;
}

在开机时先调用此函数然后按钮自绘时直接使用图片数组,加载到SDAM里要比内部FLASH显示快,这个方法即省了FLASH内存又提高的显示速度。

回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-7-11 14:20:35 | 显示全部楼层
文件浏览器:
回复 支持 反对

使用道具 举报

  离线 

0

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-8-25
在线时间
11 小时
发表于 2017-8-8 14:00:01 来自手机 | 显示全部楼层
持续关注,顶楼主
回复 支持 反对

使用道具 举报

  离线 

0

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2016-11-25
在线时间
17 小时
发表于 2017-8-8 17:29:09 | 显示全部楼层
等待更新、、、、
回复 支持 反对

使用道具 举报

  离线 

14

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1958
金钱
1958
注册时间
2014-11-5
在线时间
301 小时
发表于 2017-8-10 09:37:03 | 显示全部楼层
收藏,楼主幸苦,做教程真的很难,顶
回复 支持 反对

使用道具 举报

  离线 

1

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2015-9-20
在线时间
108 小时
发表于 2017-8-10 11:23:55 | 显示全部楼层
好久没来,刚以来就看到这么硬气的帖子。。。
回复 支持 反对

使用道具 举报

  离线 

1

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2017-8-21
在线时间
15 小时
发表于 2017-8-21 11:43:31 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

  离线 

93

主题

302

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2017-7-12
在线时间
94 小时
发表于 2017-9-30 14:28:40 | 显示全部楼层
这是双层板吗
回复 支持 反对

使用道具 举报

  离线 

4

主题

191

帖子

0

精华

高级会员

Rank: 4

积分
820
金钱
820
注册时间
2017-3-11
在线时间
69 小时
发表于 2017-10-1 09:40:03 | 显示全部楼层
aaaaaaaaaaaaaaaaaaaaaaaa
回复 支持 反对

使用道具 举报

  离线 

25

主题

150

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
415
金钱
415
注册时间
2016-3-8
在线时间
95 小时
发表于 2017-10-7 18:33:06 | 显示全部楼层
马克一下、楼主真乃学霸加土豪。我至今还用着几块钱的F103
回复 支持 反对

使用道具 举报

  离线 

37

主题

248

帖子

0

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2016-7-22
在线时间
193 小时
发表于 2017-10-9 12:50:02 | 显示全部楼层
厉害喔! 底板是几层的?
回复 支持 反对

使用道具 举报

  离线 

0

主题

9

帖子

0

精华

新手上路

Rank: 1

积分
49
金钱
49
注册时间
2016-3-4
在线时间
8 小时
发表于 2017-10-9 16:37:25 | 显示全部楼层
哇,你这一年顶我们几年呐,系统一点都不懂,没有接触过,好凶哦,教练,我 想学
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-10-11 10:48:37 | 显示全部楼层
hi我歌月徘徊 发表于 2017-10-9 12:50
厉害喔! 底板是几层的?

两层的
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-10-11 10:49:02 | 显示全部楼层

底板是两层的,核心板是四层
回复 支持 反对

使用道具 举报

  离线 

7

主题

118

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-7-21
在线时间
128 小时
 楼主| 发表于 2017-10-11 10:49:33 | 显示全部楼层
鑫鑫 发表于 2017-10-9 16:37
哇,你这一年顶我们几年呐,系统一点都不懂,没有接触过,好凶哦,教练,我 想学

我这也是瞎琢磨
回复 支持 反对

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-1-21 09:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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