首页 > 其他分享 >PSoc62™开发板之按键控制LED

PSoc62™开发板之按键控制LED

时间:2023-12-24 21:00:46浏览次数:31  
标签:rt LED PIN pin 开发板 USER 按键 PSoc62

实验目的

使用板子上的用户自定义按键控制LED亮灭,当按键按下时LED亮起来,不按下则不亮

电路图

按键电路

板子有两组按键,分别是系统复位按键和用户自定义按键,这里我们选择控制用户自定义按键,可以看到MCU_USER_BTN是通过上拉电阻接入电源的

按键电路.png

按键引脚图

MCU_USER_BTN对应的是引脚P6.2

按键引脚图.png

LED电路

板子有两个自主控制的LED,为绿色,通过上拉方式接入GPIO,MCU_USER_LED1对应P0.0

程序设计

以下程序用于使用用户自定义按键控制LED亮灭

#include <rtthread.h>
#include <rtdevice.h>

#include "drv_gpio.h"

#define LED0_PIN     GET_PIN(0, 0)
#define USER_KEY GET_PIN(6, 2)

void irq_callback()
{
    int val = rt_pin_read(USER_KEY);
    if(val == 1) {
        rt_pin_write(LED0_PIN, PIN_HIGH);
    }
    else {
        rt_pin_write(LED0_PIN, PIN_LOW);
    }
}

int main(void)
{
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
    rt_pin_mode(USER_KEY, PIN_MODE_INPUT_PULLUP);
    rt_pin_attach_irq(USER_KEY, PIN_IRQ_MODE_RISING_FALLING, irq_callback, RT_NULL);
    rt_pin_irq_enable(USER_KEY, PIN_IRQ_ENABLE);
    return 0;
}

GET_PIN宏是HAL_Drivers中一个用于访问指定编号GPIO口的宏,在头文件drv_gpio.h

rt_pin_mode是RT-Thread提供的引脚模式设置接口

rt_pin_write是RT-Thread提供的引脚高低电平设置接口

实验效果

可以看到当按键按下时,绿色LED(位于Infineon logo下方)亮起来,恢复时LED不亮

标签:rt,LED,PIN,pin,开发板,USER,按键,PSoc62
From: https://blog.51cto.com/hywing/8957068

相关文章

  • SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
     自动化框架中,从返回的json字符串中获取值,需要用jsonpath<!--https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path--><dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><vers......
  • 报错Module was compiled with an incompatible version of Kotlin. The binary versi
    报错ModulewascompiledwithanincompatibleversionofKotlin.Thebinaryversionofitsmetadatais1.8.0,expectedversionis1.6.0.报错原因Kotlin的编译链版本不对ModulewascompiledwithanincompatibleversionofKotlin.Thebinaryversionofitsmet......
  • docker 启动报错 library initialization failed - unable to allocate file descript
    docker启动报错library initialization failed-unabletoallocatefiledescriptortable-outofmemory1.报错日志libraryinitializationfailed-unabletoallocatefiledescriptortable-outofmemory/cm-server/aiboxCloud-web/boot/entrypoint.sh:line2:......
  • PSoc62™开发板之点亮LED
    电路图LED电路板子有两个自主控制的LED,为绿色,通过上拉方式接入GPIO按键引脚图MCU_USER_LED1对应P0.0MCU_USER_LED2对应P0.1程序设计以下程序用于循环控制两个LED灯亮灭,延时间隔为500ms#include<rtthread.h>#include<rtdevice.h>#include"drv_gpio.h"#defineLED_P......
  • Linux:vscode扩展无法下载,报错:Error while fetching extensions : XHR failed
     在Linux系统上下载安装好vscode以后,发现扩展里面无法下载安装,报错:Error while fetching extensions : XHR failed 解决办法:修改hosts文件1.sudocp/etc/hosts/etc/hosts.bak2.sudovi/etc/hots3.在文件末尾增加下面的文字,然后保存,关闭  4.刷新DNS,Ubuntu22......
  • [Git Error] failed to push some refs to “××××.git”
    1.问题描述:在将本地仓库内容推送至远程仓库Github时出现以下错误。Togithub.com:LeowenHungry/Loewen-TestRepository.git![rejected]main->main(non-fast-forward)error:failedtopushsomerefsto'github.com:LeowenHungry/Loewen-TestRepository.git'hint:......
  • win10安装git fatal: open /dev/null or dup failed: No such file or directory错误
    https://files.cnblogs.com/files/netlock/null.zip?t=1703226893&download=true文件地址解决方法:1.C:\Windows\System32\drivers\null.sys这个文件损坏,可以从网上下载win7、win10对应的null.sys文件,然后进行替换。由于我是win10的电脑,提供链接。百度网盘链接:https://pan.baid......
  • Android应用开发长按拖拽-Flutter的LongPressDraggable控件回调函数onDraggableCancel
    onDraggableCanceled介绍LongPressDraggable的onDraggableCanceled回调在拖动被取消时触发。拖动可能会被取消,例如用户在拖动开始后移动了太快或在放置之前取消了拖动。onDraggableCanceled的使用以下是如何使用onDraggableCanceled的示例:LongPressDraggable<int>(//......
  • 在一块开发板上同时实现大模型语音交互和视觉识别
    开发板简介CSK6视觉语音大模型开发套件同时实现了大模型语音交互和视觉识别。功能概述使用聆思CSK6011A芯片作为主控,板载16MBFlash集成摄像头、麦克风、扬声器、屏幕等丰富外设配件配套多模态应用示例,支持快速上手体验大模型语音交互、智能视觉等AI应用板载DAPLINK调试器,外接......
  • LED光源驱动IC降压恒流芯片AP5219最大电流2.5A
    产品描述AP5219是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5V~100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达25W,最大电流2.5A。AP5219可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮模式。AP5219工作频率固定在130KHZ,同时内置抖频电路,可以降低对其......