TL-LED 发表于 2024-8-13 09:00

【匠芯创D133CBS】 GPIO输入测试

本帖最后由 TL-LED 于 2024-8-13 09:00 编辑

<p><span style="font-size:16px;">通过板子上的按键K3来测试GPIO输入中断。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;"><strong>一、硬件部分</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">K3按键电路图</span></p>

<p><span style="font-size:16px;"></span></p>

<p>&nbsp;</p>

<p><strong><span style="font-size:16px;">二、程序部分</span></strong></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">2.1、添加测试目录</span></p>

<p><span style="font-size:16px;">在peripheral下添加测试test目录,创建key测试测试代码</span></p>

<p><span style="font-size:16px;"></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">2.2、key.c</span></p>

<pre>
<code>//key.c
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;getopt.h&gt;
#include &lt;sys/time.h&gt;
#include &lt;rtthread.h&gt;
#include "rtdevice.h"
#include "aic_core.h"
#include "aic_hal_gpio.h"

#define INPUT_KEY_PIN               "PD.15"

static void key_irq_handler(void *args)
{
    printf("按键进入中断\n");
}

static void test_key_sample(void)
{
    u32 key_pin_num;
    key_pin_num = rt_pin_get(INPUT_KEY_PIN);
    rt_pin_mode(key_pin_num, PIN_MODE_INPUT_PULLUP);
    rt_pin_attach_irq(key_pin_num, PIN_IRQ_MODE_RISING_FALLING,key_irq_handler, RT_NULL);
    rt_pin_irq_enable(key_pin_num, PIN_IRQ_ENABLE);
}

MSH_CMD_EXPORT(test_key_sample, key device sample);
</code></pre>

<p>&nbsp;</p>

<p><strong><span style="font-size:16px;">三、编译项目</span></strong></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">3.1、选择创建的key测试选项</span></p>

<p>执行 scons --menuconfig&nbsp;</p>

<p></p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">3.2、编译</span></p>

<p></p>

<p>&nbsp;</p>

<p><strong><span style="font-size:16px;">四、运行</span></strong></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">下载程序后,复位开发板</span></p>

<p><span style="font-size: 16px;">执行test_key_sample,按下K3进入中断。</span></p>

<p></p>

<p>&nbsp;</p>
页: [1]
查看完整版本: 【匠芯创D133CBS】 GPIO输入测试