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.

[参考译文] TM4C1231H6PM:CAN#39;t 获取中断以在端口 A 上工作

Guru**** 2454020 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/638552/tm4c1231h6pm-can-t-get-interrupt-to-work-on-port-a

器件型号:TM4C1231H6PM
Thread 中讨论的其他器件:EK-TM4C123GXL

我在其他端口上有几个正常工作的中断、但我无法使中断在端口 A 上工作。 工作方式如下:

   // RmtRxd 中的 B0
   // B1 out RmtTxd
   // B2 out SCL      LCD
   // B3 I/O SDA      LCD
   // B4输入 模式开关
   // B5在 锁定开关中
    // TP37      pu 中的 B6
    // TP15      pu 中的 B7

   // I2C0 & UART1 //

   GPIO_PORTB_AFSEL_R |=  0x0F;      // Alt 功能: I2C0和 UART1。
   GPIO_PORTB_PCTL_R &=~Ω(0x00001111);   //将多路复用器引脚连接到 I2C0和 UART1。
   GPIO_PORTB_PCTL_R |=  0x00001111;      //
   GPIO_PORTB_ODR_R  |=  0x08;      //开漏极垫。

   GPIO_PORTB_DATA_R = 0x02;         //输出高电平。
   GPIO_PORTB_PUR_0xC0 ;         //上拉。
   GPIO_PORTB_DIR_= 0x02;         //输出。
   GPIO_PORTB_DEN_R = 0xFF;         //全部打开。

   IntRegister (INT_GPIOB、PortB_Interrupt);         //寄存器中断处理程序。
   GPIO_PORTB_IBE_R = MODE_Button_BIT | LOCK_button_BIT;   //在两个边沿上中断。
   GPIO_PORTB_IM_R  = MODE_Button_BIT | LOCK_button_BIT;   //启用中断。

请注意 MODE_BUTTON_BIT 为0x10、LOCK_button_bit 为0x20。

但以下情况不起作用:

   // A0 in RxD/
   // A1 out TXD/
    //在 TP33      pu 中为 A2
   // BattPwrSense       v6.0中的 A3
    //在 TP35      pu 中为 A4
    // TP36      pu 中的 A5
   // A6 (输出) SCL2      USB
   // A7 (I/O) SDA2      USB PU


   GPIO_PORta_AFSEL_R = 0x03;             // Alt 功能: UART0。
   GPIO_Porta_PCTL_R = 0x00000011;      //

   GPIO_PORta_PUR_R = 0xB4;         //上拉。

   GPIO_PORta_den_R = 0x0B;         //全部打开。

   IntRegister (INT_GPIOA、PORTA_Interrupt);//寄存器中断处理程序。
   GPIO_PORta_IBE_R = PA_SW_SENSE_BIT;    //在两个边沿上中断。
   GPIO_PORta_IM_R = PA_SW_SENSE_BIT;    //启用中断。

谢谢、Doug

P.S.、如果需要、我将使用 Sourcery CodeBench IDE。

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

    Doug、您好!

    我们不支持使用寄存器级调用/命令的应用、请使用我们的 TivaWare 软件包、它已经为您处理该级别的控制。 已经包含中断示例、一旦您安装 TivaWare、您可以在 [Install Path]\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\interrupts 找到一个

    TivaWare 的编写旨在提供大量 API、使您能够设置 TM4C 器件并启用应用、而无需担心如何初始化/配置外设的所有微小细节。 由于我们投入了大量时间来使 TivaWare 可用于客户面临的所有应用、因此我们不再支持寄存器级代码。 因此、为了获得 TM4C 器件的支持、我们要求您使用 TivaWare 作为起点。 如果您在这方面遇到挑战、我们很乐意为您提供帮助。

    您可以从 http://www.ti.com/tool/sw-tm4c 下载最新的 TivaWare 版本