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

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

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

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-11-06 09:24 ? 次閱讀

引言

隨著變電站智能化程度的逐步提高,對(duì)溫度、濕度等現(xiàn)場(chǎng)狀態(tài)參量的采集需求也越來越多。就目前而言,在現(xiàn)場(chǎng)應(yīng)用中,此類設(shè)備多采用RS232RS485UART串行通信方式和IED(Intelligent Electronic Device,智能電子設(shè)備)裝置進(jìn)行交互。一般來說,不同的設(shè)備采用的通信數(shù)據(jù)幀格式并不相同。各式各樣的串口數(shù)據(jù)幀格式,對(duì)IED裝置的軟件定型造成一定的困難。傳統(tǒng)的做法一般是由裝置生產(chǎn)廠家指定和其配套的外圍設(shè)備,裝置的靈活性不夠理想。本文針對(duì)此類問題,提出了一種基于Lua腳本語言的解決方案,可有效地提高IED裝置對(duì)各種類型串口數(shù)據(jù)報(bào)文幀格式的適應(yīng)性。該方案將具體串口報(bào)文規(guī)約的組建和解析交給Lua腳本進(jìn)行處理,從而使設(shè)計(jì)者在裝置的軟件開發(fā)中,可僅關(guān)注于相關(guān)接口的設(shè)計(jì),而不用關(guān)心具體的串口通信規(guī)約,從而方便軟件的定型,并提高了裝置自身在應(yīng)用中的靈活性。

1 Lua腳本語言介紹

Lua是一種源碼開放的、免費(fèi)的、輕量級(jí)的嵌入式腳本語言,源碼完全采用ANSI(ISO) C.這一點(diǎn)使它非常適合融入目前以C語言為主的嵌入式開發(fā)環(huán)境之中。兩者之間實(shí)現(xiàn)交互的關(guān)鍵在于一個(gè)虛擬的棧,通過該虛擬棧和Lua提供的可對(duì)該棧進(jìn)行操作的相關(guān)接口函數(shù),可以很方便地在它們之間實(shí)現(xiàn)各種類型數(shù)據(jù)的傳遞。

與其他腳本語言(如Perl、Tcl、Python等)相比,Lua表現(xiàn)出了足夠的簡(jiǎn)單性以及非常高的執(zhí)行效率,結(jié)合其與平臺(tái)的高度無關(guān)以及充分的可擴(kuò)展性[1],這使得它越來越多地得到大家的關(guān)注。因此,在本文的方案中優(yōu)先選用Lua腳本來進(jìn)行設(shè)計(jì)。

2 系統(tǒng)方案概述

本方案主要是圍繞著IED裝置和外圍串口設(shè)備之間的通信來進(jìn)行設(shè)計(jì)的,系統(tǒng)框架如圖1所示。

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

圖1 系統(tǒng)框架

當(dāng)IED裝置開始運(yùn)行時(shí),將創(chuàng)建一個(gè)用于UART通信的讀寫調(diào)度任務(wù)。在該任務(wù)中,首先通過Lua提供的接口函數(shù)來啟動(dòng)其腳本引擎,并創(chuàng)建Lua虛擬機(jī)。然后即可將用戶編寫的C函數(shù)注冊(cè)到Lua虛擬機(jī)中去,并將存在于Flash文件系統(tǒng)中獨(dú)立于裝置C程序的Lua腳本文件加載到虛擬機(jī)中,從而建立起Lua和C的交互環(huán)境。在系統(tǒng)應(yīng)用中,將需要發(fā)送到外圍設(shè)備的具體數(shù)據(jù)內(nèi)容都放在Lua腳本文件中。當(dāng)裝置C程序需要發(fā)送數(shù)據(jù)時(shí),通過通信讀寫調(diào)度程序及虛擬機(jī)的配合,將這部分?jǐn)?shù)據(jù)取出,并調(diào)用串口驅(qū)動(dòng)程序發(fā)送給外圍設(shè)備。當(dāng)收到外圍設(shè)備發(fā)給IED裝置的報(bào)文時(shí),再將相應(yīng)數(shù)據(jù)傳給虛擬機(jī)中運(yùn)行的腳本程序進(jìn)行處理,并由Lua根據(jù)數(shù)據(jù)處理結(jié)果來調(diào)用已注冊(cè)的C函數(shù)進(jìn)行相關(guān)業(yè)務(wù)處理。

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

圖2 系統(tǒng)程序流程

本系統(tǒng)的程序流程如圖2所示。

其中,串口通信芯片采用TI公司的帶64字節(jié)FIFO的4通道可編程UART芯片TL16C754B來實(shí)現(xiàn)。它的4個(gè)通道可分別獨(dú)立編程,在3.3 V的操作電壓下,數(shù)據(jù)傳輸速率可高達(dá)2 Mbps,適合多種UART通信環(huán)境中的應(yīng)用[2].基于裝置的應(yīng)用環(huán)境,本文采用RS485的問答機(jī)制并結(jié)合查詢方式來對(duì)該串口通信方案進(jìn)行設(shè)計(jì)。在方案實(shí)現(xiàn)中,裝置將每隔一定時(shí)間通過串口芯片發(fā)送一次查詢報(bào)文,當(dāng)查詢到外圍設(shè)備發(fā)送的正確響應(yīng)報(bào)文后,再進(jìn)行相關(guān)業(yè)務(wù)處理。

3 功能實(shí)現(xiàn)

在嵌入式應(yīng)用領(lǐng)域,串口通信的應(yīng)用比較成熟,因此,本文將著重介紹Lua是如何服務(wù)于這一應(yīng)用的。從圖2可以看出,Lua的使用主要體現(xiàn)在如下幾個(gè)方面:

◆ Lua與C交互環(huán)境的建立;

◆ 提取腳本中的串口配置數(shù)據(jù);

◆ 調(diào)用Lua函數(shù)設(shè)置發(fā)送緩沖區(qū);

◆ 通過Lua函數(shù)處理接收緩沖區(qū)數(shù)據(jù)。

3.1 Lua與C交互環(huán)境的建立

要建立交互環(huán)境,首先要啟動(dòng)Lua腳本引擎,并創(chuàng)建虛擬機(jī)。其機(jī)制雖然相對(duì)復(fù)雜,但對(duì)應(yīng)用來說卻比較簡(jiǎn)單,通過"L=lua_open(NULL);"即可實(shí)現(xiàn)。其中,L是一個(gè)指向結(jié)構(gòu)類型為lua_State的指針變量,該結(jié)構(gòu)將負(fù)責(zé)對(duì)Lua的運(yùn)行狀態(tài)進(jìn)行維護(hù)。

為了實(shí)現(xiàn)Lua腳本函數(shù)對(duì)系統(tǒng)程序中串口發(fā)送和接收緩存區(qū)的數(shù)據(jù)進(jìn)行訪問,定義了幾個(gè)C函數(shù)供腳本調(diào)用,即用于設(shè)置串口發(fā)送緩沖區(qū)的函數(shù)set_tx_buf、讀取串口接收緩沖區(qū)的函數(shù)get_rx_buf,以及在Lua腳本中判斷串口數(shù)據(jù)交互正常時(shí)調(diào)用的結(jié)果處理函數(shù)uart_ok_del.

在Lua腳本中,要成功調(diào)用以上函數(shù),必須將其加載到Lua虛擬機(jī)中去,本文采用Lua提供的一種注冊(cè)C函數(shù)庫的方法來實(shí)現(xiàn)。具體加載過程如下:

① 按以下格式定義調(diào)用函數(shù):

static int set_tx_buf(lua_State *L);

static int get_rx_buf(lua_State *L);

static int uart_ok_del(lua_State *L);

② 聲明一個(gè)結(jié)構(gòu)數(shù)組,每個(gè)數(shù)組元素分別為C函數(shù)在Lua腳本中的調(diào)用名字及對(duì)應(yīng)的C函數(shù),即以"name-function"對(duì)的形式出現(xiàn),如下所示:static const struct luaL_reg uartLib[] ={

{"set_tx_buf",set_tx_buf},

{"get_tx_buf", get_tx_buf},

{"uart_ok_del", uart_ok_de},

{NULL, NULL}

};

③ 調(diào)用以下函數(shù)對(duì)C函數(shù)庫進(jìn)行注冊(cè):luaL_register(L, "ied", uartLib );其中,參數(shù)L即為創(chuàng)建虛擬機(jī)時(shí)的函數(shù)返回值(以下同),字符串"ied"為注冊(cè)到虛擬機(jī)中的庫名稱。第3個(gè)參數(shù)uartLib即為前面聲明的結(jié)構(gòu)數(shù)組,對(duì)應(yīng)需要注冊(cè)的庫函數(shù)表。

通過以上步驟,即可完成Lua腳本中需要調(diào)用的3個(gè)C函數(shù)的注冊(cè)過程,從而就可以在Lua腳本中通過"庫名稱。庫函數(shù)"的形式來對(duì)其進(jìn)行調(diào)用,如"ied.set_tx_buf(函數(shù)參數(shù))".

腳本文件本身的加載則相對(duì)簡(jiǎn)單,只需通過如下函數(shù)調(diào)用即可:

luaL_dofile(L, "uart_script.lua");

其中,參數(shù)L和以上的函數(shù)調(diào)用相同,第2個(gè)參數(shù)則為腳本文件在Flash中的具體存儲(chǔ)路徑。

至此,就成功建立了一個(gè)Lua與C的交互環(huán)境。

3.2 提取腳本中的串口配置數(shù)據(jù)

要正確地進(jìn)行Lua和C的交互過程,首先必須對(duì)Lua和C交互時(shí)所采用虛擬棧的作用和操作有比較深入的了解。在Lua和C的交互中,它們彼此之間函數(shù)參數(shù)以及返回值都將由該棧來負(fù)責(zé)傳遞。Lua和C在棧的操作方式上稍有不同,在Lua中采用嚴(yán)格的LIFO方式,而C則還可以通過索引的方式進(jìn)行。以3個(gè)參數(shù)為例,參數(shù)1首先入棧,參數(shù)2、3隨后順次入棧,Lua虛擬棧存儲(chǔ)結(jié)構(gòu)及索引對(duì)應(yīng)關(guān)系如圖3所示。

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

圖3 Lua虛擬棧結(jié)構(gòu)示例圖

如需在C中訪問參數(shù)1,則既可以通過索引號(hào)1進(jìn)行,也可通過索引號(hào)-3進(jìn)行。其中,正索引按入棧順序從1依次遞增,負(fù)索引按出棧順序從-1依次遞減。

通常情況下,串口的配置主要有以下幾項(xiàng):是否使能、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)標(biāo)志位和波特率。因此,在Lua腳本中,本文采用Lua的表結(jié)構(gòu)對(duì)其進(jìn)行設(shè)置,示例如下(本文中斜體代碼表示為L(zhǎng)ua腳本,以下同):

uart_p0={

enable=1,--使能位

dataBits=8 , --數(shù)據(jù)位數(shù)

stopBits=1 , --停止位數(shù)

parityBit=2 , --奇偶校驗(yàn)

baudRate=9600 --波特率

};

該例表示對(duì)UART芯片的P0口進(jìn)行使能,并且采用8位數(shù)據(jù)位、1位停止位、偶校驗(yàn)(本文定義parityBit的值取0為無校驗(yàn),取1為奇校驗(yàn),取2為偶校驗(yàn))的幀格式,波特率為9 600 bps.

在C語言中,要獲取表中enable屬性字段的值,可采用以下步驟:

① 調(diào)用接口函數(shù)并以表名稱作為參數(shù),將該表入棧:

lua_getglobal(L, "uart_p0");

② 調(diào)用接口函數(shù)將enable屬性字段的屬性名稱入棧:

lua_pushstring(L, "enable");

③ 調(diào)用接口函數(shù)提取屬性值,該操作在C中可看作是一個(gè)先出棧再入棧的過程,結(jié)果將在②中已入棧的屬性名稱所在位置填入屬性值:

lua_gettable(L, -2);

其中,參數(shù)"-2"為棧中的索引號(hào)。

④ 調(diào)用接口函數(shù)取出棧頂中該屬性字段的值,并調(diào)用出棧函數(shù),以恢復(fù)調(diào)用環(huán)境:

p0_enable = (int)lua_tonumber(L, -1);

lua_pop(L, 1);

其中,lua_tonumber函數(shù)的參數(shù)"-1"也為棧中的索引號(hào),該操作將取出棧頂元素的數(shù)值,鑒于Lua中的數(shù)據(jù)都為浮點(diǎn)數(shù),所以需將其強(qiáng)制轉(zhuǎn)換為整型數(shù)據(jù)。lua_pop中參數(shù)"1"為非索引,僅說明從棧頂將1個(gè)元素出棧。

通過以上操作,就可以正確地取出腳本中p0口參數(shù)設(shè)置表中enable屬性字段的值。其他屬性字段的提取與其相同。虛擬棧中的內(nèi)容變化如圖4所示。

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

圖4 提取表中屬性值時(shí)的虛擬棧操作示意圖

3.3 調(diào)用Lua函數(shù)設(shè)置發(fā)送緩沖區(qū)

為通過Lua腳本對(duì)串口發(fā)送緩沖區(qū)進(jìn)行設(shè)置,在腳本中定義了如下函數(shù):

data ={0x11, 0x22, 0x33, 0x44, 0x55 };

function uart_p0_set_txBuf()

local port=0;

local p0_send_num=5;

for i=1, p0_send_num do

ied.set_tx_buf(port,i-1, data[i])

end

return p0_send_num

end

從腳本內(nèi)容可以看出,在此采用了一個(gè)Lua中的循環(huán)結(jié)構(gòu)對(duì)發(fā)送緩沖區(qū)進(jìn)行設(shè)置,并返回設(shè)置的數(shù)據(jù)個(gè)數(shù)。其中,全局變量data是Lua腳本中的表,類似于數(shù)組,在此表示需要設(shè)置的緩沖區(qū)內(nèi)容;ied.set_tx_buf()為在3.1節(jié)中提到的已注冊(cè)到虛擬機(jī)中的C函數(shù)庫中的一個(gè)函數(shù)。其參數(shù)port表示端口號(hào),i-1表示緩沖區(qū)索引號(hào),data[i]表示具體的數(shù)據(jù)內(nèi)容。在應(yīng)用中需要注意的是,在Lua中,數(shù)組索引默認(rèn)從1開始,而不像C中從0開始。另外,在C中定義set_tx_buf函數(shù)時(shí)并未設(shè)置參數(shù),這主要是因?yàn)閰?shù)的提取必須借助于虛擬棧才能實(shí)現(xiàn)。在腳本中調(diào)用時(shí),對(duì)其參數(shù)將按照從左到右的順序依次入棧,在C中要取出參數(shù)時(shí),按照其在棧中相應(yīng)的索引號(hào)取出即可。在Lua中對(duì)每個(gè)函數(shù)的調(diào)用都有一個(gè)獨(dú)立的棧,因此,若以i取2時(shí)調(diào)用情況為例,在C函數(shù)set_tx_buf中看到的棧內(nèi)容將如圖5所示。

Lua腳本語言介紹與如何實(shí)現(xiàn)嵌入式UART通信設(shè)計(jì)方案

圖5 函數(shù)調(diào)用時(shí)的虛擬棧示例

從而在C程序中,只需要調(diào)用下面語句即可將該串口發(fā)送緩沖區(qū)中索引為1的內(nèi)存區(qū)域設(shè)置成0x22:

port=(int)lua_tonumber(L,1);//取端口號(hào)

index=(int)lua_tonumber(L,2);//取索引

data=(char)lua_tonumber(L,3);//取數(shù)據(jù)

uart_port_tx_buf[port].data[index]=data;

當(dāng)在C程序中需對(duì)串口發(fā)送緩沖區(qū)進(jìn)行設(shè)置時(shí),將按如下方法調(diào)用該腳本函數(shù):

lua_getglobal(L, "uart_p0_set_txBuf ");

lua_pcall(L, 0, 1, 0);

其中,函數(shù)lua_getglobal的參數(shù)"uart_p0_set_txBuf"為要調(diào)用的腳本函數(shù)名,函數(shù)lua_pcall的函數(shù)原型為:

int (lua_pcall) (

lua_State *L,

int nargs, //調(diào)用函數(shù)的參數(shù)個(gè)數(shù)

int nresults, //返回的參數(shù)個(gè)數(shù)

int errfunc //錯(cuò)誤處理函數(shù)號(hào)

);

因所調(diào)用的腳本函數(shù)uart_p0_set_txBuf沒有參數(shù),有一個(gè)返回值,所以分別將nargs、nresults置為0、1,而錯(cuò)誤處理函數(shù)暫不使用,故置為0.

對(duì)于腳本中的返回值,將在腳本函數(shù)調(diào)用結(jié)束時(shí),置于lua_pcall調(diào)用環(huán)境所在的虛擬棧的棧頂中,可由C程序根據(jù)索引取出。

經(jīng)以上過程,就完成了對(duì)串口發(fā)送緩沖區(qū)的內(nèi)容設(shè)置,然后就可以通過串口芯片的驅(qū)動(dòng)程序?qū)⑵浒l(fā)送到外圍設(shè)備。

在現(xiàn)場(chǎng)應(yīng)用時(shí),只需根據(jù)不同外圍設(shè)備問詢報(bào)文的要求來修改腳本中data數(shù)組以及p0_send_num變量的內(nèi)容即可,而不用對(duì)裝置的C程序進(jìn)行任何修改。

3.4 通過Lua函數(shù)處理接收緩沖區(qū)數(shù)據(jù)

通過Lua和C的交互來對(duì)串口接收緩沖區(qū)數(shù)據(jù)的處理方法同發(fā)送緩沖區(qū)的處理基本相似。

當(dāng)裝置通過串口驅(qū)動(dòng)程序?qū)⑼鈬O(shè)備發(fā)來的數(shù)據(jù)置入接收緩沖區(qū)后,在C函數(shù)中調(diào)用腳本函數(shù):

lua_getglobal(L, "uart_p0_del_rxBuf");

lua_pushnumber(L, size);

ret=lua_pcall(L, 1, 1, 0);

其中,參數(shù)uart_p0_del_rxBuf為腳本中定義的緩沖區(qū)數(shù)據(jù)處理函數(shù)名,通過lua_pushnumber將接收數(shù)據(jù)的大小入棧,從而傳給Lua腳本函數(shù),腳本函數(shù)的原型如下:

function uart_p0_del_rxBuf(rx_size)

在該函數(shù)中,可通過調(diào)用注冊(cè)的C函數(shù)get_rx_buf來獲取接收緩沖區(qū)中的內(nèi)容:

data[i] = ied.get_rx_buf(port,index)

其中,data為腳本中類似于數(shù)組的表類型。port為串口芯片的端口號(hào),index為緩沖區(qū)的索引號(hào),在C程序中通過以下語句對(duì)腳本返回所取數(shù)據(jù)值:

port=(int)lua_tonumber(L,1);//取端口號(hào)

index=(int)lua_tonumber(L,2);//取索引

data=uart_port_rx_buf[port].data[index];

lua_pushnumber(L, data);//返回值入棧

可以看出,在腳本中也是借助于虛擬棧來獲取C程序的返回值。通過以上方法成功獲取了串口接收緩存區(qū)的內(nèi)容后,就可根據(jù)具體的外圍設(shè)備在腳本中對(duì)其接收數(shù)據(jù)的正確性進(jìn)行判斷,如果判斷結(jié)果正確,則調(diào)用前面注冊(cè)的C函數(shù)uart_ok_del進(jìn)行相關(guān)業(yè)務(wù)處理。

ied. uart_ok_del (port)

結(jié)語

從本文提供的方案可以看出,從始至終,IED裝置的C語言應(yīng)用程序在Lua虛擬機(jī)與外圍設(shè)備之間,除了報(bào)文的透明傳輸功能外,并不負(fù)責(zé)具體數(shù)據(jù)業(yè)務(wù)的處理,這就使在C程序的設(shè)計(jì)中完全不需要考慮外圍設(shè)備所采用的串口通信數(shù)據(jù)格式,具體的數(shù)據(jù)內(nèi)容都可放在腳本文件中進(jìn)行設(shè)置和處理。在現(xiàn)場(chǎng)應(yīng)用中,就可以達(dá)到僅修改Lua腳本文件就能完成IED裝置與不同的串口通信外圍設(shè)備之間的數(shù)據(jù)交互功能,從而實(shí)現(xiàn)對(duì)裝置串口通信規(guī)約的現(xiàn)場(chǎng)可配置化。

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

    關(guān)注

    5046

    文章

    18821

    瀏覽量

    298579
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1199

    瀏覽量

    100829
  • 串行通信
    +關(guān)注

    關(guān)注

    4

    文章

    555

    瀏覽量

    35165
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Lua腳本簡(jiǎn)單介紹

    Lua簡(jiǎn)單介紹Lua[1]是一個(gè)小巧的腳本語言。作者是巴西人。該語言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序
    發(fā)表于 08-20 06:37

    關(guān)于Lua腳本語言

    一、關(guān)于Lua腳本語言Lua 是一個(gè)小巧的腳本語言。是巴西里約熱內(nèi)盧天主教大學(xué)(Pontifical Catholic University of Rio de Janeiro)里的一
    發(fā)表于 08-20 06:23

    Lua腳本簡(jiǎn)單介紹

    Lua簡(jiǎn)單介紹Lua[1]是一個(gè)小巧的腳本語言。作者是巴西人。該語言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序
    發(fā)表于 08-20 08:06

    嵌入式腳本語言Berry的相關(guān)資料下載

    嵌入式腳本語言 Berry github網(wǎng)址 :https://github.com/Skiars/berryBerry 是一款面向小型嵌入式系統(tǒng)的腳本語言,目前發(fā)布了 0.1.0 版
    發(fā)表于 12-23 07:18

    適用于Java的嵌入式腳本語言是什么

    /fakescript-java簡(jiǎn)介fakescript是一款輕量級(jí)的嵌入式腳本語言,使用Java語言編寫,語法吸取自lua、golang、erlang,基于jflex、cup生成語法
    發(fā)表于 12-23 08:17

    嵌入式腳本語言Berry具有哪些特性?

    嵌入式腳本語言Berry具有哪些特性?
    發(fā)表于 12-27 07:57

    基于Lua腳本語言嵌入式UART通信方案設(shè)計(jì)

    針對(duì)變電站中采用UART串口通信規(guī)約進(jìn)行信息傳遞的各種外圍設(shè)備,在需要與其進(jìn)行通信的IED智能裝置的開發(fā)中,設(shè)計(jì)了一種基于Lua腳本語言
    發(fā)表于 05-10 13:44 ?3139次閱讀
    基于<b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>UART</b><b class='flag-5'>通信</b><b class='flag-5'>方案</b>設(shè)計(jì)

    基于Lua腳本語言嵌入式UART通信實(shí)現(xiàn)

    引言 隨著變電站智能化程度的逐步提高,對(duì)溫度、濕度等現(xiàn)場(chǎng)狀態(tài)參量的采集需求也越來越多。就目前而言,在現(xiàn)場(chǎng)應(yīng)用中,此類設(shè)備多采用RS232或RS485等UART串行通信方式和IED
    發(fā)表于 11-30 11:37 ?1379次閱讀
     基于<b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>UART</b><b class='flag-5'>通信</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    你知道在linux下搭建lua腳本語言的編程環(huán)境?

    lua腳本語言的一種,具體的該腳本介紹可百度,本文介紹Linux系統(tǒng)下搭建lua編程環(huán)境的步
    發(fā)表于 05-16 16:25 ?3600次閱讀
    你知道在linux下搭建<b class='flag-5'>lua</b><b class='flag-5'>腳本語言</b>的編程環(huán)境?

    基于Lua腳本語言的ESP8266 TCP服務(wù)器資料免費(fèi)下載

      本文檔的主要內(nèi)容詳細(xì)介紹的是基于Lua腳本語言的ESP8266 TCP服務(wù)器資料免費(fèi)下載。
    發(fā)表于 06-21 17:43 ?3次下載
    基于<b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>的ESP8266 TCP服務(wù)器資料免費(fèi)下載

    如何使用Lua腳本語言進(jìn)行ESP8266和TCP服務(wù)器多連接

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Lua腳本語言進(jìn)行ESP8266和TCP服務(wù)器多連接。
    發(fā)表于 06-10 17:48 ?2次下載
    如何使用<b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>進(jìn)行ESP8266和TCP服務(wù)器多連接

    Lua腳本語言入門教程資料說明

    今天開始自己的Lua語言學(xué)習(xí),Lua腳本語言,是介于應(yīng)用程序和開發(fā)其應(yīng)用程序的底層編程語言之間,,它很方便調(diào)用其它
    發(fā)表于 05-21 18:03 ?2次下載
    <b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>入門教程資料說明

    Lua腳本語言入門教程資料免費(fèi)下載

      寫完這篇Lua腳本語言入門,自己就要嘗試去用Lua腳本語言寫esp8266了,,自己現(xiàn)在挺心急的,因?yàn)榕笥咽褂胑sp8266本來說自己幫忙寫好程序的,但是用的單片機(jī)不一樣自己沒有,
    發(fā)表于 05-10 18:13 ?5次下載
    <b class='flag-5'>Lua</b><b class='flag-5'>腳本語言</b>入門教程資料免費(fèi)下載

    深入LUA腳本語言

    由于gdb的代碼相對(duì)復(fù)雜,沒有辦法從代碼層面仔細(xì)的分析調(diào)試細(xì)節(jié),所以這次我們選擇一個(gè)小巧、開源的Lua腳本語言,深入到最底層的代碼中去探究一下代碼調(diào)試真正是怎么一回事。
    的頭像 發(fā)表于 02-14 13:55 ?760次閱讀
    深入<b class='flag-5'>LUA</b><b class='flag-5'>腳本語言</b>

    【串口屏LUA教程】Lua腳本語言中文教程

    【串口屏LUA教程】Lua腳本語言中文教程
    發(fā)表于 04-29 13:03 ?26次下載