TMS320F280049学习4:GPIO输入检测

发布于:2024-06-07 ⋅ 阅读:(135) ⋅ 点赞:(0)

TMS320F280049学习4:GPIO输入检测


前言

DSP的内部输入上拉是弱上拉,上拉后的电压只有2.1V左右,需要外部加上拉电阻,具体参考这篇文章

一、工程代码

#include "driverlib.h"
#include "device.h"

#define DRV_LED2_PIN                        23
#define DRV_BUTTON_PIN                      11
#define DELAY_MS(MS)                        DEVICE_DELAY_US((long double)MS * 1000)

/*******************************************************************************
* 函 数 名         : led_init
* 输    入         : 空
* 输    出         : 空
* 函数功能         : LED初始化
* 详细描述         : 空
*******************************************************************************/
void led_init(void)
{
    //设置GPIO模式
    GPIO_setPadConfig(DRV_LED2_PIN, GPIO_PIN_TYPE_STD);
    //设置GPIO方向
    GPIO_setDirectionMode(DRV_LED2_PIN, GPIO_DIR_MODE_OUT);
}

/*******************************************************************************
* 函 数 名         : button_init
* 输    入         : 空
* 输    出         : 空
* 函数功能         : 按钮初始化
* 详细描述         : 空
*******************************************************************************/
void button_init(void)
{
    //设置GPIO模式
    GPIO_setPadConfig(DRV_BUTTON_PIN, GPIO_PIN_TYPE_PULLUP);
    //设置GPIO方向
    GPIO_setDirectionMode(DRV_BUTTON_PIN, GPIO_DIR_MODE_IN);
}

/*******************************************************************************
* 函 数 名         : main
* 输    入         : 空
* 输    出         : 空
* 函数功能         : 主函数
* 详细描述         : 空
*******************************************************************************/
void main(void)
{
    //初始化时钟和外设
    Device_init();
    //解锁GPIO配置
    Device_initGPIO();

    led_init();
    button_init();

    //初始化PIE并清空PIE寄存器,关闭CPU中断
    Interrupt_initModule();
    //初始化PIE向量表
    Interrupt_initVectorTable();
    //使能中断
    EINT;
    //使能调试事件
    ERTM;

    while(1)
    {
        GPIO_writePin(DRV_LED2_PIN, !GPIO_readPin(DRV_BUTTON_PIN));
        DELAY_MS(10);
    }
}

总结

下一步,GPIO输入中断。


网站公告

今日签到

点亮在社区的每一天
去签到