Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
GPIO
N32L40XCL-STB
N32L40XCL-STB 开发板模块评测任务大挑战之测试GPIO
发布于 2023-04-22 14:35:54 浏览:262
订阅该版
[toc] ## 1 测试环境 - 开发板:N32L40XCL-STB V1.0 - 开发环境:RT-Thread studio 2.2.6 - RT-Thread版本:4.0.2 ## 2 硬件资源介绍 开发板上共有3个按键和3个LED如下图所示。 - GPIO输入输出测试:KEY1对应引脚设置为GPIO输入,控制LED1、LED2亮灭 - GPIO中断模式测试:KEY2对应引脚设置为下降沿触发,触发后打印KEY2!等若干字符 - LED3指示系统正常工作 ![板载资源](https://oss-club.rt-thread.org/uploads/20230421/4d4753dd08e2f017bde0a0fbea15b5bf.png) ## 3 GPIO测试代码 关于工程创建等可参考其他人的文章,在applications文件夹中创建gpio_test.c文件并加入如下的测试代码 ```c #include
#include
#include
/* defined the LED1 pin: PA8 */ #define LED1_PIN GET_PIN(A, 8) /* defined the LED2 pin: PB4 */ #define LED2_PIN GET_PIN(B, 4) /* defined the KEY1 pin: PA4 */ #define KEY1_PIN GET_PIN(A, 4) /* defined the KEY2 pin: PA5 */ #define KEY2_PIN GET_PIN(A, 5) static uint8_t curr_st = 0; static uint8_t next_st = 0; static uint8_t led_st = 0; static void key_led_thread_entry(void *parameter) { while (1) { /* led status switch */ if (rt_pin_read(KEY1_PIN) == PIN_LOW) { rt_thread_mdelay(20); if (rt_pin_read(KEY1_PIN) == PIN_LOW) { next_st = 1; } else { next_st = 0; } } else { next_st = 0; } /* switch on/off the led */ if ((curr_st == 0) && (next_st != 0)) { led_st = !led_st; } else { led_st = led_st; } curr_st = next_st; if (led_st) { rt_pin_write(LED1_PIN, PIN_HIGH); rt_pin_write(LED2_PIN, PIN_LOW); } else { rt_pin_write(LED1_PIN, PIN_LOW); rt_pin_write(LED2_PIN, PIN_HIGH); } rt_thread_mdelay(20); } } static void key2_callback(void *args) { char *str = args; rt_kprintf(str); } int gpio_test(void) { /* gpio input and output test */ rt_pin_mode(KEY1_PIN, PIN_MODE_INPUT_PULLUP); rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); rt_pin_write(LED1_PIN, PIN_LOW); rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT); rt_pin_write(LED2_PIN, PIN_HIGH); rt_thread_t tid; tid = rt_thread_create("key_led", key_led_thread_entry, RT_NULL, 512, 10, 5); if (tid != RT_NULL) { rt_thread_startup(tid); } else { rt_kprintf("startup the thread failed!\n"); } /* gpio irq test */ rt_pin_mode(KEY2_PIN, PIN_MODE_INPUT_PULLUP); rt_pin_attach_irq(KEY2_PIN, PIN_IRQ_MODE_FALLING, key2_callback, (void *)"KEY2!\n"); rt_pin_irq_enable(KEY2_PIN, PIN_IRQ_ENABLE); } INIT_APP_EXPORT(gpio_test); ``` ## 4 现象视频 [GPIO输入输出测试](https://club.rt-thread.org/file_download/925fb4ed56d781bd)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
cir2way
这家伙很懒,什么也没写!
文章
5
回答
9
被采纳
0
关注TA
发私信
相关文章
1
drivers- pin
2
bsp 里面的drivers/gpio.c 少了一个功能
3
stm32f407移植RTT中gpio设备驱动问题
4
config PB4(NJTRST) to GPIO
5
RT-Thread的GPIO设备驱动问题
6
关于pin.c文件中语句可能出现的bug
7
RT-Thread学习笔记--线程创建与官方Pin设备驱动调用
8
【应用笔记】小白也能玩转RT-Thread之通用GPIO设备【官方出品
9
串口引脚定义中的GPIO_Pin_sources是社么意思?
10
RTT -GPIO 使用例程
推荐文章
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
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部