0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RT-Thread“數(shù)碼小精靈”設(shè)計(jì)與實(shí)現(xiàn)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:趙俊濤 ? 2020-10-27 09:22 ? 次閱讀

作者:趙俊濤

一、概述

隨著近年來智能化設(shè)備的不斷增長,平板電腦、智能數(shù)字音視頻播放器、移動數(shù)碼相機(jī)等各類數(shù)碼產(chǎn)品,正越來越受到城鄉(xiāng)居民歡迎。特別是“云生活”讓人們對數(shù)碼產(chǎn)品有了更多需求,加上互聯(lián)網(wǎng)技術(shù)、5G 技術(shù)、智能化新產(chǎn)品、新型分期消費(fèi)模式等的出現(xiàn),讓數(shù)碼產(chǎn)品消費(fèi)熱潮涌動。

本設(shè)計(jì)為基于 RT-Thread 的“數(shù)碼小精靈”設(shè)計(jì),硬件采用了以 BK7252 為主控芯片的麻雀一號開發(fā)板開發(fā)。BK7252 , 是一款高性能 WiFi 模塊,采用高集成的無線射頻芯片,內(nèi)部集成 2.4GHz Wi-Fi 1T1R 先進(jìn)技術(shù),支持?jǐn)z像頭圖像輸出,擁有最佳的功耗性能、射頻性能、穩(wěn)定性、通用性和可靠性,適用于各種應(yīng)用和不同產(chǎn)品需求。模塊內(nèi)部擁有 512KB 內(nèi)嵌 RAM 和 4Mbyte Flash 空間,CPU 主頻高達(dá) 180Mhz。

本設(shè)計(jì)在此基礎(chǔ)上主要實(shí)現(xiàn)了以下功能,包括天氣和疫情數(shù)據(jù)更新顯示、MP3 音樂播放器以及數(shù)碼拍照相機(jī)的功能。其中 MP3 播放器具有音量調(diào)節(jié),播放/停止控制和歌曲切換的功能;數(shù)碼相機(jī)將拍照圖片進(jìn)行 LCD 屏顯示,同 時(shí)具有 SD 卡存儲和 OneNet 云平臺存儲功能。該產(chǎn)品可以充當(dāng)家庭數(shù)碼助理的角色,因此取名“數(shù)碼小精靈”。同時(shí)本作品完成的過程中參考了部分網(wǎng)絡(luò)資料和網(wǎng)友的思路,在此一并表示感謝。

二、RT-Thread 使用情況概述

本設(shè)計(jì)基于麻雀一號開發(fā)板 SDK 進(jìn)行開發(fā),其 RT-Thread 為 3.1.0 版本。

圖 1 RT-Thread 版本

在 RT-Thread 系統(tǒng)上的設(shè)備注冊列表,其中主要使用了 rtc,sd0,w0,sound,uart1 等設(shè)備。使用到的 RT-Thread 組件包括了 FinSH 控制臺,虛擬文件系統(tǒng),POSIX 接口。在軟件包上面涉及到網(wǎng)絡(luò)工具及 NetUtils,WebClient,cJSON,EasyFlash,rt_ota,TJpgDec,Player 等。

圖2設(shè)備注冊列表

三、硬件框架


麻雀一號開發(fā)板外設(shè)資源豐富,但資源相當(dāng)豐富,集成 WiFi、BLE、攝像頭、音頻揚(yáng)聲器、MIC 錄音、TF 卡座、五向按鍵、還有一個(gè) 1.44 寸的 LCD 屏,使用常見的 TypeC 接口作為供電和調(diào)試串口,預(yù)留支持鋰電池供電接口。

本設(shè)計(jì)的人機(jī)交互部分主要利用了開發(fā)板的五向按鍵和 LCD 顯示屏,其中按鍵用于功能選擇,數(shù)據(jù)刷新以及音樂播放控制功能。

普通模式下:“←”:音樂播放 、“”:天氣和疫情數(shù)據(jù)刷新 、“→”:相機(jī)拍照

音樂播放模式下:“↑”:音量加、“↓”:音量減 、“←”:下一曲 、“”:停止播放

設(shè)備聯(lián)網(wǎng)采用 WIFI 連接,上電自動連接網(wǎng)絡(luò)。數(shù)據(jù)顯示 LCD 進(jìn)行顯示,同時(shí)設(shè)備接有 SD 進(jìn)行相機(jī)拍照的存儲。此外照片同時(shí)可以通過 WIFI 上傳至OneNet 云平臺,進(jìn)行遠(yuǎn)端網(wǎng)頁或者手機(jī)等智能終端進(jìn)行查看。

四、軟件框架說明

系統(tǒng)軟件流程框圖如下圖所示,設(shè)備上電后啟動 RT-Thread 操作系統(tǒng),同 時(shí)進(jìn)行相關(guān)硬件設(shè)備的初始化操作,如 LCD 顯示屏,音頻揚(yáng)聲器,以及掛在SD 卡到文件系統(tǒng)等操作,之后進(jìn)行設(shè)備的網(wǎng)絡(luò)連接。網(wǎng)絡(luò)連接后輸入應(yīng)用程序啟動命令進(jìn)行程序啟動,LCD 顯示歡迎界面,接下來用戶可以通過五向按鍵進(jìn) 行功能選擇,主要是天氣疫情數(shù)據(jù)更新顯示、MP3 播放器功能以及數(shù)碼相機(jī)的功能。相機(jī)拍照后會進(jìn)行本地 SD 卡數(shù)據(jù)存儲以及 OneNet 云端存儲。

五、軟件模塊說明

1. 設(shè)備聯(lián)網(wǎng)

設(shè)備聯(lián)網(wǎng)主要使用到了 RT-Thread 組件中的 wlan 驅(qū)動程序?qū)崿F(xiàn),上電初始化完成后在主程序中查詢 wlan 無線設(shè)備,并根據(jù)用戶配置的 SSID 和PASSWORD 進(jìn)行 WIFI 網(wǎng)絡(luò)的連接。該部分的具體代碼實(shí)現(xiàn)如下所示:

1staticintiot_station_connect(char*ssid,char*passwd){ 2rt_err_tresult=RT_EOK; 3structrt_wlan_infoinfo; 4structrt_wlan_device*wlan; 5rt_tick_ttick=0; 6wlan=(structrt_wlan_device*)rt_device_find(WIFI_DEVICE_STA 7_NAME); 8if(!wlan) 9{ 10rt_kprintf("nowlan:%sdevice ",WIFI_DEVICE_STA_NAME); 11return-1;} 12result=rt_wlan_init(wlan,WIFI_STATION); 13rt_wlan_register_event_handler(wlan,WIFI_EVT_STA_CONNECTED,i 14ot_wlan_sta_connected_event); 15rt_wlan_register_event_handler(wlan,WIFI_EVT_STA_DISCONNECTED 16,iot_wlan_sta_disconnected_event); 17rt_wlan_info_init(&info,WIFI_STATION,SECURITY_WPA2_AES_PSK, 18ssid); 19result=rt_wlan_connect(wlan,&info,passwd); 20rt_wlan_info_deinit(&info); 21returnresult; 22}

2. NTP 網(wǎng)絡(luò)時(shí)間同步

網(wǎng)絡(luò)時(shí)間同步主要思路就是通過調(diào)用網(wǎng)絡(luò)工具包中的 ntp 同步函數(shù)來實(shí)現(xiàn),通過創(chuàng)建獨(dú)立時(shí)間同步線程,達(dá)到定時(shí)同步網(wǎng)絡(luò)時(shí)間的目的。該部分使用時(shí)需要啟用 RT-Thread 中的 RTC 功能。相關(guān)代碼如下:

1{ 2time_tcur_time=ntp_sync_to_rtc(); 3if(cur_time) 4{ 5rt_kprintf("GetlocaltimefromNTPserver:%s",ctime((constt 6ime_t*)&cur_time)); 7rt_kprintf("Thesystemtimeisupdated.Timezoneis%d. ",NTP 8_TIMEZONE); 9}} 10staticrt_thread_ttid1=RT_NULL; 11staticvoidntcthread1_entry(void*parameter){ 12while((1)) 13{ 14time_tcur_time=ntp_sync_to_rtc(); 15if(cur_time) 16{ 17rt_kprintf("GetlocaltimefromNTPserver:%s",ctime((consttim 18e_t*)&cur_time)); 19rt_kprintf("Thesystemtimeisupdated.Timezoneis%d. ",NTP_T 20IMEZONE); 21break;} 22else 23{ 24rt_thread_mdelay(1000); 25}}} 26voidNTCThreadInit(void){ 27if(tid1!=RT_NULL) 28{ 29rt_kprintf("ntcthreadstillrun "); 30return;} 31rt_kprintf("NTCthreadinit "); 32tid1=rt_thread_create("NTC", 33ntcthread1_entry,RT_NULL, 34THREAD_STACK_SIZE, 35THREAD_PRIORITY,THREAD_TIMESLICE); 36if(tid1!=RT_NULL) 37rt_thread_startup(tid1); 38}3. 天氣疫情數(shù)據(jù)更新

該部分主要是利用了 webclient 工具包的功能,通過調(diào)用天氣和疫情數(shù)據(jù)API 接口獲取相關(guān) Json 數(shù)據(jù),并利用 CJson 工具包進(jìn)行返回 Json 數(shù)據(jù)的解析。最后通過 LCD 進(jìn)行數(shù)據(jù)顯示。相關(guān)代碼如下:

1#defineGET_URI"http://www.weather.com.cn/data/sk/%s.html"http:// 2獲取天氣的API 3#defineGET_FY2020_URI"http://www.dzyong.top:3005/yiqing/total"http://疫情 4數(shù)據(jù)API 5voidget_weather(intargc,char**argv){ 6rt_uint8_t*buffer=RT_NULL; 7intresp_status; 8structwebclient_session*session=RT_NULL; 9char*weather_url=RT_NULL; 10intcontent_length=-1,bytes_read=0; 11intcontent_pos=0; 12char*city_name=rt_calloc(1,255); 13/*為weather_url分配空間*/ 14weather_url=rt_calloc(1,GET_URL_LEN_MAX); 15if(weather_url==RT_NULL) 16{ 17rt_kprintf("Nomemoryforweather_url! "); 18goto__exit; 19} 20if(argc==1){ 21strcpy(city_name,AREA_ID); 22} 23elseif(argc==2){ 24strcpy(city_name,argv[1]); 25} 26/*拼接GET網(wǎng)址*/ 27rt_snprintf(weather_url,GET_URL_LEN_MAX,GET_URI,city_name); 28/*創(chuàng)建會話并且設(shè)置響應(yīng)的大小*/ 29session=webclient_session_create(GET_HEADER_BUFSZ); 30if(session==RT_NULL) 31{ 32rt_kprintf("Nomemoryforgetheader! "); 33goto__exit; 34} 35/*發(fā)送GET請求使用默認(rèn)的頭部*/ 36if((resp_status=webclient_get(session,weather_url))!=200){ 37rt_kprintf("webclientGETrequestfailed,response(%d)error. ",resp_ 38status); 39goto__exit; 40} 41/*分配用于存放接收數(shù)據(jù)的緩沖*/ 42buffer=rt_calloc(1,GET_RESP_BUFSZ); 43if(buffer==RT_NULL) 44{ 45rt_kprintf("Nomemoryfordatareceivebuffer! "); 46goto__exit; 47} 48content_length=webclient_content_length_get(session); 49if(content_lengthGET_RESP 62_BUFSZ? 63GET_RESP_BUFSZ:content_length-conte 64nt_pos); 65if(bytes_read<=?0)?{ 66break;?} 67content_pos?+=?bytes_read; 68}while?(content_pos?
/*釋放網(wǎng)址空間*/

74if(weather_url!=RT_NULL) 75rt_free(weather_url); 76/*關(guān)閉會話*/ 77if(session!=RT_NULL) 78webclient_close(session); 79/*釋放緩沖區(qū)空間*/ 80if(buffer!=RT_NULL) 81rt_free(buffer); 82if(city_name!=RT_NULL) 83rt_free(city_name); 84} 85/*天氣數(shù)據(jù)解析*/ 86voidweather_data_parse(rt_uint8_t*data){ 87uint8_ttemp[100]; 88cJSON*root=RT_NULL,*object=RT_NULL,*item=RT_NULL; 89root=cJSON_Parse((constchar*)data); 90if(!root) 91{ 92rt_kprintf("NomemoryforcJSONroot! "); 93return;} 94object=cJSON_GetObjectItem(root,"weatherinfo"); 95item=cJSON_GetObjectItem(object,"city"); 96rt_kprintf(" city:%s",item->valuestring); 97lcd_clear(BLACK); 98item=cJSON_GetObjectItem(object,"temp"); 99rt_kprintf(" temp:%s",item->valuestring); 100rt_sprintf(temp,"溫度:%s",item->valuestring); 101lcd_disp_str_en_ch(0,20,temp,BLACK,WHITE); 102item=cJSON_GetObjectItem(object,"WD"); 103rt_kprintf(" wd:%s",item->valuestring); 104item=cJSON_GetObjectItem(object,"WS"); 105rt_kprintf(" ws:%s",item->valuestring); 106item=cJSON_GetObjectItem(object,"SD"); 107rt_kprintf(" sd:%s",item->valuestring); 108rt_sprintf(temp,"濕度:%s",item->valuestring); 109lcd_disp_str_en_ch(0,40,temp,BLACK,WHITE); 110item=cJSON_GetObjectItem(object,"time"); 111rt_kprintf(" time:%s ",item->valuestring); 112item=cJSON_GetObjectItem(object,"AP"); 113rt_kprintf(" ap:%s",item->valuestring); 114rt_sprintf(temp,"氣壓:%s",item->valuestring); 115lcd_disp_str_en_ch(0,60,temp,BLACK,WHITE); 116item=cJSON_GetObjectItem(object,"WSE"); 117rt_kprintf(" wse:%s",item->valuestring); 118rt_sprintf(temp,"風(fēng)力:%s",item->valuestring); 119lcd_disp_str_en_ch(0,80,temp,BLACK,WHITE); 120if(root!=RT_NULL) 121cJSON_Delete(root); 122} 123/*疫情數(shù)據(jù)解析*/

124voidfy2020_data_parse(rt_uint8_t*data){ 125uint8_ttemp[100]; 126cJSON*root=RT_NULL,*object=RT_NULL,*item=RT_NULL; 127root=cJSON_Parse((constchar*)data); 128if(!root) 129{ 130rt_kprintf("NomemoryforcJSONroot! "); 131return;} 1324.音樂播放模塊 133該部分的功能主要通過使用player軟件包的接口函數(shù)實(shí)現(xiàn),包括音樂播 134放,停止,歌曲切換以及音量控制等功能。該部分的部分代碼如下圖所示: 135cJSON*dataArray=cJSON_GetObjectItem(root,"data");//取數(shù)組 136intarraySize=cJSON_GetArraySize(dataArray);//取數(shù)組大小 137cJSON*dataList=dataArray->child; 138while(dataList!=RT_NULL) 139{ 140rt_kprintf(" diagnosed:%d ",cJSON_GetObjectItem(dataList,"diagn 141osed")->valueint); 142rt_kprintf(" death:%d ",cJSON_GetObjectItem(dataList,"death")-> 143valueint); 144rt_kprintf(" cured:%d ",cJSON_GetObjectItem(dataList,"cured")-> 145valueint); 146rt_kprintf(" date:%s ",cJSON_GetObjectItem(dataList,"date")->va 147luestring); 148//LCD屏打印信息 149rt_sprintf(temp,"累計(jì)確 150診:%d",cJSON_GetObjectItem(dataList,"diagnosed")->valueint); 151lcd_disp_str_en_ch(0,120,temp,BLACK,WHITE); 152rt_sprintf(temp,"累計(jì)死 153亡:%d",cJSON_GetObjectItem(dataList,"death")->valueint); 154lcd_disp_str_en_ch(0,140,temp,BLACK,WHITE); 155rt_sprintf(temp,"累計(jì)治 156愈:%d",cJSON_GetObjectItem(dataList,"cured")->valueint); 157lcd_disp_str_en_ch(0,160,temp,BLACK,WHITE); 158rt_sprintf(temp,"更新時(shí) 159間:%s",cJSON_GetObjectItem(dataList,"date")->valuestring); 160lcd_disp_str_en_ch(0,180,temp,BLACK,WHITE); 161dataList=dataList->next; 162}

4. 音樂播放模塊

該部分的功能主要通過使用 player 軟件包的接口函數(shù)實(shí)現(xiàn),包括音樂播放,停止,歌曲切換以及音量控制等功能。該部分的部分代碼如下圖所示:

1LCDShowMusic(); 2rt_sprintf(music,"/sd/music/%d.mp3",count); 3rt_kprintf("keyleftispress... "); 4rt_kprintf("http:////////////////////////////player_play "); 5player_stop(); 6player_set_uri(music); 7player_play(); 8player_status=1; 9count++; 10if(count>=8) 11count=0; 12rt_kprintf("http:////////////////////////////player_playend ");5. 相機(jī)功能實(shí)現(xiàn)

該部分主要通過 IPC 事件獲取相機(jī)采集圖像數(shù)據(jù),并將采集到的圖像數(shù)據(jù)經(jīng)過 TJpgDec 軟件包進(jìn)行解碼后在 LCD 進(jìn)行顯示,同時(shí)會將相機(jī)數(shù)據(jù)通過寫文件的形式存儲到 SD 卡,通過 HTTP 協(xié)議推送到 OneNet 云平臺。

1voidtake_photo(void)//手動拍照 2{ 3//創(chuàng)建攝像頭接收一幀圖片的事件 4session.event=rt_event_create("vt_event",RT_IPC_FLAG_FIFO); 5camera_start();//開啟攝像頭傳輸照片 6tvideo_capture(1); 7rt_event_recv(session.event,SEND_FRAME_EVENT,RT_EVENT_FLAG_OR|RT_EVE 8NT_FLAG_CLEAR,RT_WAITING_FOREVER,RT_NULL); 9intfd,res; 10time_tcur_time; 11structtm*cur_tm; 12chartime_now[50];//保存文件到sd卡指定路徑 13/*outputcurrenttime*/ 14cur_time=time(RT_NULL); 15cur_tm=localtime(&cur_time); 16rt_sprintf(time_now,"%04d-%02d-%02d-%02d-%02d-%02d",cur_tm->tm_year+19 1700,cur_tm->tm_mon+1,cur_tm->tm_mday,cur_tm->tm_hour,cur_tm->tm_min,cur 18_tm->tm_sec); 19rt_sprintf(file_name,"/sd/images/%s.jpg",time_now); 20rt_kprintf("name=%s ",file_name); 21fd=open(file_name,O_WRONLY|O_CREAT); 22if(fd>=0){ 23write(fd,session.buf,session.total_len); 24close(fd); 25rt_kprintf("save%sok!!! ",file_name); 26res=Decode_Jpg(file_name); 27rt_kprintf("res=%d ",res); 28} 29else 30{ 31rt_kprintf("savepicfailed!!! "); 32} 33//拍照數(shù)據(jù)上傳 34webclient_post_pic(session.buf,session.total_len); 35tvideo_capture(0); 36} 37MSH_CMD_EXPORT(take_photo,take_photo);

六、演示效果

原文標(biāo)題:【RT-Thread 開源作品秀】基于 RT-Thread 的“數(shù)碼小精靈”設(shè)計(jì)與實(shí)現(xiàn)

文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3185

    瀏覽量

    42241
  • 5G
    5G
    +關(guān)注

    關(guān)注

    1351

    文章

    48261

    瀏覽量

    562495
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1249

    瀏覽量

    39726

原文標(biāo)題:【RT-Thread 開源作品秀】基于 RT-Thread 的“數(shù)碼小精靈”設(shè)計(jì)與實(shí)現(xiàn)

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來襲!

    親愛的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開發(fā)的絕佳機(jī)會。
    的頭像 發(fā)表于 08-07 08:35 ?693次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來襲!

    RT-Thread 新里程碑達(dá)成——GitHub Star 破萬!

    RT-Thread實(shí)時(shí)操作系統(tǒng)開源項(xiàng)目在GitHub上的star數(shù)量突破一萬!截止發(fā)文,RT-Thread作為實(shí)時(shí)操作系統(tǒng)在業(yè)界Star數(shù)量排名第一!倉庫地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?338次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達(dá)成——GitHub Star 破萬!

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發(fā)表于 05-28 08:35 ?349次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技術(shù)大會演講議程發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會)致力于圍繞RT-Thread基礎(chǔ)軟件技術(shù)發(fā)展、實(shí)踐創(chuàng)新、開發(fā)者能力
    的頭像 發(fā)表于 05-16 08:34 ?419次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術(shù)大會演講議程發(fā)布!

    5月16日南京站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我們將在南京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發(fā)表于 05-01 08:35 ?279次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Threa
    的頭像 發(fā)表于 04-19 08:34 ?359次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Threa
    的頭像 發(fā)表于 04-16 08:35 ?351次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發(fā)表于 03-27 11:36 ?704次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread
    的頭像 發(fā)表于 03-27 08:34 ?435次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計(jì)劃!

    前不久,恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計(jì)劃,成為RT-Thread高級會員合作伙伴。同時(shí),RT-Thread現(xiàn)已成為恩智浦注冊合作伙伴(RT-Thread| 簡介合
    的頭像 發(fā)表于 03-14 10:40 ?519次閱讀
    恩智浦半導(dǎo)體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計(jì)劃!

    RT-Thread Nano入門:獨(dú)立看門狗(IWDT)

    本文主要介紹怎么用RT-Thread Nano實(shí)現(xiàn)獨(dú)立看門狗IWDT驅(qū)動,創(chuàng)建一個(gè)喂狗線程,實(shí)現(xiàn)定時(shí)喂狗功能。
    的頭像 發(fā)表于 11-22 11:04 ?1985次閱讀
    <b class='flag-5'>RT-Thread</b> Nano入門:獨(dú)立看門狗(IWDT)

    基于RT-Thread os實(shí)現(xiàn)混合定位介紹

    wayz_iotkit 是上海圖趣信息科技有限公司,針對RT-thread開發(fā)的能夠實(shí)現(xiàn)定位功能的物聯(lián)網(wǎng)組件。
    的頭像 發(fā)表于 11-15 16:19 ?753次閱讀
    基于<b class='flag-5'>RT-Thread</b> os<b class='flag-5'>實(shí)現(xiàn)</b>混合定位介紹

    i.MX RT1170:VGLite移植RT-Thread Nano過程講解(下)

    上篇介紹了如何移植 RT-Thread Nano 內(nèi)核與 Finsh 控制臺到 RT1170。本篇繼續(xù)介紹如何將 NXP 官方的 VGLite API 移植到 RT-Thread Nano 上。
    的頭像 發(fā)表于 11-09 11:22 ?820次閱讀

    i.MX RT1170:VGLite移植RT-Thread Nano過程講解(上)

    RT-Thread 是國人自主研發(fā)的開源實(shí)時(shí)操作系統(tǒng)(RTOS),RT-Thread Nano 是極簡版的硬實(shí)時(shí)內(nèi)核,內(nèi)存占用小,移植簡單。VGLite 是 NXP 提供的輕量級 2D 圖形 API,基于 FreeRTOS 實(shí)現(xiàn)
    的頭像 發(fā)表于 11-09 11:20 ?2333次閱讀
    i.MX <b class='flag-5'>RT</b>1170:VGLite移植<b class='flag-5'>RT-Thread</b> Nano過程講解(上)

    快速上手micro ros在RT-Thread

    快速上手micro ros && RT-Thread(serial和udp方式)
    的頭像 發(fā)表于 10-26 16:13 ?996次閱讀
    快速上手micro ros在<b class='flag-5'>RT-Thread</b>上