请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C129ENCPDT 查看 TM4C129E Launchpad 手册时、第2.1.6节列出了4个板载用户 LED、即 PN1、PN0、PF0和 PF4。 这些文档还指出、PF0和 PF4可由以太网模块控制。 尽管如此,我仍有一个用例,在发生故障时,我希望所有4个 LED 都闪烁。 为了测试我的逻辑、我转到了现有的闪烁示例项目并添加了几行:
#define PORTN_LED GPIO_PIN_0 | GPIO_PIN_1 #define PORTF_LED GPIO_PIN_0 | GPIO_PIN_4 #define PIN_HIGH 0x01 #define PIN_LOW 0x00 int main (void){ volatile uint32_t ui32Loop; SysCtlPeripheralEnable (SYSCTL_Periph_GPION); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); while (!SysCtlPeripheralReady (SYSCTL_Periph_GPION)&&!SysCtlPeripheralReady (SYSCTL_Periph_GPIOF)); //设置方向 GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、PORTN_LED); GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、PORTF_LED); while (1){ //打开引脚 GPIOPinWrite (GPIO_PORTN_BASE、PORTN_LED、PIN_HIGH); GPIOPinWrite (GPIO_PORTF_BASE、PORTF_LED、PIN_HIGH); //延迟 for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +); //关闭引脚 GPIOPinWrite (GPIO_PORTN_BASE、PORTN_LED、PIN_LOW); GPIOPinWrite (GPIO_PORTF_BASE、PORTF_LED、PIN_LOW); //延迟 for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +); } //无法访问 返回0; }
这里的问题是只有 PN0和 PF0闪烁。 更奇怪的是、如果我评论一下:
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、PORTF_LED);
GPIOPinWrite 上的 PF0仍然闪烁。 我更深入地了解 了 TM4C129E 数据表 、并对需要执行额外步骤才能释放 PORTF 上的 GPIO_PIN_0和 GPIO_PIN_4的情况进行了验证。 我想知道 EN0LED[0-2]是否控制了这些引脚?
目前、执行的唯一代码是粘贴在上面的主函数。 我的主要目标是使所有4个 LED 闪烁。 我完全确定这是我的最终问题、我只是不确定如何解决。
如果有任何帮助,将不胜感激。 谢谢!