中文字幕天堂手机版-欧美一区二区色大片在线观看-丰满人妻视频一区二区三区-美女视频黄的免费的91

您的位置:首頁   >  關(guān)于我們  >  新聞動態(tài)

新品來襲:節(jié)省1個MCU?大彩串口屏提供PWM/AD/IO/UART擴展口二次開發(fā)

發(fā)布人:大彩科技發(fā)布日期:2022-04-12


視頻演示


大彩君最近一直收到客戶反饋:

1. 貴司的明星產(chǎn)品醫(yī)用級M070能否增加U盤?我們需要大量數(shù)據(jù)導(dǎo)出和升級。

2. 我需要屏幕支持2路IO輸出,接報警器和報警燈。

3. 是否支持PWM輸出,直接屏幕控制電機或呼吸燈?

4. 貴司產(chǎn)品能再擴展一路串口輸出嗎,需要走自定義協(xié)議?

5. 可以AD采集溫濕度型號嗎?

6. 你們支持外接矩陣鍵盤嗎?






這一次,研發(fā)工程師花1個月精心打造,采用成本增加3毛錢的方式統(tǒng)統(tǒng)完成了大家的期望,產(chǎn)品成功批量上市。

訂購型號:DC80480M070_3111_0T(電阻)、DC80480M070_3111_0C(電容), 價格非常美麗。 

該產(chǎn)品除了給用戶省去一個MCU,更方便產(chǎn)品的布線,所有功能都可以使用LUA腳本二次開發(fā),豐富的例程和技術(shù)支持助您產(chǎn)品快速升級。







圖片

產(chǎn)品圖片


圖片

核心硬件圖








產(chǎn)品特點





1、具備組態(tài)串口屏所有常規(guī)功能,支持U盤功能;


2、新增加的擴展口接口,支持3.3V 電源輸出、ADC、串口、PWM、IO輸入、IO輸出;


3、支持給3.3V外設(shè)供電;


4、ADC電壓測量,可以檢測多達(dá)10個按鍵輸入;


5、新產(chǎn)品實現(xiàn)雙串口的數(shù)據(jù)通信,擴展口擁有一個串口,對原來主串口沒有影響。新增加的串口在LUA中自定義數(shù)據(jù)接收和發(fā)送;


6、4個IO口,可以根據(jù)需求配置輸入、輸出模式,電平3.3V。











接口介紹





功能簡介,如表格5-1所示。

表格 5-1 功能介紹

功能

IO口/使能腳

介紹

3.3V

PD20

可以控制3.3V輸出,電流500mA。

ADC輸入

不需要配置IO,有專門的LUA API

分辨率是6bit,采樣率是250Hz,支持電壓0-1.77V。

IO輸入、輸出

PE5、PE9PE10、PD21

可以輸入/輸出,電平3.3V。

PWM輸出

不需要配置IO,有專門的LUA API

頻率范圍0Hz-4MHz,占空比范圍0%-100%。

串口

UART3

LUA自定義串口發(fā)送、接收,電平3.3V。


接口介紹,如表格5-2所示。

序號

定義

描述

參考圖

1

ADC

模數(shù)轉(zhuǎn)換接口

圖片

2

RX0

串口輸入,接用戶TXD

3

TX0

串口輸出,接用戶RXD

4

PWM

PWM輸出

5

IO0

IO0輸入/輸出端

6

IO1

IO1輸入/輸出端

7

IO2

IO2輸入/輸出端

8

IO3

IO3輸入/輸出端

9

3V3OUT

電源輸出端

10

GND

電源地



該產(chǎn)品除了給用戶省去一個MCU,更方便產(chǎn)品的布線,所有功能都可以使用LUA腳本二次開發(fā),豐富的例程和技術(shù)支持助您產(chǎn)品快速升級。


下面我們就一起看看如何使用LUA腳本進(jìn)行二次應(yīng)用開發(fā)。






電源開關(guān)





控制PD20使能3.3V輸出??梢越o外設(shè)供電。

核心API函數(shù):

1. gpio_set_out (pin)

PIN引腳設(shè)置為輸出模式

  • pin:引腳


2. gpio_set_value (pin,value)

設(shè)置輸出PIN引腳為(高電平1/低電平0)

  • pin:引腳
  • value:輸出電平


代碼如程序清單 5-1所示。

程序清單 5-1 電源開關(guān)程序

--初始化
gpio_set_out( POWER_EN_PD20 )

--關(guān)閉電源
gpio_set_value( POWER_EN_PD20,0 )

--打開電源
gpio_set_value( POWER_EN_PD20,1 )









ADC輸入





可以檢測電壓值,電壓方位支持0-1.77V。使用 status,data = get_key_adc_data() 獲取電壓值。此例程通過ADC檢測按鍵輸入,共10個按鍵,每個按鍵按下的電壓差值大約是0.17V。

核心API函數(shù):

1、get_key_adc_data()

返回兩個參數(shù):

  • Status:狀態(tài),1表示有按鍵按下,17表示沒有按鍵按下
  • data:按鍵按下時表示具體數(shù)值,數(shù)組范圍0-59。按鍵沒有按下時,數(shù)值會大于59。


代碼如程序清單 5-2所示。

程序清單 5-2 ADC輸入檢測

local status,data = get_key_adc_data()








IO輸入、輸出





4個GPIO,即可以檢測輸入,也可以用輸出高低電平。

核心API函數(shù):

1. gpio_set_in (pin)

PIN引腳設(shè)置為輸入模式

  • pin:引腳

2. gpio_set_out (pin)

PIN引腳設(shè)置為輸出模式

  • pin:引腳

3. gpio_set_value (pin,value)

設(shè)置輸出PIN引腳為(高電平1/低電平0)

  • pin:引腳
  • value:輸出電平

4. gpio_get_value (pin)

獲取輸入PIN引腳電平(高電平1/低電平0)

  • pin:引腳


代碼如程序清單 5-3所示。

程序清單 5-3 IO控制

--初始化IO為輸出模式
gpio_set_out ( IO0_PE5 )

--設(shè)置IO輸出低電平
gpio_set_value ( IO0_PE5, 0 )

--設(shè)置IO輸出高電平
gpio_set_value ( IO0_PE5, 1 )

--初始化IO為輸入模式
gpio_set_in ( IO0_PE5 )

--獲取IO電平
local io0_num = gpio_get_value ( IO0_PE5 )








PWM輸出





可以設(shè)置PWM輸出,頻率范圍0Hz-4MHz,占空比范圍0%-100%。

核心API函數(shù):

1、set_pwm(freq,duty)

返回兩個參數(shù):

  • freq:頻率,范圍0Hz-4MHz。
  • duty:占空比,范圍0%-100%。


代碼如程序清單 5-4所示。

程序清單 5-4 PWM控制

local     pwm_freq = 100
local     pwm_duty = 50
set_pwm( pwm_freq, pwm_duty ) 








串口





使用UART3的TX、RX。在LUA腳本實現(xiàn)串口數(shù)據(jù)發(fā)送、接收、解析。

在本例程中,把擴展口的TX0口和RX0口短接,形成短路,從而自發(fā)自收測試。

核心API函數(shù):

1. uart_set_baudre3(baudrate)

設(shè)置串口3的波特率:串口3為屏幕和串口小助手通訊串口

  • baudrate:波特率,支持2400bps~961200bps

2. on_uart_recv_data3(packet)

串口3接收數(shù)據(jù)的回調(diào)函數(shù),使用自定義串口指令觸發(fā)此函數(shù)執(zhí)行:

  • packet:接收的字節(jié)數(shù)組

3. uart_send_data3(packet)

通過串口3發(fā)送數(shù)據(jù)

  • packet:發(fā)送的字節(jié)數(shù)組,下標(biāo)從0開始

代碼如程序清單 5-5所示。

程序清單 5-5 串口測試

--初始化串口3,設(shè)置波特率為115200
uart_set_baudrate3( 115200 ) 

--發(fā)送數(shù)據(jù)
local us_data={}
us_data[0] = 0x5A                         --數(shù)據(jù)
us_data[1] = 0xA5                         --數(shù)據(jù)
uart_send_data3( us_data )                   --發(fā)送數(shù)組
-- 串口接收回調(diào)函數(shù)
function on_uart_recv_data3( packet )
    local count = #( packet )    --計算長度
    local string1 = ''          --存放數(shù)據(jù)的臨時變量
    for  i=0, count  do 
        --for循環(huán)把數(shù)據(jù)存到string1
        string1 = string1 .. string.format( '%X', packet[i] )
    end
    --接收完成,調(diào)用string1
    print( string1 )
end