版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
?NXROBO2023星火派套件使用課程說(shuō)明編寫(xiě)第一個(gè)程序線程的使用IO與串口SPI控制燈板?NXROBO20232編寫(xiě)第一個(gè)程序?NXROBO20233連接OpenHarmony開(kāi)發(fā)板?NXROBO20234采用VisualStudioCode添加遠(yuǎn)程計(jì)算機(jī),遠(yuǎn)程連接訪問(wèn)編寫(xiě)業(yè)務(wù)源碼文件helloworld.c?NXROBO202351)打開(kāi)開(kāi)發(fā)目錄spark_hm_pi/example該文件夾用于存放業(yè)務(wù)源代碼,路徑位于/home/spark/openharmony/openharmony3.1.6/device/board/nxrobo/spark_hm_pi/example編寫(xiě)業(yè)務(wù)源碼文件helloworld.c?NXROBO202362)新建源碼文件夾右鍵點(diǎn)擊example,新建文件夾(用于存源碼和gn文件)如創(chuàng)建新文件夾名01_helloworld(文件名自定義),新增helloworld.c(文件名可自定義)和BUILD.gn(文件名不可變)文件,其中helloworld.c為業(yè)務(wù)代碼,BUILD.gn為編譯腳本。編寫(xiě)業(yè)務(wù)源碼文件helloworld.c?NXROBO20237代碼段如下所示:編寫(xiě)業(yè)務(wù)編譯構(gòu)建文件BUILD.gn?NXROBO20238代碼段如下所示:編寫(xiě)業(yè)務(wù)編譯構(gòu)建文件BUILD.gn?NXROBO20239該代碼用于構(gòu)建一個(gè)名為"helloworld"的靜態(tài)庫(kù),其中包含了"helloworld.c"源文件,并且指定了需要包含的頭文件目錄"http://utils/native/lite/include"。靜態(tài)庫(kù)的具體構(gòu)建過(guò)程可能需要根據(jù)具體的構(gòu)建系統(tǒng)和工具進(jìn)行配置和操作。編寫(xiě)模塊編譯構(gòu)建文件BUILD.gn?NXROBO202310剛剛編寫(xiě)的業(yè)務(wù)編譯構(gòu)建文件BUILD.gn位于/spark_hm_pi/example/01_helloworld/BUILD.gn路徑中?,F(xiàn)在編寫(xiě)的模塊編譯構(gòu)建文件BUILD.gn位于/spark_hm_pi/example/BUILD.gn路徑中。編寫(xiě)模塊編譯構(gòu)建文件BUILD.gn?NXROBO202311業(yè)務(wù)編譯構(gòu)建文件BUILD.gn與模塊編譯構(gòu)建文件BUILD.gn的區(qū)別如下:編寫(xiě)模塊編譯構(gòu)建文件BUILD.gn?NXROBO202312代碼段如下所示:編譯?NXROBO202313若是在VisualStudioCode環(huán)境下,可以使用以下方式進(jìn)行編譯。點(diǎn)擊界面右下角的“+”新增終端確保在路徑~/openharmony/openharmony3.1.6下,輸入以下命令進(jìn)行編譯即可:hbbuild-f編譯?NXROBO202314燒錄所需的具體文件位于/home/spark/openharmony/openharmony3.1.6/out/spark_hm_pi/spark_hm_pi文件夾中。Hi3861_wifiiot_app_allinone.bin文件即為燒錄所需文件。燒錄&調(diào)試?NXROBO202315燒錄過(guò)程詳細(xì)查看《星火派SPARK-HM-PI程序燒錄說(shuō)明》文檔;關(guān)于如何在window上打開(kāi)工程文件詳看《將SPARK-HM-PI映射到window網(wǎng)絡(luò)驅(qū)動(dòng)盤(pán)》。燒錄成功后,使用USB-typeC線將電腦與開(kāi)發(fā)板的調(diào)試/燒錄口連接,借助串口助手工具進(jìn)行信息打印。連接方式如下圖:燒錄&調(diào)試?NXROBO202316打開(kāi)串口助手sscom5.13.1,如下圖所示:點(diǎn)擊左下角“打開(kāi)串口”:燒錄&調(diào)試?NXROBO202317然后點(diǎn)擊開(kāi)發(fā)板上的“RESET”按鍵,即可看到發(fā)送到串口的信息,如下圖所示:線程的使用?NXROBO202318線程的使用?NXROBO202319線程介紹?NXROBO202320線程是操作系統(tǒng)中能夠獨(dú)立運(yùn)行的最小單位,它可以在同一個(gè)進(jìn)程內(nèi)同時(shí)執(zhí)行多個(gè)程序段,從而提高程序的并發(fā)性和效率。線程在多任務(wù)處理中有廣泛的應(yīng)用,可以用于處理復(fù)雜的計(jì)算、網(wǎng)絡(luò)通信、圖形界面等任務(wù)。線程線程是進(jìn)程中的執(zhí)行單元,一個(gè)進(jìn)程可以包含多個(gè)線程。線程共享進(jìn)程的內(nèi)存空間和資源,每個(gè)線程有自己的程序計(jì)數(shù)器、寄存器和棧。多個(gè)線程可以同時(shí)執(zhí)行不同的任務(wù),共享進(jìn)程的上下文信息,因此線程之間的切換開(kāi)銷(xiāo)相對(duì)較小。進(jìn)程進(jìn)程是正在運(yùn)行的程序的實(shí)例。它是操作系統(tǒng)資源分配和調(diào)度的基本單位,擁有獨(dú)立的內(nèi)存空間、文件描述符、句柄等系統(tǒng)資源。進(jìn)程之間相互隔離,每個(gè)進(jìn)程有自己的地址空間和獨(dú)立的執(zhí)行環(huán)境,它們通過(guò)進(jìn)程間通信(IPC)的方式進(jìn)行數(shù)據(jù)交互。線程初始化?NXROBO202321線程相關(guān)接口可以在路徑:openharmony/openharmony3.1.6/kernel/liteos_m/kal/cmsis/cmsis_os2.h下查看,路徑有可能不固定,請(qǐng)同學(xué)檢查自己的cmsis_os2.h文件位置。該文件中最重要的一個(gè)是創(chuàng)建線程接口線程初始化?NXROBO202322osThreadAttr_t結(jié)構(gòu)體成員介紹成員變量
Name描述name線程名稱(chēng)。attr_bits線程屬性位。cb_mem用戶指定的控制塊指針。cb_size用戶指定的控制塊大小,單位:字節(jié)。stack_mem用戶指定的線程棧指針。stack_size線程棧大小,單位:字節(jié)。priority線程優(yōu)先級(jí)。tz_module線程安全配置。reserved線程保留參數(shù)。編寫(xiě)線程業(yè)務(wù)代碼hello_task.c?NXROBO202323在example目錄下,新建01hello_task(名字自定義)目錄在01hello_task目錄下,新建hello_task.c(業(yè)務(wù)代碼文件,文件名自定義),BUILD.gn(業(yè)務(wù)編譯構(gòu)建文件,將業(yè)務(wù)代碼構(gòu)建成靜態(tài)庫(kù),文件名固定)編寫(xiě)線程業(yè)務(wù)代碼hello_task.c?NXROBO202324修改hello_task.c,在上個(gè)HelloWorld的基礎(chǔ)上,嘗試修改源碼,加入線程,實(shí)現(xiàn)每秒打印一次Helloworld,每?jī)擅氪蛴∫淮蜨elloOpenHarmony。編寫(xiě)線程業(yè)務(wù)代碼hello_task.c?NXROBO202325編寫(xiě)業(yè)務(wù)編譯構(gòu)建文件BUILD.gn?NXROBO202326關(guān)于創(chuàng)建01hello_task目錄下的業(yè)務(wù)編譯構(gòu)建文件BUILD.gn,直接復(fù)制之前01_helloworld中的BUILD.gn即可,并且在include_dir(頭文件路徑)下面添加一行"http://kernel/liteos_m/kal/cmsis",因?yàn)槭褂昧薱msis_os2.h,所以要在BUILD.gn中添加對(duì)應(yīng)的頭文件所在路徑(此處注意需要與自身系統(tǒng)中的cmsis_os2.h文件位置相同)。編寫(xiě)模塊編譯構(gòu)建文件?NXROBO202327在example目錄下的BUILD.gn文件內(nèi)容中填入“01hello_task:hello_task”,編譯&燒錄&調(diào)試?NXROBO202328具體過(guò)程參照《鴻蒙開(kāi)發(fā)板開(kāi)發(fā)環(huán)境操作手冊(cè)》與《星火派SPARK-HM-PI程序燒錄說(shuō)明》打開(kāi)串口調(diào)試助手,即可出現(xiàn)以下信息:IO與串口?NXROBO202329IO使用介紹?NXROBO202330IO(輸入輸出)是指嵌入式設(shè)備與外部環(huán)境進(jìn)行數(shù)據(jù)交互的接口。它包括數(shù)字io和模擬io兩種類(lèi)型。數(shù)字io數(shù)字io使用二進(jìn)制編碼表示狀態(tài),例如0代表低電平(off),1代表高電平(on)。常見(jiàn)的數(shù)字io設(shè)備包括led燈、按鍵開(kāi)關(guān)、繼電器等。數(shù)字io接口通常使用gpio(通用輸入/輸出)接口控制。模擬io模擬io通過(guò)模擬信號(hào)來(lái)傳輸數(shù)據(jù),例如音頻信號(hào)、溫度傳感器測(cè)量值等。模擬信號(hào)可以是連續(xù)的,因此使用模擬信號(hào)需要進(jìn)行采樣和量化。常見(jiàn)的模擬io設(shè)備包括攝像頭、麥克風(fēng)、溫度傳感器等。模擬io接口通常使用adc(模數(shù)轉(zhuǎn)換器)或dac(數(shù)字模擬轉(zhuǎn)換器)接口進(jìn)行讀取或輸出。相關(guān)API?NXROBO202331IO復(fù)用?NXROBO202332星火派開(kāi)發(fā)板的引腳資源有限,有很多的內(nèi)置外設(shè),這些外設(shè)的外部引腳都是與GPIO復(fù)用的。也就是說(shuō),一個(gè)GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么當(dāng)這個(gè)GPIO作為內(nèi)置外設(shè)使用的時(shí)候,就叫做復(fù)用。可以根據(jù)數(shù)據(jù)手冊(cè)查看IO引腳可復(fù)用的功能。串口介紹?NXROBO202333通用異步收發(fā)傳輸器(UniversalAsynchronousReceiver/Transmitter,通常稱(chēng)作UART)是一種串行異步收發(fā)協(xié)議,應(yīng)用十分廣泛。UART工作原理是將數(shù)據(jù)的二進(jìn)制位一位一位的進(jìn)行傳輸。。當(dāng)然兩個(gè)設(shè)備使用UART串口通訊時(shí),必須先約定好傳輸速率和一些數(shù)據(jù)位。串口相關(guān)API?NXROBO202334串口相關(guān)API?NXROBO202335示例?NXROBO202336查閱原理圖可知,拓展燈板上有一個(gè)USB轉(zhuǎn)串口的芯片(連接到UART1),可以通過(guò)type—c數(shù)據(jù)線連接,該接口與電腦進(jìn)行串口通信,通過(guò)串口工具進(jìn)行調(diào)試。下面將實(shí)現(xiàn)串口接收數(shù)據(jù)與發(fā)送數(shù)據(jù)實(shí)驗(yàn)。編寫(xiě)串口業(yè)務(wù)代碼uart_ex_demo.c?NXROBO202337接著在05_uart_ex目錄下新建uart_ex_demo.c文件,并且寫(xiě)入以下內(nèi)容,更多詳細(xì)代碼查看實(shí)訓(xùn)指南編寫(xiě)業(yè)務(wù)編譯構(gòu)建文件BUILD.gn?NXROBO202338在05_uart_ex新建BUILD.gn(文件名不要自定義)文件,寫(xiě)入以下內(nèi)容:編寫(xiě)模塊編譯構(gòu)建文件BUILD.gn?NXROBO202339接著在example目錄下,在BUILD.gn文件寫(xiě)入以下代碼:編譯&燒錄&調(diào)試?NXROBO202340具體過(guò)程參照《鴻蒙開(kāi)發(fā)板開(kāi)發(fā)環(huán)境操作手冊(cè)》與《星火派SPARK-HM-PI程序燒錄說(shuō)明》打開(kāi)串口調(diào)試助手,按下開(kāi)發(fā)板reset,可以看到串口打印出"goodmorning"。接下來(lái)就可以通過(guò)串口往開(kāi)發(fā)板發(fā)送任意數(shù)據(jù),開(kāi)發(fā)板會(huì)將數(shù)據(jù)通過(guò)串口回傳,在即可出現(xiàn)以下信息:SPI控制燈板?NXROBO202341SPI介紹?NXROBO202342SPI(serialperipheralinterface,串行外設(shè)接口)是一種用于連接微控制器和外設(shè)的串行通信協(xié)議。SPI通信總線由四根線組成,分別是時(shí)鐘線(SCK)、數(shù)據(jù)輸入線(SDI)、數(shù)據(jù)輸出線(SDO)和從設(shè)備選擇線(CS)。SPI特點(diǎn)?NXROBO202343高速傳輸:spi是一種高速傳輸協(xié)議,可以實(shí)現(xiàn)高達(dá)幾百mhz的傳輸速率。全雙工通信:spi可以同時(shí)進(jìn)行發(fā)送和接收,因此通信效率更高。硬件實(shí)現(xiàn):spi通信使用硬件邏輯實(shí)現(xiàn),不需要大量的軟件處理,因此更加高效。簡(jiǎn)單靈活:spi接口簡(jiǎn)單,易于實(shí)現(xiàn)和使用,并且支持多個(gè)從設(shè)備的并聯(lián)。相關(guān)API?NXROBO202344相關(guān)頭文件位置:device/soc/hisilicon/hi3861v100/sdk_liteos/include/hi_spi.hWS2812LED介紹?NXROBO202345WS2812的8x8燈板是一種由64個(gè)WS2812LED燈珠組成的點(diǎn)陣屏幕。每個(gè)WS2812LED燈珠都可以獨(dú)立控制顏色和亮度,因此可以在這種燈板上顯示彩色圖像和動(dòng)畫(huà)。WS2812LED介紹?NXROBO202346WS2812LED燈珠使用一種特殊的通信協(xié)議,可以通過(guò)單個(gè)數(shù)據(jù)線連接多個(gè)燈珠。這意味著您只需要使用一個(gè)引腳來(lái)控制整個(gè)8x8燈板。要控制WS2812的8x8燈板,您需要使用單片機(jī)或微控制器來(lái)發(fā)送控制數(shù)據(jù),并使用相應(yīng)的庫(kù)函數(shù)來(lái)設(shè)置每個(gè)LED燈珠的顏色和亮度。相關(guān)API?NXROBO202347圖片取模介紹?NXROBO202348
圖片取模是指將一幅圖片轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)的過(guò)程。這通常用于將圖片顯示在點(diǎn)陣屏幕(如LED點(diǎn)陣屏幕或LCD字符顯示屏)上。
在圖片取模過(guò)程中,首先需要將圖片縮放到與目標(biāo)點(diǎn)陣屏幕大小相匹配。然后,根據(jù)屏幕的顏色深度和顯示能力,將圖片的顏色數(shù)據(jù)轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)。例如,對(duì)于單色點(diǎn)陣屏幕,圖片的顏色數(shù)據(jù)需要轉(zhuǎn)換為黑白二值數(shù)據(jù)。
最后,根據(jù)屏幕控制器的要求,將點(diǎn)陣數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a和排列。例如,對(duì)于橫向取模的控制器,需要將點(diǎn)陣數(shù)據(jù)按行排列;對(duì)于縱向取模的控制器,則需要將點(diǎn)陣數(shù)據(jù)按列排列。
圖片取模通常使用專(zhuān)門(mén)的取模軟件來(lái)完成,也可以通過(guò)編程實(shí)現(xiàn),具體可以網(wǎng)上搜索取模軟件?!癝PARK“圖片取模?NXROBO202349
橫向取模和字節(jié)倒序是點(diǎn)陣字庫(kù)中常用的術(shù)語(yǔ)。
橫向取模是指在點(diǎn)陣字庫(kù)中,一個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州肯恩大學(xué)《媒體寫(xiě)作與運(yùn)營(yíng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024零售商資金墊付協(xié)議樣本版B版
- 二零二五年度抖音與體育賽事合作合同6篇
- 二零二五版德漢翻譯及多語(yǔ)言本地化服務(wù)協(xié)議3篇
- 2024版樁基工程分包商合同2篇
- 2024版私營(yíng)企業(yè)工廠勞務(wù)外包協(xié)議樣本一
- 銅陵職業(yè)技術(shù)學(xué)院《軟件測(cè)試與質(zhì)量保證》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津美術(shù)學(xué)院《公益廣告策劃與創(chuàng)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年綠色能源項(xiàng)目合作開(kāi)發(fā)合同范本3篇
- 四川希望汽車(chē)職業(yè)學(xué)院《化學(xué)工程基礎(chǔ)2》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 24474.1-2020乘運(yùn)質(zhì)量測(cè)量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實(shí)施方案(一)
- 高血壓患者用藥的注意事項(xiàng)講義課件
- 特種作業(yè)安全監(jiān)護(hù)人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭(zhēng)課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
- 常暗之廂(7規(guī)則-簡(jiǎn)體修正)
評(píng)論
0/150
提交評(píng)論