Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AB32VG1
学习笔记
AB32VG1系列之按键
发布于 2021-03-12 19:55:33 浏览:1036
订阅该版
[tocm] # KEY > 时间: 2021年3月12日19:40:59 > > 作者: JiangYangJie > > 演示视频: https://www.bilibili.com/video/BV1Lb4y197Ri/ > > 项目地址:https://gitee.com/JiangYangJie/ab32-vg1_-study_-notes ## 1.硬件   - 引脚PF1对应按键S2 - 引脚PF0对应按键S3 - 按键共阴极,因此单片机引脚上拉,捕获下降沿即可 ## 2.软件 ```c /* * Copyright (c) 2006-2020, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2021-03-12 JiangYangJie the first version */ #include "main.h" struct Key_s{ uint8_t S2; uint8_t S3; } Key; void Key_Init(void){ Key.S3= rt_pin_get("PF.0"); Key.S2 = rt_pin_get("PF.1"); // 上拉输入 rt_pin_mode(Key.S2, PIN_MODE_INPUT_PULLUP ); rt_pin_mode(Key.S3, PIN_MODE_INPUT_PULLUP ); } int Read_S2(void){ return rt_pin_read(Key.S2); } int Read_S3(void){ return rt_pin_read(Key.S3); } void S2_Interrput(void *args){ rt_kprintf("S2 OK"); RGB_Blue(1); } void S3_Interrput(void *args){ rt_kprintf("S3 OK"); RGB_Green(1); } void Key_Interrput_Init(void){ // GPIO中断尚未完成 } // 测试 static struct rt_thread key_thread; //创建一个静态线程控制块 ALIGN(RT_ALIGN_SIZE) // 线程栈字节对齐 static uint8_t key_thread_stack[512]; static void key_thread_entry(void *parameter); // 线程函数 static void key_thread_entry(void *parameter){ Key_Init(); RGB_Init(); RGB_Red(1); while(1){ if (Read_S2()==PIN_LOW) { RGB_Blue(1); } if (Read_S3()==PIN_LOW) { RGB_Green(1); } rt_thread_mdelay(100); } } static int Key_Thread_Init(void){ rt_err_t status = rt_thread_init(&key_thread, "key_thread", key_thread_entry, RT_NULL, key_thread_stack, sizeof(key_thread_stack), 10, 10); RT_ASSERT(status != RT_ERROR); rt_thread_startup(&key_thread); return 0; } INIT_APP_EXPORT(Key_Thread_Init); // 初始化线程 ``` ## 3.心得 本次KEY实验,与前面的RGB实验进行组合,可以实现按键的轮询来改变灯的状态,但是美中不足的是GPIO中断没有完成。是本次的遗憾之一。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
JiangYangJie
这家伙很懒,什么也没写!
文章
7
回答
0
被采纳
0
关注TA
发私信
相关文章
1
riscv32-elf-xmaker 工具的目的
2
AB32VG1 的 RTC 内部怎么知道自己是第一次上电的呢?
3
AB32VG1 蓝牙功能
4
AB32VG1 片上 flash 的库能否发布出来
5
【中科蓝汛AB32VG1】开发板是否支持USB HOST
6
有基于RT-Thread 和 AB32VG1 的蓝牙示例吗?
7
AB32VG1_RTC时钟
8
AB32 串口2.是哪个管脚
9
AB32VG1开发板的三路LPWM使用
10
使用RT-thread新建AB32VG1工程编译时报错
推荐文章
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
个答案
3
次被采纳
踩姑娘的小蘑菇
6
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
jinchanchan
2
篇文章
2
次点赞
alight
1
篇文章
5
次点赞
swet123
1
篇文章
4
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部