搜索

[嵌入式linux] RTOS】+ RT-Thread应用创新设计大赛 + 智能感应加热饮水机--2

[复制链接]
351|0
手机看帖
扫描二维码
随时随地手机跟帖
szkeinew|  楼主 | 2020-7-6 04:47 | 显示全部楼层 |阅读模式
本帖最后由 szkeinew 于 2020-7-7 23:53 编辑

一,上接上篇概括。【RTOS】+ RT-Thread应用创新设计大赛 + 智能感应加热饮水机--1
二,说明。
     因为之前一直在研究PWM设备的注册,结果是浪费了时间又无收获。另外硬件搭配上双起不了作用。所以超时发表文章,只能用软件模拟的方式实现软件流程。
三,用到的功能。
      1,RT-Thread内核用到如下功能:1,线程的创建,删除。2,信号量。
      2,用Env工具创建如下设备:1,PIN设备。2,UART设备。
      3,开发板是使用MM32L373PS,官网编号为:MB-024。
四,MM32L3xx基于BSP的移植RT-Thread V4.0.2。
     1,在RT-Thread官网下载RT-Thread V4.0.2。将RT-Thread V4.0.2文件夹下的rt_thread文件夹除BSP文件夹外所有的文件复制到一个新的项目文件夹中,并将rt-thread文件夹更改为项目名。如我项目为“head_water”。
      962515f033101d93f6.png
    2,在head_water文件下新建一个bsp文件夹。见上图,并将RT-Thread V4.0.2文件夹下的bsp文件夹中的mm32l3xx文件夹下所有的文件都复制到新建的bsp这个文件夹中。至此 这个基于BSP的移植RT-Thread V4.0.2现移植完成。
    637605f0333a3d7fef.png
    3,查看mm32l3xx文件夹中的drivers下已添加有了PIN及UART设备。

    754945f0337d648813.png
五,ENV工具使用。

     1,在RT-Thread官网下给出下载ENV网址。RT-Thread env 工具下载
     2,下载完成后,并安装。安装完成后,打开ENV的根目录,现在打开ENV.exe并将ENV绑定在鼠标右键。ENV的根目录有介绍,但为了加快大家的了解,在此重复一遍。
     3,在打开的ENV的CMD窗口顶部标题档的白色地方,按鼠标右键选择setings,在弹出新的窗口下在左边选项档中选择Integration,然后点击右边中间位的Register按钮,最后点击右下角的Save settings.
    51715f03422dabe02.png 51485f03427513b13.png 881945f0342c851f55.png
   4,使用ENV工具添加UART2.打开项目文件夹中BSP文件夹的mm32l3xx文件夹,在空白地方按鼠标右键,选择ConEmu Here,如上图所示。
   5,此时弹出一个CMD窗口,并且显示了RT_Thread一些信息。
       462235f03f730e0506.png
   6,输入命令“menuconfig”按回车键,弹出menuconfig 图形化配置界面.
    744425f03f7f915a26.png
   7,依次按以下顺序打开配置UART2选项并选上。所要选择项按下回车键。上下箭头键为上下项选择,Esc键退到上一项,选择确认为空格键。

      175315f03f87302ae2.png 980075f03f8971e76a.png 888155f03f9321fe44.png 122025f03f974bf5d5.png 最后选择效果如下: 912675f03f994172b9.png
   8,一直按Esc键完全退出menuconfig 图形化配置界面为止。此时弹出对话框,选择"Yes"退出到CMD窗口.
    485975f03facbab4e6.png
9,在CMD窗口下会看到一些指引信息。
703835f03fb492c469.png




六,2.4“电阻触摸串口屏运行界面。
     1,串口屏设计界,由二页组成,首页是介绍举办比赛的单位,停留时间为5S后转入次页,是整个项目的操作界面。
     2,串口屏空白排版。
          46675f0241f12cc1d.png 811445f02420f164b8.png
     3,串口屏可变参数都是由开发板发送过去,运行界面如下。
         501335f0242b51a3d1.png 232465f0242d5b785d.png
    4,开发板与串口屏是通过开发板的uart2来通信。上电初始化后,将按串口屏的页面所需内容发送。代码如下:
      
#include "usart_hmi.h"


const char titlet0[] = "titlet0.txt=\"RT_Thread应用创新设计大赛\"";
const char titlet1[] = "titlet1.txt=\"RT_Thread\"";
const char titlet2[] = "titlet2.txt=\"21ic中国电子网\"";
const char titlet3[] = "titlet3.txt=\"灵动微电子\"";
const char titlet4[] = "titlet4.txt=\"UCLOUD优刻得...等\"";

const char proj_mane[] = "t0.txt=\"智能饮水机(参赛项目)\"";
const char proj_temperature_title_text[] = "t1.txt=\"温度选择:\"";
const char proj_temperature1_text[] = "t2.txt=\"65℃\"";
const char proj_temperature2_text[] = "t3.txt=\"85℃\"";
const char proj_temperature3_text[] = "t4.txt=\"100℃\"";

const char proj_capacity_title_text[] = "t6.txt=\"容量选择:\"";
const char proj_capacity1_text[] = "t7.txt=\"250mL\"";
const char proj_capacity2_text[] = "t8.txt=\"500mL\"";
const char proj_capacity3_text[] = "t9.txt=\"750mL\"";

const char operator_error_text[] = "t5.txt=\"请按取消键\"";

const char dim_brightness_value[] = "dim=85";//设置串口屏亮度
const char page1_open[] = "page page1";

const char end[]  = {0xff,0xff,0xff};


void usart_hmi_write(rt_device_t device,const char *paramter,rt_uint8_t size_length){
          rt_device_write(device,0,paramter,size_length);
                rt_thread_mdelay(5);        
                rt_device_write(device,0,&end,sizeof(end));
          rt_thread_mdelay(5);        
}


void usart_hmi_init(rt_device_t device){

                rt_thread_mdelay(1000);
    //页面1显示内容,为举办单位的列表        
                usart_hmi_write(device,titlet0,sizeof(titlet0)-1);
                usart_hmi_write(device,titlet1,sizeof(titlet1)-1);
                usart_hmi_write(device,titlet2,sizeof(titlet2)-1);
    usart_hmi_write(device,titlet3,sizeof(titlet3)-1);
          usart_hmi_write(device,titlet4,sizeof(titlet4)-1);
        
          //串口屏亮度
          usart_hmi_write(device,dim_brightness_value,sizeof(dim_brightness_value)-1);
               
                //延时5S,进入page1
                rt_thread_mdelay(5000);
                usart_hmi_write(device,page1_open,sizeof(page1_open)-1);
               
                //页面2显示内容,为参赛项目
          usart_hmi_write(device,proj_mane,sizeof(proj_mane)-1);
               
                //页面2显示内容,为参赛项目下的列表1
          usart_hmi_write(device,proj_temperature_title_text,sizeof(proj_temperature_title_text)-1);
               
                //页面2显示内容,为参赛项目下的列表1的值
          usart_hmi_write(device,proj_temperature1_text,sizeof(proj_temperature1_text)-1);
    usart_hmi_write(device,proj_temperature2_text,sizeof(proj_temperature2_text)-1);
          usart_hmi_write(device,proj_temperature3_text,sizeof(proj_temperature3_text)-1);
        
          //页面2显示内容,为参赛项目下的列表2
          usart_hmi_write(device,proj_capacity_title_text,sizeof(proj_capacity_title_text)-1);
               
                //页面2显示内容,为参赛项目下的列表1的值
          usart_hmi_write(device,proj_capacity1_text,sizeof(proj_capacity1_text)-1);
    usart_hmi_write(device,proj_capacity2_text,sizeof(proj_capacity2_text)-1);
          usart_hmi_write(device,proj_capacity3_text,sizeof(proj_capacity3_text)-1);
         
          //页面2显示内容,为异常值
          usart_hmi_write(device,operator_error_text,sizeof(operator_error_text)-1);        
}


七,附件。
      RT-Thread应用创新设计大赛作品模板.rar (2.98 MB, 下载次数: 17)
587685f03fa55a9dfc.png
445025f03fb36b95b8.png

使用特权

评论回复

相关帖子

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

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 21小跑堂 打赏20.00元   2天前

    打赏帖:#申请原创# @21小跑堂@21小跑堂@21小跑堂 大 ...

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:得到打赏,

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:希望我的问题都能回答

  • 21小跑堂 打赏4.00元   2天前

    打赏帖:得到打赏,

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:得到打赏,

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:参加欧姆龙在线研讨会

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:得到打赏,

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:本次讲座问题截图

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:学习学习再学习

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:得到打赏,

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:5

  • 21小跑堂 打赏10.00元   2天前

    打赏帖:得到打赏,

  • 1 火星国务卿 得到打赏 ¥425.00
  • 2 yanzhengxin1 得到打赏 ¥300.00
  • 3 gaoyang9992006 得到打赏 ¥265.00
  • 4 Gavin3389 得到打赏 ¥225.00
  • 5 13426257085 得到打赏 ¥200.00
  • 6 呐咯密密 得到打赏 ¥185.00
  • 7 两只袜子 得到打赏 ¥155.00
  • 8 yangjiaxu 得到打赏 ¥155.00
  • 9 cr315 得到打赏 ¥150.00
  • 10 elephant00 得到打赏 ¥150.00
在线客服 快速回复 返回顶部 返回列表