电子发烧友网 > EDA/IC设计 > 正文

简要分析Thread的通用GPIO设备驱动

2018年11月13日 14:57 次阅读

1 本文的目的和结构

1.1 本文的目的 和背景

为了给用户提供操作GPIO的通用API,方便应用程序开发,RT-Thread中引入了通用GPIO设备驱动。并提供类似Arduino风格的API用于操作GPIO,如设置GPIO模式和输出电平、读取GPIO输入电平、配置GPIO外部中断。本文说明了如何使用RT-Thread的通用GPIO设备驱动。

1.2 本文的结构

本文首先描述了RT-Thread 通用GPIO设备驱动的基本情况,接下来给出了在正点原子STM32F4探索者开发板上验证的代码示例,最后详细描述了通用GPIO设备驱动API的参数取值和注意事项。

2 问题阐述

RT-Thread提供了一套简单的I/O设备管理框架,它把I/O设备分成了三层进行处理:应用层、I/O设备管理层、硬件驱动层。应用程序通过RT-Thread的设备操作接口获得正确的设备驱动,然后通过这个设备驱动与底层I/O硬件设备进行数据(或控制)交互。RT-Thread提供给上层应用的是一个抽象的设备操作接口,给下层设备提供的是底层驱动框架。对于通用GPIO设备,应用程序既可以通过设备操作接口访问,又可以直接通过通用GPIO设备驱动来访问。一般来说,我们都是使用第二种方式,那么如何在RT-Thread中使用通用GPIO设备驱动从而操作GPIO呢?

简要分析Thread的通用GPIO设备驱动

图A. 1 RT-Thread设备管理框架

3 问题的解决

本文基于正点原子STM32F4探索者开发板,给出了通用GPIO设备的具体应用示例代码,包含管脚输入、输出和外部中断的使用方法。由于RT-Thread上层应用API的通用性,因此这些代码不局限于具体的硬件平台,用户可以轻松将它移植到其它平台上。

正点原子 STM32F4 探索者开发板使用的MCU是 STM32F407ZET6,板载2颗LED和4个独立按键。LED分别连接到MCU的GPIOF9、GPIOF10,KEY0按键连接到GPIOE4,KEY1按键连接到GPIOE3,KEY2按键连接到GPIOE2,WK_UP按键连接到GPIOA0,2颗LED均为低电平点亮,独立按键KEY0、KEY1、KEY2按下为低电平;WK_UP按下为高电平。

简要分析Thread的通用GPIO设备驱动

图A. 2 实验用正点原子开发板

 

3.1 准备和配置工程

1. 下载 RT-Thread 源码 https://github.com/RT-Thread/rt-thread

2. 进入 rt-thread\bsp\stm32f4xx-HAL 目录,在 env 命令行中输入menuconfig,进入配置界面,使用 menuconfig 工具(学习如何使用)配置工程。

1) 在menuconfig配置界面依次选择RT-Thread Components ---》 Device Drivers ---》 Using generic GPIO device drivers,如图所示:

简要分析Thread的通用GPIO设备驱动

图A. 3 menuconfig中开启GPIO驱动

2) 输入scons --target=mdk5 -s

命令生成mdk5工程。将本应用笔记附带的main.c替换掉bsp中的main.c,如图所示:

简要分析Thread的通用GPIO设备驱动

图A. 4 加入测试代码

3) 编译,下载程序,在终端输入list_device命令可以看到pin device、类型是Miscellaneous Device就说明通用GPIO设备驱动添加成功了。

简要分析Thread的通用GPIO设备驱动

图A. 5 查看pin设备

下面是3个通用GPIO设备驱动API应用示例,分别是:GPIO输出、GPIO输入、GPIO外部中断,这些代码在正点原子STM32F4探索者开发板上验证通过。

3.2 GPIO输出配置

示例1:配置GPIO为输出,点亮LED。根据原理图,GPIOF9连接到了板载红色LED,丝印为DS0;GPIOF10连接到了板载绿色LED,丝印为DS1。GPIOF9输出低电平则点亮DS0,GPIOF9输出高电平则DS0不亮;GPIOF10输出低电平则点亮DS1,GPIOF10输出高电平则DS1不亮。

简要分析Thread的通用GPIO设备驱动

图A. 6 LED原理图

#define LED0 21 //PF9--21,在 drv_gpio.c 文件 pin_index pins[]中查到 PF9 编号为 21

#define LED1 22 //PF10--21,在 drv_gpio.c 文件 pin_index pins[]中查到 PF10 编号为 22

void led_thread_entry(void* parameter)

{

//设置管脚为输出模式

rt_pin_mode(LED0, PIN_MODE_OUTPUT);

//设置管脚为输出模式

rt_pin_mode(LED1, PIN_MODE_OUTPUT);

while (1)

{

//输出低电平,LED0 亮

rt_pin_write(LED0, PIN_LOW);

//输出低电平,LED1 亮

rt_pin_write(LED1, PIN_LOW);

//挂起 500ms

rt_thread_delay(rt_tick_from_millisecond(500));

//输出高电平,LED0 灭

rt_pin_write(LED0, PIN_HIGH);

//输出高电平,LED1 灭

rt_pin_write(LED1, PIN_HIGH);

//挂起 500ms

rt_thread_delay(rt_TIck_from_millisecond(500));

}

}

在线程入口函数led_thread_entry里首先调用rt_pin_mode设置管脚模式为输出模式,然后就进入while(1)循环,间隔500ms调用rt_pin_write来改变GPIO输出电平。

下面是创建线程的代码:

rt_thread_t TId;//线程句柄

/* 创建led线程 */

TId = rt_thread_create(“led”,

led_thread_entry,

RT_NULL,

1024,

3,

10);

/* 创建成功则启动线程 */

if (TId != RT_NULL)

rt_thread_startup(tid);

编译、下载程序,我们将看到LED间隔500ms闪烁的现象。

3.3 GPIO输入配置

示例2:配置GPIOE3、GPIOE2为上拉输入,GPIOA0为下拉输入,检测按键信号。根据原理图,GPIOE3连接到按键KEY1,按键被按下时GPIOE3应读取到低电平,按键没有被按下时GPIOE3应读取到高电平;GPIOE2连接到按键KEY2,按键被按下时GPIOE2应读取到低电平,按键没有被按下时GPIOE2应读取到高电平;GPIOA0连接到按键WK_UP,按键被按下时GPIOA0应读取到高电平,按键没有被按下时GPIOA0应读取到低电平。

简要分析Thread的通用GPIO设备驱动
图A. 7 按键原理图

#define KEY1 2 //PE3--2,在 drv_gpio.c 文件 pin_index pins[]中查到 PE3 编号为 2

#define KEY2 1 //PE2--1,在 drv_gpio.c 文件 pin_index pins[]中查到 PE2 编号为 1

#define WK_UP 34 //PA0--34,在 drv_gpio.c 文件 pin_index pins[]中查到 PA0 编号为 34

void key_thread_entry(void* parameter)

{

//PE2、PE3设置上拉输入

rt_pin_mode(KEY1, PIN_MODE_INPUT_PULLUP);

rt_pin_mode(KEY2, PIN_MODE_INPUT_PULLUP);

//PA0设置为下拉输入

rt_pin_mode(WK_UP, PIN_MODE_INPUT_PULLDOWN);

while (1)

{

//检测到低电平,即按键1按下了

if (rt_pin_read(KEY1) == PIN_LOW)

{

rt_kprintf(“key1 pressed!\n”);

}

//检测到低电平,即按键2按下了

if (rt_pin_read(KEY2) == PIN_LOW)

{

rt_kprintf(“key2 pressed!\n”);

}

//检测到高电平,即按键wp按下了

if (rt_pin_read(WK_UP) == PIN_HIGH)

{

rt_kprintf(“WK_UP pressed!\n”);

}

//挂起10ms

rt_thread_delay(rt_tick_from_millisecond(10));

}

}

在线程入口函数key_thread_entry里首先调用rt_pin_mode设置管脚GPIOE3为上拉输入模式。这样当用户按下按键KEY1时,GPIOE3读取到的电平是低电平;按键未被按下时,GPIOE3读取到的电平是高电平。然后进入while(1)循环,调用rt_pin_read读取管脚GPIOE3电平,如果读取到低电平则表示按键KEY1被按下,就在终端打印字符串“key1 pressed!”。每隔10ms检测一次按键输入情况。

下面是创建线程的代码:

rt_thread_t tid;

/* 创建key线程 */

tid = rt_thread_create(“key”,

key_thread_entry,

RT_NULL,

1024,

2,

10);

/* 创建成功则启动线程 */

if (tid != RT_NULL)

rt_thread_startup(tid);

编译、下载程序,我们按下开发板上的用户按键,终端将打印提示字符。

3.4 GPIO中断配置

示例3:配置GPIO为外部中断模式、下降沿触发,检测按键信号。根据原理图,GPIOE4连接到按键KEY0,按键被按下时MCU应探测到电平下降沿。

#define KEY0 3 //PE4--3,在gpio.c文件pin_index pins[]中查到PE4编号为3

void hdr_callback(void *args)//回调函数

{

char *a = args;//获取参数

rt_kprintf(“key0 down! %s\n”,a);

}

void irq_thread_entry(void* parameter)

{

//上拉输入

rt_pin_mode(KEY0, PIN_MODE_INPUT_PULLUP);

//绑定中断,下降沿模式,回调函数名为hdr_callback

rt_pin_attach_irq(KEY0, PIN_IRQ_MODE_FALLING, hdr_callback, (void*)“callback

args”);

//使能中断

rt_pin_irq_enable(KEY0, PIN_IRQ_ENABLE);

}

在线程入口函数irq_thread_entry里首先调用rt_pin_attach_irq设置管脚GPIOE4为下降沿中断模式,并绑定了中断回调函数,还传入了字符串“callback args”。然后调用rt_pin_irq_enable使能中断,这样按键KEY0被按下时MCU会检测到电平下降沿,触发外部中断,在中断服务程序中会调用回调函数hdr_callback,在回调函数中打印传入的参数和提示信息。

下面是创建线程的代码:

rt_thread_t tid;//线程句柄

/* 创建irq线程 */

tid = rt_thread_create(“exirq”,

irq_thread_entry,

RT_NULL,

1024,

4,

10);

/* 创建成功则启动线程 */

if (tid != RT_NULL)

rt_thread_startup(tid);

编译、下载程序,我们按下按键KEY0,终端将打印提示字符。

3.5 I/O设备管理框架和通用GPIO设备联系

RT-Thread自动初始化功能依次调用rt_hw_pin_init ===》 rt_device_pin_register ===》 rt_device_register完成了GPIO硬件初始化。rt_device_register注册设备类型为RT_Device_Class_Miscellaneous,即杂类设备,从而我们就可以使用统一的API操作GPIO。

简要分析Thread的通用GPIO设备驱动

图A. 8 通用GPIO驱动和设备管理框架联系

更多关于I/O设备管理框架的说明,请参考《RT-Thread编程手册》第 6 章 I/O设备管理,在线查看地址:https://www.rt-thread.org/document/site/zh/1chapters/06-chapter_device/ 

4 参考

4.1 本文所有相关的API

要使用这些API需引用头文件

#include

4.1.1 API 列表(Summary)

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

是否有TI提供的适用于C2000图形库?

发表于 2018-11-13 14:52 5次阅读
是否有TI提供的适用于C2000图形库?

如何把28035Bootloader API库定位到指定的Flash Section

发表于 2018-11-13 14:43 9次阅读
如何把28035Bootloader API库定位到指定的Flash Section

关于STM32F4 SPI1与SPI2通信问题

发表于 2018-11-13 09:05 63次阅读
关于STM32F4 SPI1与SPI2通信问题

可以将CYUSB3ACC-005 FMC互连板用作通用FMC/GPIO板吗?

发表于 2018-11-12 17:14 59次阅读
可以将CYUSB3ACC-005 FMC互连板用作通用FMC/GPIO板吗?

如何使用协作共存?

发表于 2018-11-12 17:14 66次阅读
如何使用协作共存?

如何将字节宽的接口添加到UDB Designer组件?

发表于 2018-11-12 15:26 59次阅读
如何将字节宽的接口添加到UDB Designer组件?

STM8L GPIO初始化慢吗?

发表于 2018-11-12 11:02 13次阅读
STM8L GPIO初始化慢吗?

stm32l053c8进入睡眠模式,苏醒后LED灯无法启动?

发表于 2018-11-12 08:37 80次阅读
stm32l053c8进入睡眠模式,苏醒后LED灯无法启动?

如何使用CySmart API与设备配对

发表于 2018-11-09 17:11 53次阅读
如何使用CySmart API与设备配对

基于STM32的八种GPIO输入输出模式解析

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,...

发表于 2018-11-09 16:32 104次阅读
基于STM32的八种GPIO输入输出模式解析

基于STM32F4系列MCU新建立用库工程的步骤...

这里我建立的是一个使用Tim定时器的工程,工程文件名为TIM。使用的MVU为STM32F4VG。昨晚...

发表于 2018-11-09 16:03 55次阅读
基于STM32F4系列MCU新建立用库工程的步骤...

BeagleBone Black PRU-ICSS可编程实时单元工业通信子系统

发表于 2018-11-09 14:44 187次阅读
BeagleBone Black PRU-ICSS可编程实时单元工业通信子系统

WebVR:如何利用WebVR API进行VR渲...

在本集中,我们将介绍各种VR概念,这些概念将帮助您了解如何更好地利用WebVR API进行VR渲染。

发表于 2018-11-09 06:17 93次阅读
WebVR:如何利用WebVR API进行VR渲...

STM32F4发送和接收长度数据的判断

STM32F4 串口收发使用DMA还是很方便的。但是配置DMA时需要配置数据长度,这一点对于发送来说...

发表于 2018-11-08 16:25 71次阅读
STM32F4发送和接收长度数据的判断

DPDK API和虚拟基础架构

此会话使用DPDK API中的轮询模式驱动程序来描述各种虚拟设备,并以正确的方式提供构建NFVi所需...

发表于 2018-11-08 06:55 62次阅读
DPDK API和虚拟基础架构

基于STM32F4单片机USART寄存器控制的设...

USART又叫通用同步异步收发器,塔提供了一种灵活的方法与工业使用标准NRZ异步春航数据格式的外部设...

发表于 2018-11-07 16:30 70次阅读
基于STM32F4单片机USART寄存器控制的设...

英特尔图形上Vulkan API的实时演示

在GDC 2015上记录了来自Khronos™的OpenGL与Vulkan™API的实时演示。使用V...

发表于 2018-11-07 06:56 91次阅读
英特尔图形上Vulkan API的实时演示

详解LabVIEW机器人模块软件的机器人算法和A...

既是在目前严峻的经济形势下,仍有面向各个新应用领域的机器人不断涌现出来。在制造业方面,尽管增长速度受...

发表于 2018-11-04 09:14 239次阅读
详解LabVIEW机器人模块软件的机器人算法和A...

什么是API网关 如何设计亿万级统一网关

由于在内部开发中我们都是以RPC协议(thrift or dubbo)去做开发,暴露给内部服务,当外...

发表于 2018-11-02 10:45 598次阅读
什么是API网关 如何设计亿万级统一网关

怎样用STM32单片机的GPIO控制LED显示状...

ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。 管脚对于位写1 gpio ...

发表于 2018-11-01 15:45 105次阅读
怎样用STM32单片机的GPIO控制LED显示状...

英特尔压力比特流和编码器提高质量并加速比特流分析

通过分支和语法覆盖提高质量并加速比特流分析 - 英特尔压力比特流和编码器(英特尔®SBE)

发表于 2018-11-01 06:30 156次阅读
英特尔压力比特流和编码器提高质量并加速比特流分析

如何使用Vulkan Graphics API

本视频将帮助您开始使用Vulkan

发表于 2018-11-01 06:19 174次阅读
如何使用Vulkan Graphics API

十大最先进和最容易访问的区块链API分享

随着加密货币和区块链技术的快速发展,最引人注目的电子商务趋势是包括比特币支付选项。要在网上商店接受比...

发表于 2018-10-31 11:13 195次阅读
十大最先进和最容易访问的区块链API分享

解答树莓派三种连接电脑的方式

连接树莓派,树莓派的GPIO针(就是SD卡插槽旁边的两排一共26根针)的1号针旁边写了一个P1,其他...

发表于 2018-10-30 17:35 169次阅读
解答树莓派三种连接电脑的方式

使用英特尔QuickAssist技术中的API

概述使用英特尔®QuickAssist技术中包含的API。

发表于 2018-10-30 06:36 189次阅读
使用英特尔QuickAssist技术中的API

开放社区中的可用性艺术

This video focuses on Intel’s multi-pronged effort...

发表于 2018-10-29 06:14 70次阅读
开放社区中的可用性艺术

一个城市一个城市地重新定义未来

Learn how you can get your fingers on the pulse of...

发表于 2018-10-26 06:54 87次阅读
一个城市一个城市地重新定义未来

安森美半导体AX-SIP-SFEU系统级封装(S...

AX-SIP-SFEU提供现成的Sigfox互联(上行和下行链路) 用于工业物联网应用,包括楼宇和家...

发表于 2018-10-24 11:52 866次阅读
安森美半导体AX-SIP-SFEU系统级封装(S...

基于LCD单片机输入/输出端口GPIO编程

一、输入/输出端口GPIO编程一—(02)、控制LCD1602显示~~废话不多说了~~直接上图~~然...

发表于 2018-10-17 16:33 96次阅读
基于LCD单片机输入/输出端口GPIO编程

英特尔Xeon Phi™协处理器的优化:第4部分

Optimizing for the Intel® Xeon Phi™ coprocessor, P...

发表于 2018-10-17 06:30 74次阅读
英特尔Xeon Phi™协处理器的优化:第4部分

英特尔Xeon Phi™协处理器的优化:第3部分

Optimizing for the Intel® Xeon Phi™ coprocessor, P...

发表于 2018-10-17 06:30 58次阅读
英特尔Xeon Phi™协处理器的优化:第3部分

英特尔Xeon Phi™协处理器的优化:第5部分

Optimizing for the Intel® Xeon Phi™ coprocessor, P...

发表于 2018-10-17 06:20 76次阅读
英特尔Xeon Phi™协处理器的优化:第5部分

stm32的八种GPIO配置模式

上拉输入就是在输入电路上使用了上拉电阻。这种模式的好处在于我们什么都不输入时,由于内部上拉电阻的原因...

发表于 2018-10-14 08:20 228次阅读
stm32的八种GPIO配置模式

谷歌宣布了新的API,以改善使用ARCore的A...

这些更新还包括为内容管理提供更大灵活性的新功能。其中包括支持在Sceneform运行时加载gITF模...

发表于 2018-10-08 11:40 597次阅读
谷歌宣布了新的API,以改善使用ARCore的A...

构建API无服务器才是最后的赢家

容器是近年来最令人迷惑的时尚。在某些情况下,“我们可以构建是你之前构建的机器的完美复制品的新机器”有...

发表于 2018-10-06 11:37 315次阅读
构建API无服务器才是最后的赢家

看看Linux中形形色色的接口

如果将内核比作一座工厂,那么Linux中众多的接口就是通往这个巨大工厂的高速公路。

发表于 2018-10-04 09:19 335次阅读
看看Linux中形形色色的接口

如何学习STM32?STM32入门学习经验总结

当我们在入门之前(ARM是这样,DSP也一样),总会有很多疑问,会有很多顾虑。我们渴望知道学习STM...

发表于 2018-10-03 19:45 563次阅读
如何学习STM32?STM32入门学习经验总结

使用STM32开发为什么要先开启外设模块?什么时...

1.为什么我们要先开启STM32外设模块时钟; 2.关于STM32的 I/O 复用功能及什么时候开...

发表于 2018-09-24 12:35 382次阅读
使用STM32开发为什么要先开启外设模块?什么时...

关于学习代码固件ADC精度的5点建议

这里是一些通用的固件设计技巧,可用来降低系统或信号噪声,以实现更好的ADC 转换精度.

发表于 2018-09-22 17:42 326次阅读
关于学习代码固件ADC精度的5点建议

浅谈游戏中的模拟点击程序

该篇文章主要讲述C#如何操作鼠标的事件,在制作游戏外挂或自动运行程序时非常实用,但遗憾的是在上面通过...

发表于 2018-09-15 09:06 153次阅读
浅谈游戏中的模拟点击程序

François Chollet:关于软件工程的...

最强大的心智模型是模块化和层次化的:既注重高级别的简洁性,又兼顾精确性,包含需要了解详细信息。同样的...

发表于 2018-09-13 09:54 505次阅读
François Chollet:关于软件工程的...

英特尔®媒体分析工具软件

Intel® Software Tools for Media Analytics

发表于 2018-09-13 02:20 294次阅读
英特尔®媒体分析工具软件

WhatsApp公布了其第一款创收的企业服务产品...

WhatsApp Business APP于今年年初正式发布,企业用户数量已达到300万。之前Wha...

发表于 2018-09-06 10:00 1895次阅读
WhatsApp公布了其第一款创收的企业服务产品...

基于单片机STM32 GPIO 基本简单操作函数...

STM32库函数太多,而且不能识别大小写,经常记错,GPIO简单记忆。---第一步--模式配置voi...

发表于 2018-09-04 11:00 117次阅读
基于单片机STM32 GPIO 基本简单操作函数...

软件开发人员是怎样理解区块链技术的?

撇开政治观点不谈,区块链只不过是我们应用程序的一个数据层。将来它可能是惟一的持久性层,当然也不一定非...

发表于 2018-09-01 09:45 176次阅读
软件开发人员是怎样理解区块链技术的?

基于区块链的游戏基础技术平台GES游戏引擎公链

GES游戏引擎公链为游戏行业提供定制式的、可编程的扩展机制、脚本体系、逻辑事件管理、基础网络组网技术...

发表于 2018-08-31 09:50 382次阅读
基于区块链的游戏基础技术平台GES游戏引擎公链

Morpheus Labs打造出区块链平台即服务...

Morpheus Labs区块链平台即服务(BPaaS)简化和加快了区块链应用程序的开发,并使您能够...

发表于 2018-08-27 11:00 883次阅读
Morpheus Labs打造出区块链平台即服务...

嵌入式GPIO接口基础操作

PORT A的端口配置寄存器GPACON中每一位对应一个引脚(PORT A共23个引脚,bit0~b...

发表于 2018-08-15 14:00 773次阅读
嵌入式GPIO接口基础操作

嵌入式应用开发应用架构有什么作用?嵌入式程序设计...

如果没有好的架构,移植将会是一件很痛苦的事情。如果没有好的架构,复用是最大的难题,没法更大限度的复用...

发表于 2018-08-12 10:49 784次阅读
嵌入式应用开发应用架构有什么作用?嵌入式程序设计...

TensorFlow最新版本

TensorFlow 版本 1.10.0 已经正式发布啦!

发表于 2018-08-11 08:24 915次阅读
TensorFlow最新版本

如何在嵌入式FreeRTOS系统接口调用API?

1.在最近的嵌入式工作中很多都是学习FreeRTOS系统,由于只是会对RTOS的接口进行调用,但是很...

发表于 2018-08-04 10:39 1101次阅读
如何在嵌入式FreeRTOS系统接口调用API?

Python自动化测试框架有哪些?

令开发者万分高兴的是,开发自己的测试框架的日子终于结束了。以前,开发团队接手一个项目并开始开发时,除...

发表于 2018-07-28 09:06 860次阅读
Python自动化测试框架有哪些?

API如何赋能app开发?APICloud重新定...

大大小小的电商节、电商活动几乎每个月都在各个平台上演争夺战,在资本风口下的互联网公司,从不缺少注视的...

发表于 2018-07-27 11:52 585次阅读
API如何赋能app开发?APICloud重新定...

如何在单一设计中使用多个VL53L0X

近年来,接近传感器越来越备受关注。 例如,接近传感器现今广泛用于智能手机,在手机进行通话时停用触摸屏...

发表于 2018-07-23 09:00 3410次阅读
如何在单一设计中使用多个VL53L0X

无人机设计中STM32库实现的模拟i2c代码

PID计算完成之后,便可以通过STM32自带的定时资源很容易的调制出四路pwm信号。

发表于 2018-07-19 09:36 2978次阅读
无人机设计中STM32库实现的模拟i2c代码

APICloud CEO刘鑫受邀为国家知识产权局...

7月13日,APICloud创始人兼CEO刘鑫受邀为国家知识产权局相关领导及专家授课,当日国家知识产...

发表于 2018-07-17 14:03 642次阅读
APICloud CEO刘鑫受邀为国家知识产权局...

M6708U-T系列工控核心板隔离设计指南

GPIO作为常用个开关量控制信号,广泛应用于工业领域的数据采集和驱动控制。当GPIO配置为DI和DO...

发表于 2018-07-10 09:04 1792次阅读
M6708U-T系列工控核心板隔离设计指南

AVR单片机十日通:10位ADC和DAC的应用与...

欣世纪电子阿迪老师单片机系列视频教程之《AVR单片机十日通》,这是第八日:10位ADC和DAC的应用...

发表于 2018-07-10 03:47 1070次阅读
AVR单片机十日通:10位ADC和DAC的应用与...

介绍ATMEL MCU的GPIO配置

Getting Started with Atmel SMART SAM D MCU Configu...

发表于 2018-07-09 00:25 619次阅读
介绍ATMEL MCU的GPIO配置

被zynq的GPIO唬住,告诉你zynq的3种G...

我们先看有哪三种GPIO:MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接挂在PS上的...

发表于 2018-07-07 08:23 475次阅读
被zynq的GPIO唬住,告诉你zynq的3种G...

介绍RAW API接口及应用

RAW API

发表于 2018-07-05 00:35 584次阅读
介绍RAW API接口及应用

TCP回响客户端:RAW API接口

TCP回响客户端例程(RAW API)

发表于 2018-07-05 00:31 468次阅读
TCP回响客户端:RAW API接口

介绍STM32F4系列之浮点单元的特点

该视频通过在STM3240G-EVAL评估板上显示不规则图形展示了STM32F4系列MCU上集成的硬...

发表于 2018-07-02 03:27 435次阅读
介绍STM32F4系列之浮点单元的特点

GPIO、中断和事件:为ARM初学者导航(6)

第六讲:GPIO、中断和事件--《为ARM初学者导航》

发表于 2018-07-02 00:22 871次阅读
GPIO、中断和事件:为ARM初学者导航(6)

关于ODP和DPDK的介绍与解决方案(一)

最新趋势的发展方向是将Linux用户空间态作为数据包处理环境。硬件供应商已经在用户空间提供了自己的A...

发表于 2018-06-29 10:13 444次阅读
关于ODP和DPDK的介绍与解决方案(一)

关于ODP和DPDK的介绍与解决方案(二)

最新趋势的发展方向是将Linux用户空间态作为数据包处理环境。硬件供应商已经在用户空间提供了自己的A...

发表于 2018-06-29 09:13 645次阅读
关于ODP和DPDK的介绍与解决方案(二)

APICloud技术大牛组团现身GMTC 驱动大...

前端技术的发展一直呈现变革式更新的特性,其变化速度之快,变化程度之深,往往令人瞠目结舌。在前端技术发...

发表于 2018-06-25 11:21 517次阅读
APICloud技术大牛组团现身GMTC 驱动大...

复用功能输入输出的概念 一文读懂GPIO复用功能

什么是普通功能输入输出?普通功能输入输出类似于:大厅《--》门《----》室外的关系,大厅只需要经过...

发表于 2018-06-19 07:30 907次阅读
复用功能输入输出的概念 一文读懂GPIO复用功能

浅谈占空比与PWM电路和GPIO单双相电路

占空比(Duty Cycle)有如下含义: 在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲...

发表于 2018-06-17 10:40 471次阅读
浅谈占空比与PWM电路和GPIO单双相电路

APICloud作为GMTC全球大前端技术大会顶...

互联网的飞速发展带动了前端开发技术的不断进步和创新,现阶段无论是前端开发人才还是开发市场皆在互联网行...

发表于 2018-06-14 10:42 1192次阅读
APICloud作为GMTC全球大前端技术大会顶...