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.

[参考译文] EK-LM4F120XL:问题:切换 GPIO 上的输出/输入

Guru**** 2443910 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/630221/ek-lm4f120xl-problem-switching-output-input-on-gpio

器件型号:EK-LM4F120XL

您好社区!
将 GPIO 类型从输出切换到输入时出现问题。
我正在处理端口 D 的引脚1。首先、我从 PCB 上移除电阻器 R9/R10。

在我的代码中、启用外设

SysCtlPeripheralEnable() 
SYSCTL_PERIPH_GPIOD
);

接下来、配置引脚

GPIOPinTypeGPIOOutputOD(
GPIO_PORTD_base、
GPIO_PIN_1
); 

在我的代码的某个部分中、我更改 GPIO 类型

GPIOPinTypeGPIOInput (
GPIO_PORTD_base、
GPIO_PIN_1
); 

但是、我到达了 GDB 中的 FaultISR。

我的软件工具:

  • OpenOCD v0.10.0
  • 工具链 gcc-arm-none-eabi v5_4-2016q3

有人可以指导我尝试解决此问题?

提前感谢。

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

    LM4F LaunchPad 已替换为以下电路板: www.ti.com/.../ek-tm4c123gxl

    请将平台切换到此 LaunchPad、然后使用我们最新的 TivaWave、然后再次尝试实现您的应用。

    此外、如果您在使用 TivaWare 的 TM4C 平台上遇到问题、请确保在未来的帖子中包含完整的源代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    固/我具有相同(非常早)的电路板-我们的(虽然有限-在过去没有带 MCU 的 PWM 感应器)工作正常!

    虽然您的电路板丝网印刷电路板可能会读取 LM4F - MCU (清晰)标记为 LX4F!

    注意:任何 LX4F (未生成/未生成 LM4F!) 已被规范为在 StellarisWare 下工作-不是更新的 RebrandWare!   (较新的 pin_map.h 文件无法容纳 LX/LM 设备!)  使用 StellarisWare 9453……   您使用的"OpenOCD"会使您远离畜群-使帮助变得更加困难。

    您是否可以按照以下顺序操作-然后重复代码运行?

    • 在"SysCtlPeripheralEnable()"之后、添加一个延迟和/或针对外设的测试"就绪"。
    • 消除(暂时)您的"更改"GPIO 类型"。   (即仅选择一个-请勿更改。)   
    • 然后运行代码-您是否再次到达(带输入(可怕) Fault_ISR?
    • 如果成功-将"GPIO Type"更改为另一个配置。  运行代码。  记录结果。
    • 如果两个"一个不变的 GPIO 类型"都成功(单独运行)-那么这种" GPIO 类型的改变"不太可能证明问题的发生。
    • 正如 (此处被错误禁止)"kiss" 所教授的那样-将代码减少到最低-在某个时候、代码可能会"退出"Fault_isr"!    这种方法最常用于发现"问题的原因"。  显然、这是 GPIO 类型的改变!

    虽然(始终)未声明-我怀疑您(可能)正在尝试"单线"通信-因此需要将 GPIO 从"输入到输出"进行切换。   这是经常实现的-无需更换您的电路板!