0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

节省1个MCU?大彩串口屏提供PWM/AD/IO/UART扩展口二次开发

广州大彩串口屏 2022-04-19 16:30 次阅读

大彩君最近一直收到客户反馈:
1. 贵司的明星产品医用级M070能否增加U盘?我们需要大量数据导出和升级。
2. 我需要屏幕支持2路IO输出,接报警器和报警灯。
3. 是否支持PWM输出,直接屏幕控制电机或呼吸灯?
4. 贵司产品能再扩展一路串口输出吗,需要走自定义协议?
5. 可以AD采集温湿度型号吗?
6. 你们支持外接矩阵键盘吗?

这一次,研发工程师花1个月精心打造,采用成本增加3毛钱的方式统统完成了大家的期望,产品成功批量上市。
该产品除了给用户省去一个MCU,更方便产品的布线,所有功能都可以使用LUA脚本二次开发,丰富的例程和技术支持助您产品快速升级。

pYYBAGJebG-AAsb_ABBDvC54iao357.png


产品图片

pYYBAGJebWKAcVUeAAMg5iblncQ406.jpg


核心硬件

产品特点

1、具备组态串口屏所有常规功能,支持U盘功能;

2、新增加的扩展口接口,支持3.3V 电源输出、ADC、串口、PWM、IO输入、IO输出;

3、支持给3.3V外设供电;

4、ADC电压测量,可以检测多达10个按键输入;

5、新产品实现双串口的数据通信,扩展口拥有一个串口,对原来主串口没有影响。新增加的串口在LUA中自定义数据接收和发送;

6、4个IO口,可以根据需求配置输入、输出模式,电平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自定义串口发送、接收,电平3.3V。


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

序号
定义
描述
参考图
1
ADC
模数转换接口
pYYBAGJebZmAc6SSAAIi--ISv-8934.png

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
电源地



该产品除了给用户省去一个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 )

pYYBAGJebbWASCknAADq6_zJGDs365.jpg

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()
poYBAGJebcyAUGjCAACTPlCTQ_A690.jpg


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 )

poYBAGJebd2AIyTBAAFTS11PxIg067.jpg

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 = 100local pwm_duty = 50set_pwm( pwm_freq, pwm_duty )

pYYBAGJebeuAEnEHAACrm2LJR54283.jpg

串口


使用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,设置波特率为115200uart_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 = '' --存放数据的临时变量 fori=0, countdo --for循环把数据存到string1 string1 = string1 .. string.format( '%X', packet ) end --接收完成,调用string1 print( string1 )end

poYBAGJebfqAV9DOAAIUKqTUB64748.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6012

    文章

    44173

    浏览量

    624644
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4964

    浏览量

    210940
  • uart
    +关注

    关注

    22

    文章

    1170

    浏览量

    100470
  • io扩展
    +关注

    关注

    0

    文章

    13

    浏览量

    3166
收藏 人收藏

    评论

    相关推荐

    5G千兆双核物联网模块 OpenWrt二次开发

    HLK-RM20是海凌科2024年推出的首款路由模块,多端口5G千兆网关,双核ARM处理器,1.3GHz主频,支持Openwrt二次开发。高性能、高速率、低延迟,功能强大,应用广泛。
    的头像 发表于 06-03 14:23 221次阅读
    5G千兆双核物联网模块 OpenWrt<b class='flag-5'>二次开发</b>

    做一IO模拟串口的,外部中断进一自动执行两怎么解决?

    最近在做一IO模拟串口的。 外部中断进一自动执行两,而且实验发现,第一进中断有问题,
    发表于 05-11 08:35

    高效二次侧同步PWM控制器UCC2540数据表

    电子发烧友网站提供《高效二次侧同步PWM控制器UCC2540数据表.pdf》资料免费下载
    发表于 04-08 11:05 0次下载
    高效<b class='flag-5'>二次</b>侧同步<b class='flag-5'>PWM</b>控制器UCC2540数据表

    科技COF系列2.4寸串口发布!

    PSRAM和64Mbit FLASH,是专为小尺寸串口设计的MCU,精简了外围电路。 该平台默认支持大组态指令集,上位机可配置运行MODBUS RTU、XGUS协议,同样支持5
    的头像 发表于 03-18 14:36 303次阅读
    大<b class='flag-5'>彩</b>科技COF系列2.4寸<b class='flag-5'>串口</b><b class='flag-5'>屏</b>发布!

    节省IO的小技巧:GD32 MCU如何使用一GPIO实现串口半双工收发

    一般情况串口的接受和发送分别需要使用TX和RX两引脚来实现,但在一些UART的实际应用中,通信双方身份为主机和从机,数据流是半双工的,那么当IO
    的头像 发表于 03-15 09:39 923次阅读
    <b class='flag-5'>节省</b><b class='flag-5'>IO</b>的小技巧:GD32 <b class='flag-5'>MCU</b>如何使用一<b class='flag-5'>个</b>GPIO实现<b class='flag-5'>串口</b>半双工收发

    个性化定制,提升运营效率:SAP二次开发引领企业数字化转型

    SAP二次开发引领企业数字化转型 随着企业竞争的日益激烈,定制化管理方案成为企业实现差异化竞争的重要工具。SAP作为全球领先的企业管理软件提供商,SAP二次开发服务应运而生,为企业提供
    的头像 发表于 02-18 13:29 198次阅读

    能否使用普通IO模拟PWM波?该怎么做?

    中,我们将详细介绍如何使用普通IO模拟PWM波。 1. PWM波概述 脉冲宽度调制(PWM)是
    的头像 发表于 01-15 14:43 3052次阅读

    串口IO设备与昆仑通态组态通信

    一案例简介本案例主要讲解MA01系列串口IO设备与昆仑通态组态(以下简称组态)操作细则,本文MA01系列以MA01-AACX2240为例,昆仑通态组态
    的头像 发表于 01-12 08:20 427次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>IO</b>设备与昆仑通态组态<b class='flag-5'>屏</b>通信

    什么是二次回路?二次回路的分类 辨识二次回路

    二次回路是指由二次设备互相连接,构成对一设备进行监测、控制、调节和保护的电气回路。
    的头像 发表于 12-13 15:31 1694次阅读
    什么是<b class='flag-5'>二次</b>回路?<b class='flag-5'>二次</b>回路的分类 辨识<b class='flag-5'>二次</b>回路

    ARM架构MT7981方案 2+8千兆5G路由器--HC-G80采用openwrt系统可二次开发

    二次开发,满足各种功能的自定义 2+8千兆5G路由器带来新的方式,让您项目轻松接入更多设备,节省交换机投入和位置空间更合理 路由器内置802.11ax (Wi-Fi 6) 技术,单个5G WiFi6
    发表于 11-30 15:27

    二次电池的特征 一电池与二次电池的区别

    电池的特征以及一电池与二次电池之间的区别。 一、二次电池的特征: 1.可充电性:二次电池是可以反复充电和放电的。在其内部的化学反应过程中,
    的头像 发表于 11-17 14:49 1961次阅读

    「科聪二次开发平台」移动机器人开发,只需3步!

    科聪提供独家二次开发平台,配合各类工具型软件,简单、灵活、快速完成移动机器人开发。随着移动机器人应用场景的持续扩展和整机形态的不断演化,厂商如何快速、高效、成熟地完成移动机器人
    的头像 发表于 11-06 10:53 783次阅读
    「科聪<b class='flag-5'>二次开发</b>平台」移动机器人<b class='flag-5'>开发</b>,只需3步!

    ZQWL-USBCANFD二次开发通讯协议V1.04

    根据需要设置(范围9600~48000000bps),硬件自动匹配。本文档介绍二次开发的参数配置,数据收发等协议。 智嵌物联ZQWL开发的一系列高性能USBCAN(FD)接口卡,具有类型多,安装方式
    的头像 发表于 09-28 15:52 465次阅读
    ZQWL-USBCANFD<b class='flag-5'>二次开发</b>通讯协议V1.04

    SAP Business One二次开发:解锁潜力,实现定制化需求

    Business One可能无法完美满足。为应对企业的个性化需求,SAP Business One二次开发应运而生,成为炙手可热的选择。本文将深入探讨SAP Business One二次开发的意义与优势。 SAP
    的头像 发表于 09-13 21:58 442次阅读
    SAP Business One<b class='flag-5'>二次开发</b>:解锁潜力,实现定制化需求

    便于二次开发的Wi-Fi无线通信模块-采用新唐M23内核微控制器

    便于二次开发的Wi-Fi无线通信模块-采用新唐M23内核微控制器
    的头像 发表于 08-09 14:50 485次阅读