接口介绍
功能简介,如表格5-1所示。
表格 5-1 功能介绍
接口介绍,如表格5-2所示。
该产品除了给用户省去一个MCU,更方便产品的布线,所有功能都可以使用LUA脚本二次开发,丰富的例程和技术支持助您产品快速升级。
下面我们就一起看看如何使用LUA脚本进行二次应用开发。
电源开关
控制PD20使能3.3V输出。可以给外设供电。
核心API函数:
1. gpio_set_out (pin)
PIN引脚设置为输出模式
· pin:引脚
2. gpio_set_value (pin,value)
设置输出PIN引脚为(高电平1/低电平0)
· pin:引脚
· value:输出电平
代码如程序清单 5-1所示。
程序清单 5-1 电源开关程序
- --初始化
- gpio_set_out( POWER_EN_PD20 )
- --关闭电源
- 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函数:
1、get_key_adc_data()
返回两个参数:
· Status:状态,1表示有按键按下,17表示没有按键按下
· data:按键按下时表示具体数值,数组范围0-59。按键没有按下时,数值会大于59。
代码如程序清单 5-2所示。
程序清单 5-2 ADC输入检测
- local status,data = get_key_adc_data()
复制代码
IO输入、输出
4个GPIO,即可以检测输入,也可以用输出高低电平。
核心API函数:
1. gpio_set_in (pin)
PIN引脚设置为输入模式
· pin:引脚
2. gpio_set_out (pin)
PIN引脚设置为输出模式
· pin:引脚
3. gpio_set_value (pin,value)
设置输出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 )
- --设置IO输出低电平
- gpio_set_value ( IO0_PE5, 0 )
- --设置IO输出高电平
- gpio_set_value ( IO0_PE5, 1 )
- --初始化IO为输入模式
- gpio_set_in ( IO0_PE5 )
- --获取IO电平
- local io0_num = gpio_get_value ( IO0_PE5 )
复制代码
PWM输出
可以设置PWM输出,频率范围0Hz-4MHz,占空比范围0%-100%。
核心API函数:
1、set_pwm(freq,duty)
返回两个参数:
· 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脚本实现串口数据发送、接收、解析。
在本例程中,把扩展口的TX0口和RX0口短接,形成短路,从而自发自收测试。
核心API函数:
1. uart_set_baudre3(baudrate)
设置串口3的波特率:串口3为屏幕和串口小助手通讯串口
· baudrate:波特率,支持2400bps~961200bps
2. on_uart_recv_data3(packet)
串口3接收数据的回调函数,使用自定义串口指令触发此函数执行:
· packet:接收的字节数组
3. uart_send_data3(packet)
通过串口3发送数据
· packet:发送的字节数组,下标从0开始
代码如程序清单 5-5所示。
程序清单 5-5 串口测试
- --初始化串口3,设置波特率为115200
- uart_set_baudrate3( 115200 )
- --发送数据
- local us_data={}
- us_data[0] = 0x5A --数据
- us_data[1] = 0xA5 --数据
- uart_send_data3( us_data ) --发送数组
- -- 串口接收回调函数
- function on_uart_recv_data3( packet )
- local count = #( packet ) --计算长度
- local string1 = '' --存放数据的临时变量
- for i=0, count do
- --for循环把数据存到string1
- string1 = string1 .. string.format( '%X', packet[i] )
- end
- --接收完成,调用string1
- print( string1 )
- end
复制代码