嵌入式linux工控板,嵌入式Linux工业平板电脑开发详解-专业自动化论坛-中国工控网论坛...

本文主要是介绍嵌入式linux工控板,嵌入式Linux工业平板电脑开发详解-专业自动化论坛-中国工控网论坛...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c207da3316d6c77274a2a4f88a511221.png

177d66ffcc311dafdae0f60a0bfeb94c.png

硬件规格

产品特性

液 晶 屏:7"TFT真彩液晶屏(16:9比例),分辨率 800×480

触摸规格: 100万次以上(笔尖0.8m㎡打键荷重250克力,打键速度2次/秒)

中央处理器:Cortex A8 嵌入式ARM低功耗CPU,主频1G Hz

内  存:  512M Bytes DDR2 SDRAM

存储设备:256M Flash电子盘

扩展存储:SD卡存储最大支持扩展到32G

实测功耗:3.12W(12V,260mA);

电源输入:DC 9V-24V宽压输入,建议DC 12V或者24V输入;

接  口:

3路RS-232接口;

2路RS-485接口;

1路RS232调试串口

3路USB 主口;

1路100M网络接口(可以选配为2路100M以太网口);

4路模拟量AD输入(4-20mA);

4路数字量IO输入输出;

Wifi(选配)

1路CAN总线接口

其它:

内置RTC实时时钟(可断电保护)

看门狗管理(可调节看门狗时间)

内置蜂鸣器,提供函数控制发声;

防浪涌、防雷击、防反接、过流保护、宽电压;

f2eff1cdcb7b665634f7674e45be008d.png

c58b2fa225780aab94c21dd0c7552e5d.png

ePC-ES70T-L   API函数

在ePC-L中编写应用程序,需要用到网盘资料中的库文件和头文件,位置:网盘资料目录“testApp”->“ycapi”下的libycapi.so库文件、相应的头文件ycapi.h。下面根据每个功能划分为几部分,分别对各个功能需要调用的函数进行详细的介绍。

(1)#include "ycapi.h"

在要引用函数的文件中添加。

(2)LIBS += -L../ycapi     -lycapi

INCLUDEPATH += ../ycapi

在QT工程文件(.pro文件)中添加。

注意:../ycapi是libycapi.so和ycapi.h存放的路径,客户需要根据放置的位置来定义此路径。

(3)库文件是以类的形式实现的,因此调用前首先要实例化对象,如下所示:

Ycapi * ycapi = new Ycapi();

例如调用蜂鸣器打开可以用:ycapi-> BeepOn(true);

注意最后不用的时候,用delete ycapi来释放。

2.3.1 设置背光的功能

(1)背光控制函数原型:void   SetBacklightOn(int BakLevel)

参数说明:

int BakLevel:     亮度依次减弱:0,1,2,3,4

(2)设置默认的背光级别函数的原型:void  SetDefaultBackLightLevel(int level)

参数说明:

int BakLevel:    默认的级别为:0,1,2,3

注意:这里只有默认四个级别没有4。

(3)得到设置的默认背光级别函数的原型:int  GetDefaultBackLightLevel()

返回值:int :得到的参数分别为:0,1,2,3四种默认情况。

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.2 看门狗功能

bool SetWDog(int interval)

说明:  设置看门狗超时值

参数:int interval:这里的范围是 0 < interval <= 30 ,单位是秒

bool StartWDog();

说明:  启动看门狗

参数:无

bool FeedWDog();

说明:  喂看门狗

参数:无

Bool StopWDog();

说明:  停止看门狗

参数:无

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.3 蜂鸣器开关功能

bool BeepOn(bool bStatus)

参数说明:

bool bStatus:  蜂鸣器打开:true

蜂鸣器关闭:false

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.4 状态灯功能

ePC-A产品前面板总共有三个灯,此处控制的是中间的灯。

bool SetLed(bool bStatus)

参数说明:

bool bStatus:状态灯打开:true

状态灯关闭:false

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.5 EEPROM读写功能

读函数原型:bool ReadEEPROM(int addr,char *buf)

参数说明:

int addr :读的地址,0-255

char *buf:读到的字符串

写函数原型:bool WriteEEPROM(int addr,char *buf)

参数说明:

int addr :写的地址,0-255

char *buf:写的字符串

Note:最大长度是255个字节,函数的具体详细的用法,请看网盘资料中的示例源码

2.3.6 IO输入输出功能(此功能选配)

总共有8路IO口,默认配置为4路输入和4路输出。

(1)4路输出

bool SetIO( unsigned char level , unsigned char ioNum)

参数说明:

unsigned char level:       0:低电平 1:高电平

unsigned char ioNum:    0-3(分别代表要输出的IO口号:OUT0 ~ OUT3)

(2)4路输入

a)  bool SetIoMode(int ioNum,int ioMode ,int triggeredMode);

参数说明:

int ioNum:             0-3 :分别代表要设置的IO口号:IN0 ~ IN3;0xf:代表设置所有的4路输入口为某种方式。

int ioMode:            IO_POLLING_MODE(查询模式)

IO_INTR_MODE     (中断模式)

int triggeredMode: IO_INTR_LOW_LEVEL_TRIGGERED             低电平触发

IO_INTR_HIGH_LEVEL_TRIGGERED            高电平触发

IO_INTR_FALLING_EDGE_TRIGGERED        下降沿触发

IO_INTR_RISING_EDGE_TRIGGERED      上升沿触发

IO_INTR_BOTH_EDGE_TRIGGERED        双沿触发

函数说明:

SetIoMode是设置4路输入口的接收方式,分为查询方式和中断方式,可以对每一个口单独配置为查询或者中断。

在配置为查询模式后此函数的第三个参数不起作用,可以设置为任意的整数。

在配置为中断模式后此函数的第三个参数来设置中断触发的模式,总共分为以上5种。

注意:系统中默认使用的4路输入IO口全是查询模式,可以通过以上函数设置为中断方式。

b) unsigned char GetIO(unsigned char * level ,unsigned char ioNum)

参数说明:

unsigned char * level:    0:得到低电平 1:得到高电平

unsigned char ioNum:    0-3 (分别代表要得到的IO口号:IN0 ~ IN3)

返回值说明:

Unsigned char :返回的是所有4路输入IO口的当前高低状态,unsigned char总共一个字节,8位,从第0位---第3位,分别代表IN0-IN3的高低电平。

c) bool GetIoBlockMode( unsigned char * level,unsigned char ioNum)

参数说明:

unsigned char * level:    0:得到低电平 1:得到高电平

unsigned char ioNum:    0-3(分别代表要得到的IO口号:IN0 ~ IN3)

函数说明:此函数是用于IO口配置为中断模式后,用户在一个线程中调用此函数,当要读取的IO口(ioNum)中断产生的时候才会返回,否则一直阻塞,所以此函数只能是用在IO口设置为中断方式后才可以用。

d)4路输入IO口使用说明

查询模式:系统默认4路输入IO全是查询模式,所以如果用户不需要中断模式,则可以直接通过GetIO函数来得到相应输入口的值为高电平还是低电平,不需要用到SetIoMode函数。

中断模式:系统默认4路输入IO全是查询模式,所以如果用户需要中断模式,则需要通过SetIoMode函数来设置相应IO口为中断模式,并且设置相应的中断触发方式。设置完成后,新起一个线程,调用GetIoBlockMode函数,没有来中断之前一直阻塞,一旦系统收到中断,立即返回。

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.7 AD数据采集

bool ReadAdc(int channel,double *data)

参数说明:

int channel:   ADC 通道号:4~7

double *data:  相应通道中读出的数字值,再需要乘以下面介绍的系数来得到采集的电压和电流的最终值。

ES70T-L引出4路AD(标配为电流采集4-20mA,需要电压采集提前声明)

(1) 电流采样

电流输入范围:4-20mA

AD分辨率12位

最大采样率 200KHz

实际输入电流I=D*(20/4095)

AD转换误差为-5LSB---+5LSB

注:I为输入电流,以毫安为单位。D为转换后的数值,即为ReadAdc中读出的数字值。

(2) 电压采样

电压输入范围:0-10V

AD分辨率12位

最大采样率 200KHz

实际输入电压Vin=D*(10/4095)

AD转换误差为-5LSB---+5LSB

注:Vin为输入电压,以伏为单位。D为AD转换后的数值,即为ReadAdc中读出的数字值。

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.8 拷贝功能

bool CopyDir(char *dstDir,char *srcDir)

参数说明:

char *dstDir:要拷贝的目的地址

char *srcDir:要拷贝的源地址

Note:函数的具体详细的用法,请看网盘资料中的示例源码

2.3.9 输入法的使用

ES70T-L系统中集成了输入法,可以输入英文、数字和中文,用户方便调用和集成到自己应用中,调用方法很简单,介绍如下:

建立完项目工程后,在main.cpp文件中的main函数里面,添加如下:

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MyInputPanelContext *ic = new MyInputPanelContext;

a.setInputContext(ic);

ycinput w;

w.show();

return a.exec();

}

只需要添加蓝色代码,就可以在整个工程的输入框中双击就可以调用输入法。

2.3.10  CAN总线

(1)void      OpenCan(int baudrate)

参数说明:

int baudrate:CAN总线的波特率设置,支持波特率如下:20000, 40000, 50000, 80000,

100000,125000, 200000, 250000, 400000,500000, 666000, 800000, 1000000

打开CAN句柄。

(2)void      WriteCan(int can_id,unsigned char * data, unsigned char dlc)

参数说明:

int can_id:发送帧ID

unsigned char * data:发送的数据

unsigned char dlc:发送数据的长度

发送数据。

(3)void  ReadCan(unsigned  int *can_id, unsigned char * can_dlc, unsigned char * data)

参数说明:

unsigned  int *can_id:读到的发送帧ID

unsigned char *  can_dlc:读到的发送数据的长度

unsigned char * data: 读到的CAN数据

(4)void     CloseCan()

关闭CAN句柄。

示例代码在光盘中,ycsrc/ycinput.tar.gz

2.3.11 网络配置

ES70T-L可以集成两路有线网口,LAN1和LAN2,标配只有一路,默认是LAN1。

bool SetNetWork(int num,bool isDhcp,char * ip,char * subnetmask,char * gateway,char *dns)

参数说明:

int num:两路网路的选择,LAN1:num=0

LAN2:num=1;

bool isDhcp:是否动态获取网络配置,预留接口,目前只能静态设置,因此只能是fasle

char * ip:        要配置网络接口的IP地址

char * subnetmask:要配置网络接口的子网掩码

char * gateway:   要配置网络接口的网关

char *dns:       要配置网络接口的DNS

bool SetMacAddr(int num,char * macAddr)

参数说明:

int num:两路网路的选择,LAN1:num=0

LAN2:num=1;

char * macAddr:格式:xx:xx:xx:xx:xx:xx 例如:0:A1:E9:40:6D:E6

注意:以上两个函数在深圳扬创科技系统主程序的设置工具中有设置,用户可以不调用这些函数,直接加载扬创的设置工具,目录为/bin/SystemSet。

1dce922e4a415ae2e31bd51ebebfb56b.gif正在下载,请等待……

f7e7543c70c5cfc40ce3d34e6f0e8524.gif

082e04185dcc239af77ece81a1034aaf.gif

下载附件需0积分!

这篇关于嵌入式linux工控板,嵌入式Linux工业平板电脑开发详解-专业自动化论坛-中国工控网论坛...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/310608

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Java Predicate接口定义详解

《JavaPredicate接口定义详解》Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值,:本文主要介绍JavaPredicate接口的定义... 目录Java Predicate接口Java lamda表达式 Predicate<T>、BiFuncti

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释