CREELINKS平台_处理器CeGpio资源使用说明(CeGpio的配置与使用)
0x00 CREELINKS平台简介
CREELINKS(创e联)是由大信科技有限公司研发,集合软硬件、操作系统、数据云储存、开发工具于一体,用于物联网产品的设计、研发与生产的平台。
平台涉及智能硬件、车联网、智能家居、可穿戴设备、工业控制等各个物联网领域。旨在辅助中小型企业快速完成物联网产品原型的设计与开发;并为开源软硬件爱好者、硬件DIY极客、教育机构等提供更高效的资源。
平台包含通用功能模块、操作系统、核心库、模块驱动库、物联网典型产品的解决方案及相关开发工具。
CREELINKS http://www.creelinks.com
0x01 什么是CeGpio
CeGpio是CREELINKS平台中将不同处理器平台中Gpio口(通用输入输出口/通用双向IO口)的共性提取出来,整理并编写出来的标准库。CeGpio标准库包含了Gpio操作相关的所有属性及API接口函数,如: 可将Gpio口配置为输入或输出模式,可以设置或获取此端口的高低电平等。其标准库的头文件为CeGpio.h,不同处理器平台实现的源文件名统一为CeGpio.c。
详细介绍如下:
1、资源介绍
Creelinks平台Gpio对象的操作头文件,包含有关处理器平台Gpio内容的相关操作。可能不同处理器平台,所提供的GPIO的模式不一致、最大电平翻转速率不一致,使用Gpio资源时,尽量使用CeMcu.h中的相关Ad属性宏定义。
2、相关配置
在CeMcu.h中有与处理器平台有关的配置项如下:
#define CE_GPIO_SPEED_MHZ (uint32)50 /*!< GPIO口的最大电平翻转速率*/
/**
* @brief 枚举,GPIO模式配置
*/
typedef enum
{
CE_GPIO_MODE_AIN, /*!< 模拟输入*/
CE_GPIO_MODE_IN_FLOATING, /*!< 浮空输入*/
CE_GPIO_MODE_IPD, /*!< 下拉输入*/
CE_GPIO_MODE_IPU, /*!< 上拉输入*/
CE_GPIO_MODE_OUT_OD, /*!< 开漏输出*/
CE_GPIO_MODE_OUT_PP, /*!< 推挽输出*/
CE_GPIO_MODE_AF_OD, /*!< 复用开漏输出*/
CE_GPIO_MODE_AF_PP, /*!< 复用推挽输出*/
}CE_GPIO_MODE;
其中:
CE_GPIO_SPEED_MHZ:当前处理器平台Gpio资源最大电平翻转速率、如STM32Fx10x处理器平台最大为50M,可根据需要自行修改。
CE_GPIO_Mode:Gpio口可配置的模式。
3、属性对象
/**
* @brief 结构体,GPIO对象可用属性集合
*/
typedef struct
{
CE_RESOURCE ceResource; /*!< GPIO对应的资源号*/
CE_GPIO_MODE ceGpioMode; /*!< 所设定的GPIO引脚模式*/
CeExGpioPar ceExGpioPar; /*!< 与处理器平台相关的额外参数结构体,用以提高代码效率,用户列须关注*/
}CeGpio;
其中:
ceResource:对应核心模块的Gpio资源号,只要在核心板上,资源接口中带G标号即可。
ceGpioMode: 设置当前Gpio口的模式,此枚举在CeMcu.h文件中定义。
ceExGpioPar:用于存不同的处理器平台,Gpio属性对象需要的额外参数。此结构体在CeMcu.h文件中定义。
4、操作对象
/**
* @brief 结构体,GPIO对象可用操作集合
*/
typedef struct
{
CE_STATUS (*initial)(CeGpio* ceGpio); /*!< @brief 初始化一个GPIO
@param ceGpio:GPIO属性对象集合指针*/
void (*setGpioBit)(CeGpio* ceGpio); /*!< @brief 设置GPIO口的值为1
@param ceGpio:GPIO属性对象集合指针*/
void (*resetGpioBit)(CeGpio* ceGpio); /*!< @brief 设置GPIO口的值为0
@param ceGpio:GPIO属性对象集合指针*/
uint8 (*getGpioBit)(CeGpio* ceGpio); /*!< @brief 获取GPIO口的值,0x01和0x00
@param ceGpio:GPIO属性对象集合指针
@return 当前Gpio口的电平状态*/
void (*setGpioMode)(CeGpio* ceGpio,CE_GPIO_MODE ceGpioMode);/*!<
@brief 配置Gpio口的工作方式
@param ceGpio:GPIO属性对象集合指针
@param ceGpioMode:GPIO工作模式*/
}CeGpioOpBase;
extern const CeGpioOpBase ceGpioOp; /*!< 所有与GPIO相关的操作*/
其中:
initial:对一个Gpio资源进行初始化,如果在CeMcu.h中的宏定义 __CE_CHECK_PAR__处于打开状态,则会对输入的CeGpio属性对象进行参数检查。
setGpioBit:设置Gpio口为高电平。
resetGpioBit:设置Gpio口为低电平。
getGpioBit:获取Gpio口的状态,高电平或低电平。
setGpioMode:重新配置Gpio口的工作模式。
5、执行流程

6、应用示例
/**
******************************************************************************
* @brief 使用流程及示例程序(基于前后台非操作系统环境)
* @function 设定Gpio每500ms进行一次电平翻转
******************************************************************************
#include "Creelinks.h"
CeGpio myGpio; //定义Gpio属性对象
int main(void)
{
ceSystemOp.initial(); //Creelinks环境初始化
ceSystemOp.initialDebug(RxUart); //通过Uart串口输出Debug信息到上位机
//TODO:请在此处插入模块初始化等操作
myGpio.ceResource = RxG; //指定Gpio使用的资源号
myGpio.ceGpioMode = CE_GPIO_MODE_OUT_OD; //配置Gpio的工作模式
ceGpioOp.initial(&myGpio); //初始化Gpio
while (1)
{
ceSystemOp.mainTask(); //Creelinks环境主循环任务,请保证此函数能够被周期调用
//TODO:请在此处插入用户操作
ceGpioOp.setGpioBit(&myGpio); //设定Gpio为高电平
ceSystemOp.printf("Gpio status: up.\n"); //向上位机输出调试信息
ceSystemOp.delayMs(500); //延时500ms
ceGpioOp.resetGpioBit(&myGpio); //设定Gpio为高电平
ceSystemOp.printf("Gpio status: down.\n"); //向上位机输出调试信息
ceSystemOp.delayMs(500); //延时500ms
};
}
******************************************************************************
*/
0x02 CeGpio的注意事项
0x03 CeGpio在不同处理器的应用实例
1、STM32平台下的ELinkSTM核心板下使用CeGpio控制Led灯。代码及动画效果如下:
/**
******************************************************************************
* @brief 使用流程及示例程序(基于前后台非操作系统环境)
* @function 设定Gpio每500ms进行一次电平翻转
******************************************************************************/
#include "Creelinks.h"
CeGpio myGpio; //定义Gpio属性对象
int main(void)
{
ceSystemOp.initial(); //Creelinks环境初始化
ceSystemOp.initialDebug(R9Uart); //通过Uart串口输出Debug信息到上位机
//TODO:请在此处插入模块初始化等操作
myGpio.ceResource = R13GP; //指定Gpio使用的资源号
myGpio.ceGpioMode = CE_GPIO_MODE_OUT_PP; //配置Gpio的工作模式
ceGpioOp.initial(&myGpio); //初始化Gpio
)
{
ceSystemOp.mainTask(); //Creelinks环境主循环任务,请保证此函数能够被周期调用
//TODO:请在此处插入用户操作
ceGpioOp.setGpioBit(&myGpio); //设定Gpio为高电平
ceSystemOp.printf("Gpio status: up.\n"); //向上位机输出调试信息
ceSystemOp.delayMs(); //延时500ms
ceGpioOp.resetGpioBit(&myGpio); //设定Gpio为高电平
ceSystemOp.printf("Gpio status: down.\n"); //向上位机输出调试信息
ceSystemOp.delayMs(); //延时500ms
};
}
/******************************************************************************
*/
STM32平台下的ELinkSTM核心板下使用CeGpio控制Led灯

2、Arduino平台下的UNO R3开发板下使用CeGpio控制Led灯。代码及动画效果如下:
/**
******************************************************************************
* @brief 使用流程及示例程序(基于Arduino UNO平台)
* @function 设定Gpio每500ms进行一次电平翻转
******************************************************************************/
#include <Creelinks.h>
CeGpio myGpio; //定义Gpio属性对象
void setup() {
// put your setup code here, to run once:
myGpio.ceResource = RD13G; //指定Gpio使用的资源号
myGpio.ceGpioMode = CE_GPIO_MODE_OUT_PP; //配置Gpio的工作模式
ceGpioOp.initial(&myGpio); //初始化Gpio
}
void loop() {
// put your main code here, to run repeatedly:
ceGpioOp.setGpioBit(&myGpio); //设定Gpio为高电平
delay(); //延时500ms
ceGpioOp.resetGpioBit(&myGpio); //设定Gpio为低电平
delay(); //延时500ms*/
}
/******************************************************************************/
Arduino平台下的UNO R3开发板下使用CeGpio控制Led灯

CREELINKS平台_处理器CeGpio资源使用说明(CeGpio的配置与使用)的更多相关文章
- CREELINKS平台_处理器CeAd资源使用说明(CeAd的配置与使用)
0x00 CREELINKS平台简介 CREELINKS(创e联)是由大信科技有限公司研发,集合软硬件.操作系统.数据云储存.开发工具于一体,用于物联网产品的设计.研发与生产的平台. 平 ...
- CREELINKS平台_处理器CeCcp资源使用说明(CeCcp的配置与使用)
0x00 CREELINKS平台简介 CREELINKS(创e联)是由大信科技有限公司研发,集合软硬件.操作系统.数据云储存.开发工具于一体,用于物联网产品的设计.研发与生产的平台. 平 ...
- 第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示
第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示 首先了解一下static静态文件与上传资源的区别,static静态文件里面一般防止的我们网站样式的文件, ...
- winform快速开发平台->让有限的资源创造无限的价值!
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...
- SNF开发平台WinForm之九-代码生成器使用说明-SNF快速开发平台3.3-Spring.Net.Framework
下面就具体的使用说明: 1.获取代码生成器的授权码(根据本机)-----还原数据库-------改config-----代码生成器 改代码生成器Config 2.登录代码生成器 3.查看是否连接成功 ...
- SNF开发平台WinForm之五-高级查询使用说明-SNF快速开发平台3.3-Spring.Net.Framework
5.1运行效果: 5.2开发实现: 1.按上面效果来说,先来看一下在程序当中如果调用.第一步在页面拖拽一个按钮为“高级查询”,事件上写下如下代码: 如果是单表查询的话,只需要传GridView就行,如 ...
- 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。
云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK. undefined 全明星之极验证 - SendCloud undefined [转载]国内外几个主流的在线开发 ...
- CSDN CODE平台,中国版Github简要使用说明
CSDN CODE平台,中国版Github简要使用说明!(多图慎入) 楼主说 以前一直看到别人在用github发布自己的代码,各种牛逼,各种羡慕嫉妒恨.最后终于受不了了,也去注册了一个,注册到没什 ...
- ML平台_小米深度学习平台的架构与实践
(转载:http://www.36dsj.com/archives/85383)机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学 ...
随机推荐
- Eclipse发布Maven项目到远程服务器
pom.xml中的配置依赖有两种: 一.tomcat-maven.plugin <plugin> <groupId>org.codehaus.mojo</groupId& ...
- iOS UICollectionView高级用法(长按自由移动cell)-新
[reference]http://www.jianshu.com/p/31d07bf32d62 iOS 9之后: 示例如下 效果 前言: 看完你可以学到哪些呢? 就是文章标题那么多, 只有那么多. ...
- Spring MVC之RequestMapping
第一部分.概述 /**映射URL到控制器类或处理程序*/@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolic ...
- scrapy setting 备注
scrapy 脚本里面设置输出文件: process = CrawlerProcess(settings) process.settings.set('FEED_URI', 'wangyi.csv', ...
- iOS 导航栏不可点击
self.navigationController.navigationBar.userInteractionEnabled = NO;
- IM 融云 之 初始化及登录
融云是没有用户体系的,用户登录需要获取token,测试时可以使用网站提供的接口,但是正式是要通过服务器调用专门的接口从融云获取的.并且我没看到融云的重连机制,不知道是否已在SDK内部实现. 现在看来, ...
- IM 融云 之 通讯能力库API
参考:http://www.rongcloud.cn/docs/api/ios/imlib/Classes/RCConversation.html 0. 使用说明 使用该文档注意,每个蓝色标题点击后, ...
- zepto.js 处理Touch事件
处 理Touch事件能让你了解到用户的每一根手指的位置,在touch事件触发的时候产生,可以通过touch event handler的event对象取到,如果基于zepto.js开发,一般是通过ev ...
- Java数据库连接--JDBC调用存储过程,事务管理和高级应用
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...
- Objective-C 关于静态方法与实例方法的转载
objective-c中非常重要的语法知识,在此归纳总结一下. 类方法,也称静态方法,指的是用static关键字修饰的方法.此方法属类本身的方法,不属于类的某一个实例(对象).类方法中不可直接使用实例 ...