大彩君最近一直收到客戶反饋:
1. 貴司的明星產(chǎn)品醫(yī)用級M070能否增加U盤?我們需要大量數(shù)據(jù)導(dǎo)出和升級。
2. 我需要屏幕支持2路IO輸出,接報(bào)警器和報(bào)警燈。
3. 是否支持PWM輸出,直接屏幕控制電機(jī)或呼吸燈?
4. 貴司產(chǎn)品能再擴(kuò)展一路串口輸出嗎,需要走自定義協(xié)議?
5. 可以AD采集溫濕度型號(hào)嗎?
6. 你們支持外接矩陣鍵盤嗎?
這一次,研發(fā)工程師花1個(gè)月精心打造,采用成本增加3毛錢的方式統(tǒng)統(tǒng)完成了大家的期望,產(chǎn)品成功批量上市。
該產(chǎn)品除了給用戶省去一個(gè)MCU,更方便產(chǎn)品的布線,所有功能都可以使用LUA腳本二次開發(fā),豐富的例程和技術(shù)支持助您產(chǎn)品快速升級。
產(chǎn)品圖片
核心硬件圖
產(chǎn)品特點(diǎn)
1、具備組態(tài)串口屏所有常規(guī)功能,支持U盤功能;
2、新增加的擴(kuò)展口接口,支持3.3V 電源輸出、ADC、串口、PWM、IO輸入、IO輸出;
3、支持給3.3V外設(shè)供電;
4、ADC電壓測量,可以檢測多達(dá)10個(gè)按鍵輸入;
5、新產(chǎn)品實(shí)現(xiàn)雙串口的數(shù)據(jù)通信,擴(kuò)展口擁有一個(gè)串口,對原來主串口沒有影響。新增加的串口在LUA中自定義數(shù)據(jù)接收和發(fā)送;
6、4個(gè)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、PE9、PE10、PD21 | 可以輸入/輸出,電平3.3V。 |
PWM輸出 | 不需要配置IO,有專門的LUA API | 頻率范圍0Hz-4MHz,占空比范圍0%-100%。 |
串口 | UART3 | LUA自定義串口發(fā)送、接收,電平3.3V。 |
接口介紹,如表格5-2所示。
序號(hào) | 定義 | 描述 | 參考圖 |
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)品除了給用戶省去一個(gè)MCU,更方便產(chǎn)品的布線,所有功能都可以使用LUA腳本二次開發(fā),豐富的例程和技術(shù)支持助您產(chǎn)品快速升級。
下面我們就一起看看如何使用LUA腳本進(jìn)行二次應(yīng)用開發(fā)。
控制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個(gè)按鍵,每個(gè)按鍵按下的電壓差值大約是0.17V。
核心API函數(shù):
1、get_key_adc_data()
返回兩個(gè)參數(shù):
- Status:狀態(tài),1表示有按鍵按下,17表示沒有按鍵按下
- data:按鍵按下時(shí)表示具體數(shù)值,數(shù)組范圍0-59。按鍵沒有按下時(shí),數(shù)值會(huì)大于59。
代碼如程序清單 5-2所示。
程序清單 5-2 ADC輸入檢測
local status,data = get_key_adc_data()
IO輸入、輸出
4個(gè)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)
返回兩個(gè)參數(shù):
- freq:頻率,范圍0Hz-4MHz。
- duty:占空比,范圍0%-100%。
代碼如程序清單 5-4所示。
程序清單 5-4 PWM控制
local pwm_freq = 100local pwm_duty = 50set_pwm( pwm_freq, pwm_duty )
串口
使用UART3的TX、RX。在LUA腳本實(shí)現(xiàn)串口數(shù)據(jù)發(fā)送、接收、解析。
在本例程中,把擴(kuò)展口的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è)置波特率為115200uart_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 ) --計(jì)算長度 local string1 = '' --存放數(shù)據(jù)的臨時(shí)變量 fori=0, countdo --for循環(huán)把數(shù)據(jù)存到string1 string1 = string1 .. string.format( '%X', packet ) end --接收完成,調(diào)用string1 print( string1 )end
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44491瀏覽量
632032 -
PWM
+關(guān)注
關(guān)注
114文章
5119瀏覽量
213188 -
uart
+關(guān)注
關(guān)注
22文章
1219瀏覽量
101123 -
io擴(kuò)展
+關(guān)注
關(guān)注
0文章
13瀏覽量
3175
發(fā)布評論請先 登錄
相關(guān)推薦
評論