Android系统如何操作CPU的GPIO口和串口
[复制链接]
深圳扬创科技的Android工业平板电脑,是基于Cortex-A8架构的,支持以太网,串口,GPIO口等,方便用户直接进行通信控制。GPIO操作函数如下:
QQ截图20140710114329.jpg (36.27 KB, 下载次数: 0)
2014-7-14 11:15 上传
8路输出口:
(1)IO全部输出为高按钮:控制8路输出全部为高电平。
(2)IO全部输出为低按钮:控制8路输出全部为低电平。
8路输入口:
IO口输入分为两种模式:查询模式和中断模式。
测试时,8路输出连接到8路输入口来进行测试。
(1)查询模式:点击查询模式按钮,设置为为查询模式,点击IO全部输出为高,然后点击读输入,则上一排8个文本框则显示全部为1,即为高电平,如果点击IO全部输出为低,然后点击读输入,则显示全部为0。
(2)中断模式:点击中断模式按钮,设置为双沿触发中断模式(这里为了测试方便统一设置8路输入口均为双沿触发中断模式,用户可以根据自己的需要单独设置IO口的中断触发方式),然后点击IO全部输出为高低来触发中断,自动读输入口来填写下一排8个文本框中的高低电平。
IO输入输出功能(此功能选配)
总共有16路IO口,默认配置为8路输入和8路输出。
8寸正面开机安卓.jpg (31.92 KB, 下载次数: 0)
2014-7-14 11:19 上传
8寸新的背后副本1.jpg (31.68 KB, 下载次数: 0)
2014-7-14 11:19 上传
(1)8路输出
boolean SetIO(int level , int ioNum);
参数说明:
int level: 0:低电平 1:高电平
int ioNum: 0-7 (分别代表要输出的IO口号:OUT0~ OUT7)
(2)8路输入
a) boolean SetIoMode(int ioNum,int ioMode ,int triggeredMode)
参数说明:
intioNum: 0-7 :分别代表要设置的IO口号:IN0 ~ IN7;0xf:代表设置所有的8路输入口为某种方式。
intioMode: IO_POLLING_MODE(查询模式)
IO_INTR_MODE (中断模式)
inttriggeredMode: 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是设置8路输入口的接收方式,分为查询方式和中断方式,可以对每一个口单独配置为查询或者中断。
在配置为查询模式后此函数的第三个参数不起作用,可以设置为任意的整数。
在配置为中断模式后此函数的第三个参数来设置中断触发的模式,总共分为以上5种。
注意:系统中默认使用的8路输入IO口全是查询模式,可以通过以上函数设置为中断方式。
b) int GetIO(int ioNum,int flag)
参数说明:
int ioNum 0-7(分别代表要得到的IO口号:IN0 ~ IN7)
intflag: IO_POLLING_MODE(查询模式)
IO_INTR_MODE (中断模式)
返回值说明:
int:返回值是参数ioNum对应的IO口的高低电平。
c) 8路输入IO口使用说明
查询模式:系统默认8路输入IO全是查询模式,所以如果用户不需要中断模式,则可以直接通过GetIO函数来得到相应输入口的值为高电平还是低电平,不需要用到SetIoMode函数。
中断模式:系统默认8路输入IO全是查询模式,所以如果用户需要中断模式,则需要通过SetIoMode函数来设置相应IO口为中断模式,并且设置相应的中断触发方式。设置完成后,新起一个线程,调用GetIO函数,没有来中断之前一直阻塞,一旦系统收到中断,立即返回。
注意:以上所有函数的具体详细的用法,请参看光盘中的示例源码,目录:光盘/测试例程/ testApp / ychmi /
串口操作如下:
QQ截图20140710114523.jpg (37.61 KB, 下载次数: 0)
2014-7-14 11:15 上传
可以测试串口程序,通过设置ttySAC0 ttySAC1 ttySAC3来打开串口0 、1、3,其中ttySAC2作为调试串口,ttySAC3作为RS485串口,剩下的两个是标准串口。
技术手册下载:
2014-7-14 11:17 上传
点击文件名下载附件