AliOS-Things开发入门

按照惯例,先po出效果图,使用AliOS-Things的LCD来显示学校LOGO

核心代码链接在此

效果如图中所示。

1 环境搭建

搭建环境时,需要的软件包括:VSCode安装包、STlinkDrv等,

下载链接:https://pan.baidu.com/s/1nCNW4lKP7kBmAV6V5iq9kA   提取密码:c5oi

(1)首先安装VSCode

VSCode安装成功后,安装扩展alios-stdio

提示我们安装Python和pip

(2)安装Python2.7.15

将Python添加进系统文件夹

Python环境变量配置

(3)安装pip

打开命令行command,切换到pip的解压路径

(4)安装AOS-cube

重启VACode,自动安装

2. 开始编程

(1)图片显示部分的代码为

/*
 * Copyright (C) 2015-2017 Alibaba Group Holding Limited
 */

#include <aos/aos.h>
#include "lvgl/lvgl.h"
#include <k_api.h>
#include "sensor_display.h"
#include <hal/soc/soc.h>
#include <stdlib.h>

LV_IMG_DECLARE(AliOS_Things_logo);

#define MAX_MSG_BYTES 100
#define MAX_NUM_BYTES 20

#define MAX_pos 170
#define MIN_pos 0

#define MAX_angle 180;
#define MIN_angle 0;

#define PI 3.14159265

#define GPIO_LED_IO     22
#define GPIO_TRIGGER_IO 67
#define GPIO_INPUT_IO   75

char msg_buffer[MAX_MSG_BYTES];
char number_buf[MAX_NUM_BYTES];

int flag;
int loop = 1;
unsigned int posX;
int screenX;
int screenY;

signed short Xscreen;
signed short Yscreen;

gpio_dev_t input;

/* pressed flag */
int button_pressed = 0;

lv_obj_t *scr = NULL;
lv_obj_t *chart1 = NULL;
lv_obj_t *label = NULL;
lv_obj_t *labe2 = NULL;
lv_obj_t *labe3 = NULL;

aos_timer_t refresh_timer;

float x=120.0;
float y=120;
float step=1.0;
float k=0.5;


static void sensor_refresh_task(void *arg);
static void refresh_string(void);

void button_handler(void *arg){
    button_pressed = 1;
}

void app_init(void)
{    
    input.port = GPIO_INPUT_IO;
    /* set as interrupt mode */
    input.config = IRQ_MODE;
    /* configure GPIO with the given settings */
    hal_gpio_init(&input);
     
    /* gpio interrupt config */
    hal_gpio_enable_irq(&input, IRQ_TRIGGER_BOTH_EDGES, button_handler, (void *) GPIO_INPUT_IO);

    aos_timer_new(&refresh_timer, sensor_refresh_task, NULL, 50, 1);

    while(1){
        if(button_pressed == 1){
            button_pressed = 0;
        }
    }
}

static void sensor_refresh_task(void *arg)
{
    
    static int task1_count = 0;
    static lv_obj_t *img_src;    

    if (task1_count == 0) {

        if (0 == button_pressed) {
          scr = lv_scr_act();

          img_src = lv_img_create(scr, NULL);  /*Crate an image object*/
          lv_img_set_src(img_src, &AliOS_Things_logo);  /*Set the created file as image (a red fl  ower)*/
          lv_obj_set_pos(img_src, -5, 90);      /*Set the positions*/
          lv_obj_set_drag(img_src, true);
        
        }  
    }
    if (1 == button_pressed) {
        lv_obj_clean(scr);
       lv_obj_del(img_src);
    
       /*Use ASCII and Unicode letters*/
       static lv_style_t style1;       

       label = lv_label_create(scr, NULL);      
       
       lv_style_copy(&style1, &lv_style_plain);
       style1.text.color = LV_COLOR_RED;
       lv_label_set_style(label, &style1);    
       
       refresh_string();
       task1_count++;

    printf("button_pressed %d :",button_pressed);
    }
}
static void refresh_string(void)
{   
     
     strcpy(msg_buffer, "HERO@PI ");   

     lv_label_set_text(label, msg_buffer);

     if(x>=170||x<=0)
     {
        step=-step;
        k=-k;                
     }     
     if(y>=217||y<=0)
     {
        k=-k;
     }

     x=x+step;
     y=y+step*k;
    //  if(button_pressed == 1)
    //  { 
    //     x=x+step;
    //     y=y+step*k;
    //  }         
    
     lv_obj_set_pos(label, x, y);   
    
}

2. 图片编码部分的代码

图片编码使用的时Image2LCD软件进行编码

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值