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.

[参考译文] tm4c123ghpm:Pb7、pf0引脚始终处于高电平

Guru**** 2124260 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/666126/tm4c123gh6pm-pins-pb7-pf0-are-always-high

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

我正在使用 pb6和 Pb7创建 spwm、但现在无论 我执行什么操作、"即使我正在运行空代码或尝试将设置为0"、引脚始终处于高电平、即使我在调试模式下暂停  

我找不到3.3V 和引脚之间的任何直接短路  

这是我使用的代码

#include 
#include 
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/pin_map.h"#include "driverlib/pinctl.26、22、22、42

、22、22、22、22、22、22、22、22、22、22、22、22、22、2、7、22、22、22、22、22、22、20、22、22、22、22、22、22、22、
44、47、49、52、54、57、59、61、64、64、66、69、69、69、69、69、76、76、78、80、83、85、88、90、92、97、99、
101、103、106、108、110、113、115、117、119、121、124、126、128、138、132、134、136、138、140、142、144、146、
148,150,152,154,156,158,160,162,164,166,168,169,171,173,175,177,178,180,182,184,185,187,188,190,192,193
195,196,198,199,201,202,204,205,207,208,209,211,212,213,216,217,219,221,222,223,224,225,226,227
228229230,231,232,233,234,235,236,237,237,238,239,240,240,241,242,243,243,244,244,245,246,246
247,247,247,247,248,248,248,248,249,249,249,249,249,255,255,255,249,249,249,249,249,249,249,249,249,249,249,249,249,249,248,248,248,247,248,248,247,
248,248,248,248,247,247,247,246,246,245,245,244,244,243,243,242,242,241,240,239,238,237,237,236,235,234
233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,216,215,213,212,211,208,207,205,204
202,201,199,198,196,195,193,192,190,188,187,185,184,182,188,178,177,175,173,171,169,168,166,164,162,160
158,156,154,152,150,148,146,144,142,140,138,136,134,132,130,128,126,124,121,119,117,115,113,1108,106
103,101,99,97,94,94,92,90,88,853,80,76,76,73,76,76,76,664,61,59,57,52,49,47,427,44,39,34,32,30,
27、24、22、19、17、15、12、10、7、5、2、1};
int x=0、en=true;
long map (long、long、long、 long、long);

void
PWM0IntHandler (void)
{

PWMGenIntClear (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD);

if (++x>311){x=0;en=!en;}
if (en=true){
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、0);

PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、MAP (sinus[x]、1、255、0、535));
}
其他
{
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、0);

PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、MAP (SINUS[x]、1、255、0、535));
}
}


int
main (void)
{

SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHz);
SysCtlPWMClockSet (SYSCTL_PWMDIV_1);


SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);

GPIOPinConfigure (GPIO_PB6_M0PWM0);
GPIOPinConfigure (GPIO_PB7_M0PWM1);

GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_6);
GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_7);

PWMGenConfigure (PWM0_BASE、PWM_GEN_0、
PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
//公式:n =(1 / f)* SYSCLK。
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、535);

PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、64);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、66);
PWMOutputInvert (PWM0_BASE、PWM_OUT_0_bit|PWM_OUT_1_BIT、TRUE);

IntMasterEnable();

PWMIntEnable (PWM0_BASE、PWM_INT_GEN_0);

PWMGenIntTrigEnable (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD);

IntEnable (INT_PWM0_0);
IntEnable (INT_PWM0_1);
PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_1_BIT、TRUE);
PWMGenEnable (PWM0_BASE、PWM_GEN_0);
while (1)
{
}


}
长映射(长 x、长 IN_min、长 IN_max、长 OUT_min、长 OUT_max)
{
return (x - IN_min)*(OUT_max - OUT_min)/(IN_max - IN_min)+ OUT_min;
}

谢谢

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

    我认为您的问题是、PD0与 PB6相连、PD1通过 LaunchPad 上的 R9和 R10 0欧姆电阻与 PB7引脚相连。 如果 PD0和 PD1可能将引脚驱动为高电平。 请删除 R9和 R10、然后再次尝试运行您的代码。

    顺便说一下、您在标题中提到了 PF0、但在帖子/代码中没有提到、因此我假设问题仅针对 PB6/7。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的代码剂量不使用 pd0和 pd1、但 pd1在我上传 pf0和 Pb7时也很高、并且一个空代码带有 main、没有其他内容、它们仍然很高
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Samir、您好!

    您是否已从电路板上移除电阻器并确认 PB6和 PB7仍然是高电平?

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

    电阻器之前

    Pb7 -高电平

    Pb6 -低电平

    pf0 -高电平

    pd0 -低电平

    PD1 -高电平

    电阻 器之后

    Pb7 -高电平

    Pb6 -低电平

    pf0 -高电平

    pd0 -低电平

    PD1 -低电平

    我将使用此代码进行测试

    #include 
    #include 
    #include "inc/hw_ints.h"
    #include "inc/hw_memmap.h"
    #include "driverlib/gpio.h"
    #include "driverlib/interrupt.h"
    #include "driverlib/pin_map.h"
    #include "driverlib/pwmp.h"
    #include "driverlib/sysctl.h"
    
    
    
    
    (void main)
    {
    
    SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
    SYSCTL_XTAL_16MHz);
    
    while (1)
    {
    }
    
    
    }
    
    

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

    我应该已经说过具体内容、并确认在运行 PWM 固件时它们始终处于高电平。

    我查看了您发布的原始固件、但我还没有看到任何令我感到遗憾的问题。 当您暂停调试器时、它是否会按预期进入函数内? (要确保您没有遇到 IntDefaultHandler 或其他一些错误/异常)

    如果问题仍然存在、我建议稍微简化代码并仅从一个 PWM 输出启动、然后查看您的示波器上是否正确显示波形。 如果是、则 ISR 语句中的逻辑可能会出现问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使我发布的空代码只有空的主函数、并且不使用任何 ISR、上述引脚也始终与我的操作无关、但仍然是高电平
    当我暂停调试器时、引脚仍然为高电平、没有任何问题会使故障消除
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Samir、您好!

    嗯、我在我自己的 EK-TM4C123GXL LaunchPad 上运行了相同的基本代码、看到 PF0和 PB7保持低电平。 我还运行了您的 PWM 代码、运行正常。

    这是新的 LaunchPad 吗? 您是否认为它有可能受到 ESD 事件的影响? 您能否发布电路板图片、以便我查看引脚/跳线等?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph

    这种情况在本月之前就已经没有变化了、我真的很注意 ESD、这些都是照片

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

    Samir、您好!

    关于 PF0、我认为可能是您的 LaunchPad 仍然存在 NMI 默认值。 请参阅我们关于常见问题的文章的第一项: https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/374640

    这将解释解锁端口的步骤、请尝试将其应用于 LaunchPad、并查看 PF0引脚是否恢复正常功能。

    我还没有发现任何其他关于 PB7问题的报告。 有关该引脚的所有博文都是由于零欧姆电阻器(这就是为什么我坚持将其移除的原因、我们已经多次看到它会导致问题)您是否可以在移除影响 PB7的零欧姆电阻器后尝试在 LaunchPad 上运行代码? 在应用这些更改的情况下运行代码时、您能否提供有关引脚之间观察到的行为的详细信息? 例如、PB6上的 PWM 信号是否正确、PB7在整个过程中保持高电平?

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

    像往常一样,在这种情况下,“亲吻”,“拯救!”

    我可以建议您、"将两个(可疑)引脚编程到 GPIO 输出-然后切换每个引脚。"   这种大多数 "基本测试" 应快速/轻松地确认 "引脚的功能"。

    实际上、"PF0"在2个(可怕的) NMI 引脚中-并且必须先解锁、 然后再强制它进入其(备用)功能。   (GPIO 输出)

    公司/我也是如此-对 PB7失败的回忆很少-除了" 应邀"之外-这些破坏性的"鼠疫病者"的无理延续。   很可能是由于"强制但不必要的互连!"、引脚损坏了!

    作为一种更简单的替代方案-启用您 的"继续运行基于 PWM 的项目"-您是否可以"切换到另一对 PWM 引脚?"   (我相信3个单独的 PWM 发生器引脚组-所有引脚组都出现在(深思熟虑) LPAD 的接头上。)    

    这种方法应该 使您能够"继续进行"、即使您之前记下的引脚已损坏、也是如此!    希望之前的引脚/引脚的"丢失"不会成为可能。  (一个托架..)