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指示系统正常工作
3 gpio测试代码
关于工程创建等可参考其他人的文章,在applications文件夹中创建gpio_test.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);
中移动与华为联手在香港布局首个TD-LTE/SAE试验网
议程直击 | 第二届OpenHarmony技术大会——OpenHarmony技术俱乐部分论坛
创造人工智能的初心只是为了辅佐人类
LT7683裸机点屏的最优方案
VESA总线定义
N32L40XCL-STB开发板模块评测任务大挑战之测试GPIO
汽车继电器的运用及发展趋势分析
防水泄压膜如何实现防尘防水与压力平衡
容汇锂业向科创板发起冲刺,目前其IPO已进入问询阶段
PCB内层铺铜
什么是ATM流量控制和拥塞控制
瞄准全球最大AI Camera系统芯片供应商
筋膜枪电机驱动控制板的设计——筋膜枪PCBA设计方案
在交流耦合基带应用中驱动AD9233/9246/9254 ADC
2021年Exyte订单量创新高,圆满收官
Hittite推出低噪声可编程分频器HMC794LP3E
电动汽车的发展迅速,将会逐渐取代油混合燃油车的地位
CISSOID和清华大学电机系共同研发碳化硅功率模块系统
一文了解瞬流
英睿达DDR5 5600 32GB内存套装测试分析