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.

[参考译文] TM4C1230D5PM:TM4C1230D5PM PWM

Guru**** 1927770 points
Other Parts Discussed in Thread: TM4C1230D5PM, TM4C123GH6PM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/693484/tm4c1230d5pm-tm4c1230d5pm-pwm

器件型号:TM4C1230D5PM
主题中讨论的其他器件: TM4C123GH6PM

您好!

我一直在围绕 TM4C123G LaunchPad 开发一个系统、现在我开发了一个使用 TM4C1230D5PM 的 PCBA、我正在努力使现有代码正常工作、从而驱动 PWM 输出。 相同的代码在 LaunchPad 上运行。

这是设置 PWM 输出的代码。


//配置 PWM 时钟将系统时钟除以64
SysCtlPWMClockSet (SYSCTL_PWMDIV_64);

//启用此程序使用的外设。
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM1);

//将 PF3引脚配置为 PWM
GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_3);

//配置 PWM 选项
PWMGenConfigure (PWM1_base、PWM_GEN_3、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);

//设置周期(以时钟节拍表示)
PWMGenPeriodSet (PWM1_base、PWM_GEN_3、周期);

//设置 PWM 占空比
PWMPulseWidthSet (PWM1_base、PWM_OUT_7、50);

//启用 PWM 发生器
PWMGenEnable (PWM1_base、PWM_GEN_3);

//打开输出引脚
PWMOutputState (PWM1_base、PWM_OUT_7_bit、true);
PWMPulseWidthSet (PWM1_base、PWM_OUT_7、0);

} 

执行此行时代码失败

PWMGenConfigure (PWM1_base、PWM_GEN_3、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);

当我检查出现故障的线路时、我注意到 PWM 1的寄存器地址为0x40029000。

从 TM4C1230D5PM 数据表中、该地址被保留、我看不到 PWM 0或1的地址、而 TM4C123GH6PM 中使用的地址被保留。

我需要做什么来驱动 PWM 输出?

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

    TM4C1230D5PM 没有 PWM 模块。

    通过观察寄存器37:存在脉宽调制器外设、可以在数据表中看到这一点、此外、我们的产品选择器封装准确地指示您选择的 MCU 没有 PWM 模块。

    0x4002.9000的地址确实出现在 TM4C123GH6PM 数据表中、专门针对 PWM 1。

    此外、您的图片看起来不像在论坛上正确上传、如果需要提供添加的信息、请尝试重新上传。

    您可以尝试将计时器模块用于 PWM 目的。 有关该特性的详细信息、请参阅数据表中"通用定时器"下的"PWM 模式"部分。