真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在LiteOS中移植傳感器

今天就跟大家聊聊有關如何在LiteOS中移植傳感器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

為洛江等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及洛江網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、成都網(wǎng)站制作、洛江網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1 hello world

相信大家無論在學習編程語言開始的第一個函數(shù)應該是HelloWorld,小編將從hello_world_demo為大家介紹如何實現(xiàn)傳感器的移植工作。

首先我們創(chuàng)建HelloWorld工程,選擇STM32_BearPi → hello_world_demo,工程名稱可以自定義。

如何在LiteOS中移植傳感器

創(chuàng)建之后我們點擊編譯,然后燒錄到開發(fā)板,打開VSCode-IoTLink的串口,并按照圖中進行設置串口連接參數(shù),之后按鍵Reset,可以看到串口打印如下圖所示。

如何在LiteOS中移植傳感器

首先來介紹一下代碼運行的簡單流程,之前在漫談LiteOS系列中介紹過LiteOS 的啟動流程,我們知道在程序下載到開發(fā)板之后,首先會按一下Reset按鍵進行開發(fā)板的啟動,因此在開發(fā)板上電之后執(zhí)行的第一個函數(shù)就是ReSet_Handler函數(shù)。

首先找到對應的啟動文件los_startup.S 文件(根據(jù)使用的操作系統(tǒng)以及板子MCU系列查找文件目錄),可以看到其由匯編語言編寫,具體啟動流程在漫談LiteOS系列中已經(jīng)介紹過,這里只看低91行,運行到main函數(shù),接下來程序?qū)膍ain函數(shù)開始執(zhí)行。

如何在LiteOS中移植傳感器

接下來看main函數(shù),在main函數(shù)中,從硬件初始化到內(nèi)核初始化,之后初始化串口,再到link_test()函數(shù),在該函數(shù)中創(chuàng)建了一個任務,其入口函數(shù)為Link_main函數(shù)。

如何在LiteOS中移植傳感器

在Link_main函數(shù)的最后調(diào)用了一個函數(shù)為standard_app_demo_main(),根據(jù)IDE查找我們可以看到,在項目中存在大量的該同名函數(shù),那么編譯器如何知道具體執(zhí)行的是哪一個呢,可以看到.config文件中的user_demo宏定義使能的是hello_world_demo,因此執(zhí)行的是hello_world_demo中的standard_app_demo_main()函數(shù),從而根據(jù)其內(nèi)部創(chuàng)建的任務以及入口函數(shù)實現(xiàn)了打印Hello World! This is BearPi!。接下來我們進行傳感器的移植。

如何在LiteOS中移植傳感器

2 傳感器移植

首先我們可以看到在該LiteOS代碼中已經(jīng)包含了大量的傳感器代碼,這里以E53_SC1為例,當然這些傳感器已經(jīng)和BearPi開發(fā)板已經(jīng)適配好,如果您想使用自己特定的傳感器,可以首先將傳感器與開發(fā)板進行一定的移植,包括引腳以及GPIO的綁定等等。

如何在LiteOS中移植傳感器

首先需要將傳感器文件路徑添加到編譯路徑中,以使得編譯器可以找到該代碼,在userdemo.mk中配置傳感器文件的相關路徑,在該文件中找到hello_world_demo部分添加文件路徑。具體如下圖83-84行,接著在源文件和頭文件變量中添加自定義的變量,user_sensor_src和user_hardware_inc,當然這里如果您直接定義名稱為編譯路徑中已經(jīng)存在的user_hardware_src和user_hardware_inc,則無需添加相關代碼。

如何在LiteOS中移植傳感器

首先我們需要添加傳感器頭文件到helloworld_demo.c中,以實現(xiàn)后面的相關函數(shù)調(diào)用。

#include    "E53_SC1.h"

之后調(diào)用結(jié)構(gòu)體,以便后續(xù)打印數(shù)據(jù)。

E53_SC1_Data_TypeDef    E53_SC1_Data;

然后在hello_world_demo.c文件中,添加傳感器數(shù)據(jù)的任務函數(shù)。

static int app_sensor_entry()
{
    Init_E53_SC1();
    while (1)
    {
        E53_SC1_Read_Data();
        printf("luminance:%d\n", (int)E53_SC1_Data.Lux);
        osal_task_sleep(2*1000);
    }
    return 0;
 
}

在主函數(shù)中創(chuàng)建傳感器任務函數(shù)。

osal_task_create("app_sensor_entry", app_sensor_entry, NULL, 0x400,NULL,2);
osal_task_sleep(2*1000);

具體如下圖

如何在LiteOS中移植傳感器

之后我們編譯燒錄,通過串口驗證一下傳感器的移植是否正確。

如何在LiteOS中移植傳感器

看完上述內(nèi)容,你們對如何在LiteOS中移植傳感器有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)站標題:如何在LiteOS中移植傳感器
文章來源:http://weahome.cn/article/jsgjic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部