「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

目錄

1。

tl_led_flash案例

1。1

案例功能

1。2

操作說明

1。3

關鍵程式碼

2。

tl_key_test案例

2。1

案例功能

2。2

操作說明

2。3

關鍵程式碼

3。

tl_uart_rw案例

3。1

案例功能

3。2

操作說明

3。3

關鍵程式碼

遇到不少人新手小白問,前輩能不能分享幾個Linux應用開發案例?之前一直都是在用win開發,現在想要嘗試用Linux做開發等等一系列的問題。

應廣大使用者朋友需求號召,今天給大家分享基於創龍科技的TL335x-EVM(

AM3352/AM3354/AM3358/AM3359)ARM Cortex-A8架構的一系列開發板,詳細講解Linux的應用開發案例,分別涵蓋了tl_led_flash案例、tl_key_test案例、tl_uart_rw案例、tl_can_echo案例、tl_devmem_rw案例、tcp_udp_demos案例、Python開發案例等等。

如需重新編譯Linux常用開發案例,請將對應案例src目錄複製到Ubuntu工作目錄下,進入src目錄執行如下命令載入Linux Processor SDK環境變數,並執行make命令進行案例編譯。編譯完成後,將在當前目錄下生成可執行檔案。

Host#

source /home/tronlong/ti-processor-sdk-linux-rt-am335x-evm-04。03。00。05/linux-devkit/environment-setup

Host#

make

如需重新編譯Linux常用開發案例,請將對應案例src目錄複製到Ubuntu工作目錄下,進入src目錄執行如下命令載入Linux Processor SDK環境變數,並執行make命令進行案例編譯。編譯完成後,將在當前目錄下生成可執行檔案。

Host#

source /home/tronlong/ti-processor-sdk-linux-rt-am335x-evm-04。03。00。05/linux-devkit/environment-setup

Host#

make

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 1

Linux常用開發案例

1、 tl_led_flash案例

1.1案例功能

本案例透過向評估底板使用者指示燈LED裝置節點反覆交替寫入1、0數值,實現LED閃爍效果。LED點亮與熄滅時間均為0。5s。

程式流程如下圖所示:

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 2

LED裝置節點為“

/sys/class/leds/user-ledX/”目錄下的brightness。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 3

1.2操作說明

將本案例bin目錄下的可執行程式tl_led_flash複製到評估板檔案系統,並在可執行程式所在目錄執行如下命令執行程式,即可看到評估底板LED以0。5s的時間間隔進行閃爍。同時,

串列埠終端列印系統全部LED裝置資訊和程式當前控制的LED裝置資訊。

Target#

。/tl_led_flash -help

Target#

。/tl_led_flash -n 3

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 4

1.3關鍵程式碼

預定義LED陣列。程式由此陣列獲取LED資訊,陣列資訊必須為系統已有LED資訊,否則程式執行報錯。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 5

2。LED亮滅操作和時間間隔。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 6

2、tl_key_test案例

2.1案例功能

本案例透過監聽使用者按鍵KEY5裝置節點狀態,

檢測按鍵事件

程式流程如下圖所示:

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 7

使用者按鍵裝置節點為“/dev/input/event1”。獲取按鍵事件後進行按鍵鍵值匹配,再進行事件處理。

2。2操作說明

將本案例bin目錄下的可執行程式tl_key_test複製到評估板檔案系統,在可執行程式所在目錄執行如下命令執行程式,

串列埠終端將列印提示資訊。再按下評估板使用者按鍵KEY5,程式將檢測到按鍵事件,並列印按鍵狀態資訊。

Target#

。/tl_key_test -help

Target#

。/tl_key_test -d /dev/input/event1

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 8

2.3關鍵程式碼

1。定義按鍵。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 9

2。監聽按鍵事件。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 10

3。迴圈監聽。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 11

3tl_uart_rw案例

3.1案例功能

本案例主要實現

串列埠讀寫功能。

程式流程如下圖所示:

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 12

RS232、RS485串列埠裝置節點分別為“/dev/ttyS0”、“/dev/ttyS1”。串列埠初始化時將設定波特率、模式、資料位、停止位等引數。透過裝置檔案描述符對串列埠進行讀寫操作。

3.2操作說明

使用RS232交叉串列埠母線、USB轉RS232公頭串列埠線,將評估板的RS232串列埠連線到PC機的USB介面,如下圖所示。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 13

將本案例bin目錄下的可執行程式tl_uart_rw複製到評估板檔案系統,進入可執行程式所在目錄,執行如下命令檢視程式引數資訊。

Target#

。/tl_uart_rw -h

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 14

執行如下命令進行RS232串列埠資料讀操作。

Target#

。/tl_uart_rw -d /dev/ttyS0 -r -s 8

開啟產品資料“4-產品資料\Tools\Windows\”目錄下的串列埠除錯工具SerialDebug。exe,開啟PC機裝置管理器,確認RS232串列埠COM埠號,並按照下圖步驟進行操作或設定,從串列埠除錯工具往RS232串列埠傳送資料。除錯串列埠終端將會列印從RS232串列埠讀取到的資料。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 15

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 16

執行如下命令進行RS232串列埠資料寫操作,資料已在程式中定義。串列埠除錯工具將會列印從RS232串列埠接收的資料。

Target#

。/tl_uart_rw -d /dev/ttyS0 -w -s 8

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 17

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 18

使RS232轉RS485模組、USB轉RS232公頭串列埠線,將評估板的RS485串列埠連線到PC機的USB介面,如下圖所示。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

RS232轉RS485模組與評估板上RS485串列埠連線方法如下:

RS232轉RS485模組485+端子,連線評估板RS485串列埠A端子。

RS232轉RS485模組485-端子,連線評估板RS485串列埠B端子。

RS232轉RS485模組GND端子,連線評估板RS485串列埠GND端子。

執行如下命令進行RS458串列埠資料讀寫操作。RS485串列埠測試步驟與現象與RS232類似,命令中的裝置節點由ttyS0改成ttyS1即可。

Target#

。/tl_uart_rw -d /dev/ttyS1 -r -s 8 //RS485串列埠資料讀操作

Target#

。/tl_uart_rw -d /dev/ttyS1 -w -s 8 //RS485串列埠資料寫操作

3.3關鍵程式碼

串列埠初始化函式。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 20

2。串列埠讀寫函式。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 21

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 22

3。迴環測試。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 23

4。相關邏輯。

「乾貨」最全的Linux常用開發案例分享,含有關鍵程式碼!

圖 24

由於開發案例篇幅過長,給大家分為多個版本,今天先講tl_led_flash案例、tl_key_test案例、tl_uart_rw案例。感興趣的朋友,歡迎點贊評論區留言和我探討!