Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
KEY_按键
LED
M2354
【NuMaker-2354】GPIO测评
发布于 2021-12-08 22:28:42 浏览:838
订阅该版
时间:2021年12月8日 20:00:22 作者:Chasel [项目地址](http://gitee.com/maihuanyi/m2354-evaluation/tree/master) **1、测试任务** 本次NuMaker-M2354试用的任务为GPIO,第一次接触新塘的开发板,发现新塘的芯片功能还是很强大的,由于时间关系我只简单测试一下GPIO的读写和中断的功能,等闲下来再去测试其他功能。 **2、测评硬件** NuMaker-M2354开发板板载资源丰富,并且开发板把很多IO口都引了出来。本次测评,我测试了板载的LED灯和板载按键。 开发板上的2个LED灯  原理图如下  **3、代码** key.c ``` #include
#include
#include
#define THREAD_PRIORITY 10 #define THREAD_STACK_SIZE 512 #define THREAD_TIMESLICE 5 #define KEY NU_GET_PININDEX(NU_PF, 11) #define PIN_IRQ_MODE PIN_IRQ_MODE_RISING_FALLING /*按键中断方式*/ #define LEDY NU_GET_PININDEX(NU_PD, 2) #define LEDG NU_GET_PININDEX(NU_PD, 3) static rt_thread_t tid1 = RT_NULL; /* KEY 的入口函数 */ static void key_entry(void *parameter) { while (1) { if(!rt_pin_read(KEY)) { rt_pin_write(LEDG, PIN_HIGH); rt_pin_write(LEDY, PIN_LOW); rt_kprintf("key down\n"); while(!rt_pin_read(KEY)); rt_pin_write(LEDG, PIN_LOW); rt_pin_write(LEDY, PIN_HIGH); } rt_thread_mdelay(10); } } /* 线程示例 */ int key_sample(void) { rt_pin_mode(KEY, PIN_MODE_INPUT); rt_pin_mode(LEDG, PIN_MODE_OUTPUT); rt_pin_mode(LEDY, PIN_MODE_OUTPUT); tid1 = rt_thread_create("key", key_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE); /* 如果获得线程控制块,启动这个线程 */ if (tid1 != RT_NULL) rt_thread_startup(tid1); return 0; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(key_sample, key test sample); /* 中断回调函数 */ void key(void *args) { if(rt_pin_read(KEY)) { rt_pin_write(LEDG, PIN_HIGH); rt_pin_write(LEDY, PIN_LOW); rt_kprintf("key rising_irq\n"); }else { rt_pin_write(LEDG, PIN_LOW); rt_pin_write(LEDY, PIN_HIGH); rt_kprintf("key falling_irq\n"); } } int key_irq_sample(void) { /* 按键0引脚为输入模式 */ rt_pin_mode(KEY, PIN_MODE_INPUT); rt_pin_mode(LEDG, PIN_MODE_OUTPUT); rt_pin_mode(LEDY, PIN_MODE_OUTPUT); /* 绑定中断,下降沿模式,回调函数名为 key */ rt_pin_attach_irq(KEY, PIN_IRQ_MODE, key, RT_NULL); /* 使能中断 */ rt_pin_irq_enable(KEY, PIN_IRQ_ENABLE); } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(key_irq_sample, key irq test sample); ``` **4、测试方式** 在MSH中输入key_sample+回车或key_irq_sample+回车,再按下按键,MSH控制台会输出相应的打印,并且2个LED会交替。 **5、测评视频** [LED灯及KEY](http://b23.tv/I8dQ1Qp) **6、测评心得** 本次测评感觉还是挺简单的,官方都做好了适配,开发起来很快,由于第一次接触新塘的芯片,还有好多地方要学习的,等近排闲下来了,去官网查找资料,把他吃透【奥力给】。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
用RTT跑流水灯
这家伙很懒,什么也没写!
文章
11
回答
66
被采纳
2
关注TA
发私信
相关文章
1
应用开发如何包含头文件
2
STM32F03RC跑RTT标准版 没有运行
3
为什么 Count 的值不连续和间隔为 7?
4
请求LED.C/H文件
5
RT-thread 如何被当做“单片机”,控制小灯的亮灭?
6
ART-PI Smart User 运行LED 程序崩溃
7
agile led软件包怎么使用
8
AT32F423开发板呼吸灯无作用,只有一个灯亮
9
有什么足够体现操作系统优越性的按键检测方式
10
如何解决矩阵按键,鬼键(ghosting)以及遮蔽(masking)问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部