【LiteOS】09-移植-傳感器

此筆記由個人整理

華爲IOT LiteOS開發實戰營

第三天

一、傳感器

  • 溫溼度傳感器:SHT30
  • 光照強度傳感器:BH1750
  • LED植物燈
  • 排風扇電機

二、具體步驟

  • 創建工程,選擇hello_world_demo

image-20200528105705154

  • 包含擴展板的頭文件
#include <E53_IA1.h>
  • 創建傳感器採集任務
static int app_sensor_collect_entry()
{

}
  • 調用擴展板驅動程序
void Init_E53_IA1(void);
void E53_IA1_Read_Data(void);
  • 打印數據
printf("Lux:%d",(int)E53_IA1_Data.Lux);
printf("Humidity:%d",(int)E53_IA1_Data.Humidity);
printf("Temperature:%d",(int)E53_IA1_Data.Temperature);
  • 在user_demo.mk中添加文件路徑
#example for hello world	 
	ifeq ($(CONFIG_USER_DEMO), "hello_world_demo")	
		user_demo_src  = ${wildcard $(TARGET_DIR)/Demos/hello_world_demo/*.c}
		user_demo_inc = -I $(TARGET_DIR)/Demos/hello_world_demo
		user_hardware_src = ${wildcard $(TARGET_DIR)/Hardware/E53_IA1/*.c} 
		user_hardware_inc = -I ${wildcard $(TARGET_DIR)/Hardware/E53_IA1}
		user_demo_defs = -D CONFIG_HELLO_WORLD_ENABLE=1
	endif
  • 移植lcd驅動,添加頭文件
#include "lcd.h"
  • 調用顯示數據
LCD_ShowString(10, 140, 200, 16, 16, "Temperature:");
LCD_ShowNum(140, 140, (int)E53_IA1_Data.Temperature, 5, 16);
LCD_ShowString(10, 170, 200, 16, 16, "Humidity:");
LCD_ShowNum(140, 170, (int)E53_IA1_Data.Humidity, 5, 16);
LCD_ShowString(10, 200, 200, 16, 16, "Luminance:");
LCD_ShowNum(140, 200, (int)E53_IA1_Data.Lux, 5, 16);
  • 在主函數中調用
int standard_app_demo_main()
{
    osal_task_create("helloworld",app_hello_world_entry,NULL,0x400,NULL,2);
    osal_task_create("sensor",app_sensor_entry,NULL,0x400,NULL,2);
    return 0;
}
  • 傳感器採集任務
static int app_sensor_entry()
{
    Init_E53_IA1();
    while(1)
    {
        E53_IA1_Read_Data();
        printf("Lux:%d",(int)E53_IA1_Data.Lux);
        printf("Humidity:%d",(int)E53_IA1_Data.Humidity);
        printf("Temperature:%d",(int)E53_IA1_Data.Temperature);
        LCD_ShowString(10, 140, 200, 16, 16, "Temperature:");
		LCD_ShowNum(140, 140, (int)E53_IA1_Data.Temperature, 5, 16);
		LCD_ShowString(10, 170, 200, 16, 16, "Humidity:");
		LCD_ShowNum(140, 170, (int)E53_IA1_Data.Humidity, 5, 16);
		LCD_ShowString(10, 200, 200, 16, 16, "Luminance:");
		LCD_ShowNum(140, 200, (int)E53_IA1_Data.Lux, 5, 16);

        osal_task_sleep(2*1000);
    }
}
  • 結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章