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.

[参考译文] TM4C1294NCPDT:如何将 TM4C1294NCPD 的 GPIO 引脚 PJ0设置为具有下拉电阻器的输入

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/997067/tm4c1294ncpdt-how-to-set-up-gpio-pin-pj0-of-tm4c1294ncpd-as-an-input-with-a-pull-down-resistor

器件型号:TM4C1294NCPDT

大家好、

我们的客户希望了解如何将 TM4C1294NCPD 的 GPIO 引脚 PJ0设置 为具有下拉电阻器的输入。 以下是他的源代码。

void SW_Init (void){
SYSCTl->RCGCGPIO |= 0x00000100;//激活端口 J 的时钟
while ((sysctl->PRGPIO&0x00000100)==0){;}//允许时钟稳定

GPIOJ_AHB->DIR &=~0x01;//在//& PJ1中生成 PJ0
GPIOJ_AHB->AFSEL &=~0x01;//禁用 PJ0和 PJ1上的 alt funt
GPIOJ_AHB->PUR |= 0x00;//禁用 PJ0上的上拉
GPIOJ_AHB->PDR |= 0x01;//启用 PJ0上的下拉
GPIOJ_AHB->DEN |= 0x01;//在 PJ0上启用数字 I/O //& PJ1
GPIOJ_AHB->AMSEL &=~0x01;//禁用 PJ0上的模拟功能// PJ1
GPIOJ_AHB->PCTL =(GPIOJ_AHB->PCTL & 0xFFFFFFF0)+0x00000000;

GPIOJ_AHB->IM &=~0x01;//在编程 GPIO、GPIOBE、GPIOEV 之前清除 GPIOIOM
GPIOJ_AHB->ICR|= 0x01;//清除中断标志
GPIOJ_AHB->IS &=~0x01;// PJ0是边沿敏感型// PJ1是
GPIOJ_AHB->IBE &=~0x01;// PJ0 & PJ1中断由单边沿触发
// GPIOJ_AHB->IEV &=~0x01;// PJ0中断由下降沿触发
GPIOJ_AHB->IEV |= 0x01;// PJ0中断由上升沿触发
GPIOJ_AHB->IM |= 0x01;//启用 PJ0 //& PJ1


NVIC_EN1_R |=0x00080000;//启用中断编号51 (即 EN1中的位19)
NVIC_PRI12_R =(NVIC_PRI12_R&0x00FFFFFF)|0x8000000;//在 PRI12寄存器的 INTD 中将优先级值设置为4。 (第159/160页)

感谢您的支持。

此致、

Danilo

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

    您好 Danilo、

    我们不建议客户使用此类直接寄存器调用对 TM4C 器件进行编程、我们通常不支持 E2E 上的此类问题。 他们应该下载 TivaWare 并使用我们的 driverlib 来轻松完成此操作。

    TivaWare: https://www.ti.com/tool/SW-TM4C

    TivaWare 中的代码如下:

        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
        while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOJ))
        {
        }
        
        GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN);
        GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0,
                         GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
        GPIOIntTypeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_RISING_EDGE);
        GPIOIntEnable(GPIO_PORTJ_BASE, GPIO_INT_PIN_0);

    查看客户是否接受此解决方案。

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

    您好、Ralph、

    非常感谢您的回答和建议。

    此致、

    Danilo