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

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

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

OK-MX93開(kāi)發(fā)板-實(shí)現(xiàn)Web頁(yè)面無(wú)線點(diǎn)燈

碼農(nóng)愛(ài)學(xué)習(xí) ? 來(lái)源:碼農(nóng)愛(ài)學(xué)習(xí) ? 作者:碼農(nóng)愛(ài)學(xué)習(xí) ? 2023-04-21 10:37 ? 次閱讀

上篇文章,介紹了OK-MX9352開(kāi)發(fā)板的基礎(chǔ)硬件功能。

本篇來(lái)使用OK-MX9352開(kāi)發(fā)板,通過(guò)Web界面進(jìn)行點(diǎn)燈測(cè)試,最終的效果如下:

在進(jìn)行代碼編寫之前,先在Ubuntu虛擬機(jī)上把這個(gè)板子的交叉編譯環(huán)境配置好。

1 交叉編譯環(huán)境配置

1.1 OKMX93 SDK源碼拷貝與解壓

將壓縮包(OKMX93-linux-sdk.tar.bz2.00和OKMX93-linux-sdk.tar.bz2.01)拷貝到自己的Ubuntu虛擬機(jī)中。

sdk_md5sum.txt是對(duì)應(yīng)的md5信息,也拷貝一下。使用md5sum指令確認(rèn)壓縮包的md5信息是否正確,以驗(yàn)證壓縮包是否完整。

xxpcb@ubuntuTest:~/myTest/ok-mx93/sourcecode$ md5sum OKMX93-linux-sdk.tar.bz2.0*
8ce38d0ab6cc754b2c0d9c232e1d0a4e  OKMX93-linux-sdk.tar.bz2.00
7733d956ae8121699fb25b94e61dde3f  OKMX93-linux-sdk.tar.bz2.01

然后使用如下指令解壓:

sudo cat OKMX93-linux-sdk.tar.bz2.0* | sudo tar xj

解壓需要一些時(shí)間,解壓后如下:

1.2 交叉編譯工具鏈的安裝

再新建一個(gè)文件夾,將解壓后SDK源碼中tools中的fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt6-armv8a-imx93-11x11-lpddr4x-evk-toolchain-5.15-kirkstone.sh拷貝到自己的文件夾中,然后執(zhí)行該腳本進(jìn)行交叉編譯工具鏈的安裝。

安裝過(guò)程如下:

安裝信息的第一行要選擇SDK的安裝目錄,回車默認(rèn)即可,接著再輸入Y確認(rèn),然后是輸入自己虛擬機(jī)的用戶密碼,就開(kāi)始安裝了。

看到打印****SDK has been successfully set up and is ready to be used表示安裝成功。

最后的信息是說(shuō)明如何設(shè)置編譯環(huán)境:每次打開(kāi)一個(gè)新的shell進(jìn)行交叉編譯時(shí),需要使用如下指令進(jìn)行環(huán)境變量的設(shè)置:

. /opt/fsl-imx-xwayland/5.15-kirkstone/environment-setup-armv8a-poky-linux

設(shè)置好之后,可以使用 $CC -v顯示gcc版本確認(rèn)環(huán)境變量是否設(shè)置成功,如下:

1.3 helloword程序測(cè)試

hello.c

#include 
?
int main()
{
printf("hello ok-mx93\\n");
return 0;
}

Makefile

TARGET=hello
?
OBJS=hello.o
?
CFLAGS+=-c -Wall -g
?
$(TARGET):$(OBJS)
$(CC) $^ -o $@ 
?
%.o:%.c
$(CC) $^ $(CFLAGS) -o $@
?
clean:
$(RM) *.o $(TARGET) -r

執(zhí)行make編譯

也可以執(zhí)行使用指令進(jìn)行編譯:

$CC hello.c -o hello

然后將編譯的可執(zhí)行文件復(fù)制到板子中,可以使用ssh命令:

scp hello root@192.168.5.115:/home/mytest

復(fù)制成功之后可在板子上運(yùn)行,查看打印結(jié)果

2 Web頁(yè)面點(diǎn)燈代碼

嵌入式開(kāi)發(fā)板,Web頁(yè)面點(diǎn)燈的基本原理是:在開(kāi)發(fā)板上配置Web服務(wù)器,然后在指定的文件位置,放置如html等類型的網(wǎng)頁(yè)文件,然后板子連網(wǎng),用電腦的瀏覽器輸入板子的IP地址,連接到開(kāi)發(fā)板的Web服務(wù),實(shí)現(xiàn)開(kāi)發(fā)板中網(wǎng)頁(yè)內(nèi)容的展示。

對(duì)于網(wǎng)頁(yè)中內(nèi)容或操作按鈕等功能,要與開(kāi)發(fā)板進(jìn)行數(shù)據(jù)交互,通常使用CGI(Common Gateway Interface,公共網(wǎng)關(guān)接口)的方式進(jìn)行編程。

2.1 lighttpd配置修改

OK-MX9352開(kāi)發(fā)板中已經(jīng)配置了lighttpd這個(gè)Web服務(wù)器,為了便于自己測(cè)試,可以修改其配置文件

/etc/lighttpd/lighttpd.conf

比如我這里把存放Web頁(yè)面的默認(rèn)位置更改為了/www/pages

另外,對(duì)應(yīng)cgi的配置,還需要增加227行這句,否則cgi執(zhí)行可能不能正常運(yùn)行

2.2 Web頁(yè)面設(shè)計(jì)

這里使用html語(yǔ)言設(shè)計(jì)一個(gè)LED的控制界面。

OK-MX9352開(kāi)發(fā)板上有兩個(gè)可以控制的LED,一個(gè)位于核心板上,另一個(gè)位于底板上,在設(shè)置html時(shí),可以使用select功能實(shí)現(xiàn)一個(gè)下拉選項(xiàng),選擇要控制的LED。

另外,LED也有多種控制模式,如基礎(chǔ)的開(kāi)關(guān)模式(設(shè)置開(kāi),或關(guān)),心跳燈模式,定時(shí)器模式(設(shè)置亮的時(shí)間和滅的時(shí)間),也使用下拉選項(xiàng)的方式。

選擇不同的控制模式后,為了能動(dòng)態(tài)展示不同模式下的操作功能,比如開(kāi)關(guān)模式下需要顯示開(kāi)和關(guān)的按鈕,心跳燈模式則不需要額外的配置,定時(shí)器模式則需要兩個(gè)輸入框來(lái)設(shè)置亮的時(shí)間和滅的時(shí)間。這里使用script功能,來(lái)實(shí)現(xiàn)此功能,通過(guò)讀取網(wǎng)頁(yè)中當(dāng)前LED模式的值,來(lái)進(jìn)行對(duì)應(yīng)控件的顯示或隱藏。

完整的html代碼如下,led.html:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
    <title>led control<span class="hljs-name"title>
    <span class="hljs-name"head>

    <body background="background.png"       
        style="background-repeat:no-repeat;       
        background-size:100% 100%;                     
        background-attachment: fixed;">  
    
    <center><br><br><br><br>
    <h1 align="center">基于飛凌OK-MX9352的web控制LED燈<span class="hljs-name"h1>
     
    <form action="led.cgi" method="get">  
        <p align="center">LED選擇:
        <select name="led_id">
            <option value="LED0" selected>核心板LED<span class="hljs-name"option>
            <option value="LED1">底板LED<span class="hljs-name"option>
        <span class="hljs-name"select><span class="hljs-name"p>
        <p align="center">模式選擇:
        <select name="led_mode" onclick="select_event(this.options[this.selectedIndex].value);">
            <option value="ONOFF" selected>開(kāi)關(guān)模式<span class="hljs-name"option>
            <option value="HEARTBEAT">心跳燈模式<span class="hljs-name"option>
            <option value="TIMER">定時(shí)器燈模式<span class="hljs-name"option>
        <span class="hljs-name"select><span class="hljs-name"p>
        <p align="center" id = "id_led_time_on" >亮?xí)r間:<input type="text" value=500 name="led_time_on"/><span class="hljs-name"p>
        <p align="center" id = "id_led_time_off" >滅時(shí)間:<input type="text" value=500 name="led_time_off"/><span class="hljs-name"p>
        <p align="center" id = "id_led_onoff">LED開(kāi)關(guān):
            <input type="radio" name="led_val" value="ON" checked>開(kāi)
            <input type="radio" name="led_val" value="OFF">關(guān)
        <span class="hljs-name"p><br><br>
        <p align="center">
            <input type="submit" value="確認(rèn)"/>        
            <input type="reset" value="返回"/>
        <span class="hljs-name"p>
    <span class="hljs-name"form>
    <span class="hljs-name"center>
?
    <script>
        document.getElementById("id_led_time_on").style.display = "none";
        document.getElementById("id_led_time_off").style.display = "none";
    <span class="hljs-name"script>
    <script>
        function select_event(value) 
        {
            document.getElementById("id_led_onoff").style.display = "none";
            document.getElementById("id_led_time_on").style.display = "none";
            document.getElementById("id_led_time_off").style.display = "none";
            if (value === "ONOFF") 
            {
                document.getElementById("id_led_onoff").style.display = "";
            } 
            else if (value === "TIMER") 
            {
                document.getElementById("id_led_time_on").style.display = "";
                document.getElementById("id_led_time_off").style.display = "";
            }
        }
    class="hljs-name"script>
    
    

可以先使用瀏覽器直接打開(kāi)這個(gè)html文件查看效果,實(shí)際效果如下:

2.3 CGI程序設(shè)計(jì)

CGI是Web服務(wù)器主機(jī)提供信息服務(wù)的標(biāo)準(zhǔn)接口。

通過(guò)CGI接口,Web服務(wù)器可以獲取網(wǎng)頁(yè)客戶端提交的信息,轉(zhuǎn)交給服務(wù)器端的CGI程序進(jìn)行處理,最后返回結(jié)果給客戶端。

CGI程序可以使用多種語(yǔ)言來(lái)實(shí)現(xiàn),對(duì)于嵌入式開(kāi)發(fā),那就用熟悉的C語(yǔ)言來(lái)編寫吧。

編寫CGI程序,需要用到CGI的庫(kù),下載地址: https://github.com/boutell/cgic,只需要用到cgic.c和cgic.h這兩個(gè)文件。

本次測(cè)試的LED點(diǎn)燈功能,CGI程序需要實(shí)現(xiàn)的,就是獲取網(wǎng)頁(yè)上的用戶操作信息,然后控制板子上的LED進(jìn)行對(duì)應(yīng)模式的亮滅,完整的代碼實(shí)現(xiàn)如下,led.c:

#include "cgic.h"
#include 
#include 
?
// cgic程序以cgiMain作為入口點(diǎn), cgic的函數(shù)庫(kù)會(huì)自動(dòng)把cgiMain連接到相應(yīng)的main()上去
int cgiMain() 
{ 
    char led_id[10];
    char led_mode[10]; 
    char led_val[10];
    int led_time_on;
    int led_time_off; 
    cgiFormString("led_id",  led_id, 10);
    cgiFormString("led_mode",  led_mode, 10); 
    cgiFormString("led_val",  led_val, 10);     
    cgiFormInteger("led_time_on",  &led_time_on, -1);
    cgiFormInteger("led_time_off",  &led_time_off, -1);
    
    // 設(shè)定輸出的內(nèi)容格式 這里我們要輸出HTML
    cgiHeaderContentType("text/html;charset=\"UTF-8\"");         
    fprintf(cgiOut,"LED Web Control");   
    fprintf(cgiOut,"");
    fprintf(cgiOut,"
");
    fprintf(cgiOut,"
");
    fprintf(cgiOut,"
");
    fprintf(cgiOut,"OK-MX93開(kāi)發(fā)板從Web頁(yè)面收到數(shù)據(jù):");
    fprintf(cgiOut,"led_id: %s", led_id);
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"led_mode: %s", led_mode);
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"led_val: %s", led_val);
    fprintf(cgiOut,"
");     
    fprintf(cgiOut,"led_time_on: %d", led_time_on);
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"led_time_off: %d", led_time_off);
    fprintf(cgiOut,"
"); 
?
    int ret = 0;
    
    if (0==strncmp("ONOFF",led_mode,10))
    {
        if (0==strncmp("ON",led_val,10))
        {
            if (0==strncmp("LED0",led_id,10))
            {
                ret |= system("echo none > /sys/class/leds/heartbeat/trigger");
                ret |= system("echo 1 > /sys/class/leds/heartbeat/brightness");
            }
            else if (0==strncmp("LED1",led_id,10))
            {
                ret |= system("echo none > /sys/class/leds/led1/trigger");
                ret |= system("echo 1 > /sys/class/leds/led1/brightness");
            }
        }
        else if (0==strncmp("OFF",led_val,10))
        {
            if (0==strncmp("LED0",led_id,10))
            {
                ret |= system("echo none > /sys/class/leds/heartbeat/trigger");
                ret |= system("echo 0 > /sys/class/leds/heartbeat/brightness");
            }
            else if (0==strncmp("LED1",led_id,10))
            {
                ret |= system("echo none > /sys/class/leds/led1/trigger");
                ret |= system("echo 0 > /sys/class/leds/led1/brightness");
            }
        }   
    }
    else if (0==strncmp("HEARTBEAT",led_mode,10))
    {
        if (0==strncmp("LED0",led_id,10))
        {
            ret |= system("echo heartbeat > /sys/class/leds/heartbeat/trigger");
        }
        else if (0==strncmp("LED1",led_id,10))
        {
            ret |= system("echo heartbeat > /sys/class/leds/led1/trigger");
        }   
    }
    else if (0==strncmp("TIMER",led_mode,10))
    {
        char tmp1[256];
        char tmp2[256];
        if (0==strncmp("LED0",led_id,10))
        {
            ret |= system("echo timer > /sys/class/leds/heartbeat/trigger");
            sprintf(tmp1, "echo %d > /sys/class/leds/heartbeat/delay_on", led_time_on);
            sprintf(tmp2, "echo %d > /sys/class/leds/heartbeat/delay_off", led_time_off);
            ret |= system(tmp1);
            ret |= system(tmp2);
        }
        else if (0==strncmp("LED1",led_id,10))
        {
            ret |= system("echo timer > /sys/class/leds/led1/trigger");
            sprintf(tmp1, "echo %d > /sys/class/leds/led1/delay_on", led_time_on);
            sprintf(tmp2, "echo %d > /sys/class/leds/led1/delay_off", led_time_off);
            ret |= system(tmp1);
            ret |= system(tmp2);
        }         
    }
    
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"執(zhí)行結(jié)果: %s", ret == 0 ? "成功" : "失敗");
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"
"); 
    fprintf(cgiOut,"返回");
    fprintf(cgiOut,"");
?
    return 0;
}

此cgi程序的執(zhí)行效果實(shí)測(cè)如下:

3 編譯與測(cè)試

在Ubuntu中對(duì)cgi程序進(jìn)行交叉編譯。

每次打開(kāi)一個(gè)bash窗口進(jìn)行交叉編譯時(shí),都要先執(zhí)行一次交叉編譯環(huán)境的生效:

. /opt/fsl-imx-xwayland/5.15-kirkstone/environment-setup-armv8a-poky-linux

然后使用gcc指令編譯即可,編譯的后綴為.cgi

$CC led.c cgic.c -o led.cgi

然后將led.cgi和led.html以及html用到的背景圖片拷貝到開(kāi)發(fā)板中,可以新建一個(gè)led目錄單獨(dú)存放,如下:

root@ok-mx93:/etc/lighttpd# cd /www/pages/led/
root@ok-mx93:/www/pages/led#
root@ok-mx93:/www/pages/led# ls
background.png  led.cgi  led.html
root@ok-mx93:/www/pages/led#

OK-MX9352開(kāi)發(fā)板開(kāi)機(jī)自動(dòng)啟動(dòng)Web服務(wù),復(fù)制完之后,在電腦的瀏覽器中,輸入板子ip以及對(duì)應(yīng)目錄的html文件目錄即可,如我的是:

192.168.5.115/led/led.html

4 總結(jié)

本篇介紹了在OK-MX9352開(kāi)發(fā)板上,通過(guò)Web服務(wù),實(shí)現(xiàn)網(wǎng)頁(yè)上LED控制界面來(lái)控制板子上LED進(jìn)行不同模式的亮滅。

文章首先介紹了在Ubuntu虛擬機(jī)中,進(jìn)行OK-MX9352的C/C++交叉編譯環(huán)境配置,然后介紹了Web點(diǎn)燈功能的代碼實(shí)現(xiàn),通過(guò)html設(shè)置頁(yè)面,通過(guò)CGI程序?qū)崿F(xiàn)網(wǎng)頁(yè)指令的接收和板子上LED的控制,最后進(jìn)行代碼編譯和實(shí)際測(cè)試。
審核編輯:湯梓紅

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

    關(guān)注

    5052

    文章

    18906

    瀏覽量

    300697
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1253

    瀏覽量

    69202
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11158

    瀏覽量

    208457
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96820
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    554

    瀏覽量

    29429
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FTHR-G0140開(kāi)發(fā)板LED點(diǎn)燈

    FTHR-G0140開(kāi)發(fā)板LED點(diǎn)燈;這個(gè)例程是基于MiniBoard (MM32G0141C4PV)的,所要修改PIN才能工作。經(jīng)查看開(kāi)發(fā)板上的LED接到了PA15上面:
    的頭像 發(fā)表于 06-05 12:54 ?21.8w次閱讀
    FTHR-G0140<b class='flag-5'>開(kāi)發(fā)板</b>LED<b class='flag-5'>點(diǎn)燈</b>

    米爾NXP i.MX 93開(kāi)發(fā)板的Qt開(kāi)發(fā)指南

    1.概述Qt是一個(gè)跨平臺(tái)的圖形應(yīng)用開(kāi)發(fā)框架,被應(yīng)用在不同尺寸設(shè)備和平臺(tái)上,同時(shí)提供不同版權(quán)版本供用戶選擇。米爾NXPi.MX93開(kāi)發(fā)板(MYD-LMX9X開(kāi)發(fā)板)使用Qt6.5版本進(jìn)行
    的頭像 發(fā)表于 06-07 08:01 ?1573次閱讀
    米爾NXP i.<b class='flag-5'>MX</b> <b class='flag-5'>93</b><b class='flag-5'>開(kāi)發(fā)板</b>的Qt<b class='flag-5'>開(kāi)發(fā)</b>指南

    正點(diǎn)原子i.MX93開(kāi)發(fā)板

    我計(jì)劃申請(qǐng)正點(diǎn)原子i.MX93開(kāi)發(fā)板,因?yàn)槲蚁M闷鋸?qiáng)大的NXP i.MX9352處理器進(jìn)行中高端嵌入式Linux開(kāi)發(fā)。這款處理器具備雙核
    發(fā)表于 05-16 14:57

    【正點(diǎn)原子i.MX93開(kāi)發(fā)板試用連載體驗(yàn)】第一篇:開(kāi)箱

    感謝電子發(fā)燒友論壇和正點(diǎn)原子提供的這次寶貴的試用機(jī)會(huì),我計(jì)劃利用該開(kāi)發(fā)板完成一個(gè)小型機(jī)器人的控制demo,同時(shí)測(cè)評(píng)各個(gè)功能模塊。首先,正點(diǎn)原子i.MX93開(kāi)發(fā)板是一款基于NXP i.MX
    發(fā)表于 06-20 14:06

    【正點(diǎn)原子i.MX93開(kāi)發(fā)板試用連載體驗(yàn)】第二篇:細(xì)節(jié)評(píng)測(cè)

    正點(diǎn)原子i.MX93開(kāi)發(fā)板模塊測(cè)試詳解 前言 正點(diǎn)原子最新推出的i.MX93開(kāi)發(fā)板,融合了豐富的外圍模塊,為開(kāi)發(fā)者提供了強(qiáng)大的
    發(fā)表于 07-31 11:20

    【飛凌i.MX9352開(kāi)發(fā)板試用】+NPU功能測(cè)試

    OK-MX93中集成了0.5TOPS的NPU,可加速機(jī)器學(xué)習(xí)推斷。 這里的TOPS是算力單位,是Tera Operations Per Second的縮寫,1TOPS代表處理器每秒鐘可進(jìn)行一萬(wàn)億次
    發(fā)表于 06-09 22:28

    OK2440開(kāi)發(fā)板入門操作視頻教程

    OK2440開(kāi)發(fā)板新手操作視頻教程 入門教程
    發(fā)表于 01-08 15:08 ?0次下載

    基于i.MX RT1061處理器的OK1061-S開(kāi)發(fā)板介紹

    OK1061-S開(kāi)發(fā)板采用“底板+核心”結(jié)構(gòu)設(shè)計(jì),搭載NXP公司 i.MX RT1061跨界處理器,ARM Cortex-M7內(nèi)核,集微控制器的低功耗、易用性與應(yīng)用處理器的高性能、高
    的頭像 發(fā)表于 11-21 09:30 ?1.1w次閱讀
    基于i.<b class='flag-5'>MX</b> RT1061處理器的<b class='flag-5'>OK</b>1061-S<b class='flag-5'>開(kāi)發(fā)板</b>介紹

    飛凌嵌入式OK1052-C開(kāi)發(fā)板簡(jiǎn)介

    OK1052-C 開(kāi)發(fā)板 OK1052-C開(kāi)發(fā)板基于NXP公司 i.MX RT1052跨界處理器設(shè)計(jì),搭載ARM Cortex-M7內(nèi)
    的頭像 發(fā)表于 12-03 15:54 ?6691次閱讀
    飛凌嵌入式<b class='flag-5'>OK</b>1052-C<b class='flag-5'>開(kāi)發(fā)板</b>簡(jiǎn)介

    i.MX9352——介紹一款多核異構(gòu)開(kāi)發(fā)板

    本篇來(lái)介紹一款多核異構(gòu)的Linux開(kāi)發(fā)板——OK-MX9352-C開(kāi)發(fā)板。
    的頭像 發(fā)表于 04-18 10:18 ?1246次閱讀
    i.<b class='flag-5'>MX</b>9352——介紹一款多核異構(gòu)<b class='flag-5'>開(kāi)發(fā)板</b>

    通過(guò)Web網(wǎng)頁(yè)控制開(kāi)發(fā)板LED燈

    接下來(lái)將介紹如何通過(guò)Web網(wǎng)頁(yè)來(lái)控制開(kāi)發(fā)板上的LED燈,本文只是在網(wǎng)頁(yè)上實(shí)現(xiàn)功能,并無(wú)交互功能,與開(kāi)發(fā)板的交互功能實(shí)現(xiàn)將在《
    的頭像 發(fā)表于 04-25 15:05 ?1502次閱讀
    通過(guò)<b class='flag-5'>Web</b>網(wǎng)頁(yè)控制<b class='flag-5'>開(kāi)發(fā)板</b>LED燈

    OK-MX9352-C開(kāi)發(fā)板 產(chǎn)品資料發(fā)布記錄-20230206

    飛凌嵌入式OK-MX9352-C開(kāi)發(fā)板產(chǎn)品資料發(fā)布記錄-(20230206版)后續(xù)會(huì)有版本更新,請(qǐng)持續(xù)關(guān)注。
    發(fā)表于 02-13 09:04 ?9次下載

    免費(fèi)!NXP i.MX 93開(kāi)發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了2塊價(jià)值678
    的頭像 發(fā)表于 05-23 08:01 ?593次閱讀
    免費(fèi)!NXP i.<b class='flag-5'>MX</b> <b class='flag-5'>93</b><b class='flag-5'>開(kāi)發(fā)板</b>有獎(jiǎng)試用

    點(diǎn)擊參與米爾NXP i.MX 93開(kāi)發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開(kāi)發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體驗(yàn)還可以獲得京東購(gòu)物卡趕快點(diǎn)擊鏈接報(bào)名吧~
    的頭像 發(fā)表于 06-13 08:02 ?380次閱讀
    點(diǎn)擊參與米爾NXP i.<b class='flag-5'>MX</b> <b class='flag-5'>93</b><b class='flag-5'>開(kāi)發(fā)板</b>有獎(jiǎng)試用

    198元,米爾NXP i.MX 93開(kāi)發(fā)板,限購(gòu)300套

    米爾NXPi.MX93開(kāi)發(fā)板憑借其卓越的性能、強(qiáng)勁的推理能力以及豐富的接口資源,在眾多行業(yè)應(yīng)用中都得到了廣泛認(rèn)可,為回饋廣大行業(yè)客戶的支持與厚愛(ài),進(jìn)一步激發(fā)開(kāi)發(fā)者的創(chuàng)新潛能,共同推動(dòng)技術(shù)的發(fā)展與進(jìn)步
    的頭像 發(fā)表于 09-27 08:00 ?207次閱讀
    198元,米爾NXP i.<b class='flag-5'>MX</b> <b class='flag-5'>93</b><b class='flag-5'>開(kāi)發(fā)板</b>,限購(gòu)300套