网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

如何分析RT-Thread的PIN设备中断实验

这期内容当中小编将会给大家带来有关如何分析RT-Thread的PIN设备中断实验,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新新互联,凭借十多年的网站建设、成都做网站经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有近千家案例。做网站建设,选创新互联公司

通用I/O的特性

通用I/O口主要特性如下:

1、输入输出模式可控制。

(1)输出模式一般包括:推挽、开漏、上拉、下拉。引脚为输出模式时,可以通过配置引脚输出的电平状态为高电平或低电平来控制连接的外围设备。

(2)输入模式一般包括:浮空、上拉、下拉、模拟。引脚为输入模式时,可以读取引脚的电平状态,即高电平或低电平。

2、可编程控制中断:中断触发模式可配置,一般有下图所示5种中断触发模式:

如何分析RT-Thread的PIN设备中断实验

下面分享PIN设备的中断实验。

 

PIN设备中断实验

应用程序通过 RT-Thread 提供的 PIN 设备管理接口来访问 GPIO,中断用到的是rt_pin_attach_irq()接口及rt_pin_irq_enable接口:

如何分析RT-Thread的PIN设备中断实验

如何分析RT-Thread的PIN设备中断实验

如何分析RT-Thread的PIN设备中断实验

根据原理图:

如何分析RT-Thread的PIN设备中断实验

按键KEY0被按下时其对应的GPIO引脚应读取到低电平,所以引脚模式设置为下拉输入。废话不多说,直接看代码:

#include 
#include
#include

#define  STACK_SIZE          512
#define  THREAD_PRIORITY 25
#define  TIMESLICE   5

/* 中断回调函数 ---------------------------------------------------------------------------- */
static void hdr_callback(void *args)
{
char *str = args;
rt_kprintf("KEY0 pressed. %s\n", str);
}

/* irq线程入口函数 -------------------------------------------------------------------------*/
static void irq_thread_entry(void *parameter)
{
/* 配置KEY0引脚为上拉输入 */
rt_pin_mode(PIN_KEY0, PIN_MODE_INPUT_PULLUP);

/* 绑定中断回调函数,下降沿模式,回调函数参数为字符串"--By ZhengNian" */
rt_pin_attach_irq(PIN_KEY0, PIN_IRQ_MODE_FALLING, hdr_callback, (void*)"--By ZhengNian");

/* 使能引脚中断 */
rt_pin_irq_enable(PIN_KEY0, PIN_IRQ_ENABLE);
}

/* 主函数 ----------------------------------------------------------------------------------*/
int main(void)
{
   /* 定义线程句柄 */
   rt_thread_t tid;

   /* 创建动态pin线程 :优先级 25 ,时间片 5个系统滴答,线程栈512字节 */
   tid = rt_thread_create("irq_thread",
                 irq_thread_entry,
                 RT_NULL,
                 STACK_SIZE,
                 THREAD_PRIORITY,
                 TIMESLICE);

   /* 创建成功则启动动态线程 */
   if (tid != RT_NULL)
   {
    rt_thread_startup(tid);
   }
   return 0;
}
 

示例代码很简单,创建一个irq线程,irq线程里配置进行KEY0引脚配置,然后绑定中断回调函数,最后使能KEY0中断。中断回调函数就是KEY0触发中断之后执行的函数。

运行结果:

如何分析RT-Thread的PIN设备中断实验

可见,实验结果与预想的一致。使用PIN设备框架接口很方便地实现GPIO中断功能。

RTT中有许多通用地设备驱动框架共供我们使用,其中PIN设备驱动框架是最基础也是最简单地,掌握PIN设备驱动框架之后离掌握其它设备框架还远吗~

上述就是小编为大家分享的如何分析RT-Thread的PIN设备中断实验了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


标题名称:如何分析RT-Thread的PIN设备中断实验
网站网址:http://bjjierui.cn/article/ijocsg.html

其他资讯