请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C123GXL 我使用的是 Tiva-C 系列 Launchpad 板。
在 PD1中使用 GPIO 时、我尝试在引脚 PB6和 PB7中使用 PWM。
我有以下2个初始化函数:
//
//
//蜂鸣器 GPIO 的配置
//
//*********
void BuzzerInit()
{
//启用此程序使用的外设。
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
ROM_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_1);
ROM_GPIOPinWrite (GPIO_PORTD_base、蜂鸣器_PIN、GPIO_PIN_1);
}
//*********
//
//针对 Gripper 伺服和闪光灯的 PWM 配置
//
//*****************
void ServoFlashLampPWMInit()
{
//M0PWM0
//M0PWM1
//配置 PWM 时钟将系统时钟除以1
ROM_SysCtlPWMClockSet (SYSCTL_PWMDIV_4);
//启用此程序使用的外设。
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_PWM1);
//将 PB6引脚配置为闪烁灯的 PWM
ROM_GPIOPinConfigure (GPIO_PB6_M0PWM0);
GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_6);
//将 PB7引脚配置为伺服 PWM
ROM_GPIOPinConfigure (GPIO_PB7_M0PWM1);
GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_7);
//配置 PWM 选项
//PWM_GEN_0涵盖 M0PWM0和 M0PWM1
PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
//设置周期(以时钟节拍表示)
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、PERIOD_伺 服闪存灯);
//设置闪光灯的 PWM 占空比
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、FLASH_Duty_0);
//为 LOCK_CENTER 的伺服设置 PWM 占空比
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、PERIOD_伺 服闪光灯*48/100);//初始打开
//启用 PWM 发生器
PWMGenEnable (PWM0_BASE、PWM_GEN_0);
//打开输出引脚
PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT、TRUE);
PWMOutputState (PWM0_BASE、PWM_OUT_1_BIT、TRUE);
}
但是、当我尝试使用 GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_1、GPIO_PIN_1)或 GPIOPinWrite (GPIO_PORTD_base、 GPIO_PIN_1、 0);
不管用。 我在 为 端口 D1连接的图片中获得输出(假设从0移位到1)
如果我禁用端口 B6中的 PWM、则端口 D1中的问题消失了、
谢谢!!