This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMDX570LC43HDK:TMDX570LC43HDK 按钮控制

Guru**** 2382270 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1514206/tmdx570lc43hdk-tmdx570lc43hdk-button-control

部件号:TMDX570LC43HDK

工具/软件:

您好、

我想用按钮控制 LED 闪烁。 但我无法控制按钮状态。  

如何用主板上的按钮(GIOA7)使 LED 闪烁?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我解决了我的问题。

    我的解决方案如下、LED 指示灯闪烁、按一下按钮。

    我不明白为什么 DIN 寄存器的第6位是2。

    代码:

    /**@文件 hl_sys_main.c
    *@应用程序主文件简介
    *@日期2018年12月11日
    *@版本04.07.01
    *
    *此文件包含一个空的 main 函数,
    *可用于应用程序。
    */

    /*
    *版权所有(C) 2009-2018德州仪器(TI)公司- www.ti.com
    *
    *
    *重新分发和使用源代码和二进制格式,无论有无
    *允许修改,前提是满足以下条件
    *符合:
    *
    *源代码的重新分发必须保留上述版权
    *声明、本条件列表和以下免责声明。
    *
    *二进制形式的再发行必须复制上述版权
    *声明、本条件列表和中的下述免责声明
    *随附的文档和/或其他材料
    *分发。
    *
    *德州仪器(TI)公司的名称和名称都不是
    *其贡献者可用于认可或推广衍生产品
    *未经事先书面许可,从本软件下载。
    *
    *本软件由版权持有者和贡献者提供
    "按现状"和"按可得到"的基础提供的任何明示或暗示的保证,包括但不限于
    仅限于对适销性和适用性的暗示保证
    *不承认特定目的。 在任何情况下均不得使用版权
    *所有者或贡献者对任何直接、间接、附带、
    *特殊、惩戒性或后果性损害(包括但不包括
    不会侵犯任何第三者对该物品享有的物权,或版权、专利、商标、商业秘密或其他知识产权;
    *数据,或利润;或业务中断)然而引起和任何
    *责任理论,无论是在合同,严格责任,还是 TORT
    *(包括疏忽或其他)在使用中以任何方式产生
    *本软件,即使被告知可能发生此类损坏。
    *
    */


    /*用户代码开头(0)*/
    /*用户代码结束*/

    /*包含文件*/

    #include "HL_sys_common.h"
    #include "HL_het.h"
    #include "HL_Gio.h"

    /*用户代码开头(1)*/
    /*用户代码结束*/

    /**@fn void main (void)
    *@简短的应用程序主函数
    *@请注意,此函数默认为空。
    *
    *此函数在启动后调用。
    *用户可以使用此功能来实现应用程序。
    */

    /*用户代码开头(2)*/
    易失性 uint32_t 按钮;

    /*用户代码结束*/

    内部 main (void)

    /*用户代码开头(3)*/
    hetInit();
    gioInit();

    gioSetDirection (hetPORT1、
    (1 << 0)|
    (1 << 5)|
    (1 << 17)|
    (1 << 18)|
    (1 << 25)|
    (1 << 27)|
    (1 << 29)|
    (1 << 31));

    while (1){

    按钮= gioPORTA->DIN >> 6;

    if (button == 0){
    gioSetPort (htPORT1、
    (1 << 0)|
    (1 << 5)|
    (1 << 17)|
    (1 << 18)|
    (1 << 25)|
    (1 << 27)|
    (1 << 29)|
    (1 << 31));
    }

    否则 if (button == 2){
    gioSetPort (htPORT1、
    (0 << 0)|
    (0 << 5)|
    (0 << 17)|
    (0 << 18)|
    (0 << 25)|
    (0 << 27)|
    (0 << 29)|
    (0 << 31));
    }

    }

    /*用户代码结束*/


    }


    /*用户代码开头(4)*/
    /*用户代码结束*/