先上代码:
#include "hw_memmap.h"
#include "hw_types.h"
#include "sysctl.h"
#include "gpio.h"
#include "pwm.h"
#define PD0_PWM0 GPIO_PIN_0
#define PD1_PWM1 GPIO_PIN_1
/*********************************************************************************************************
** Function name: main()
** Descriptions: 主函数
** input parameters: NONE
** output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
int main (void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | /* 配置6MHz外部晶振作为主时钟 */
SYSCTL_USE_OSC |
SYSCTL_OSC_MAIN |
SYSCTL_XTAL_6MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); /* 使能PWM2和PWM3输出所在GPIO */
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); /* 使能PWM模块 */
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /* PWM时钟配置:不分频 */
GPIOPinTypePWM(GPIO_PORTD_BASE, (GPIO_PIN_0 | GPIO_PIN_1)); /* PB0和PB1配置为PWM功能 */
PWMGenConfigure(PWM_BASE, PWM_GEN_1, /* 配置PWM发生器1:加减计数 */
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_SYNC);
PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, 6000); /* 设置PWM发生器1的周期 */
PWMPulseWidthSet(PWM_BASE, PWM_OUT_0, 3000); /* 设置PWM0输出的脉冲宽度 */
PWMPulseWidthSet(PWM_BASE, PWM_OUT_1, 3000); /* 设置PWM1输出的脉冲宽度 */
PWMOutputState(PWM_BASE, (PWM_OUT_0_BIT | PWM_OUT_1_BIT), true); /* 使能PWM0和PWM1的输出 */
PWMGenEnable(PWM_BASE, PWM_GEN_1); /* 使能PWM发生器1, */
/* 开始产生PWM方波 */
for (;;) {
}
}
为什么我用示波器测量PD0、PD1引脚没有电平变化,一直都是低电平。
本帖最后由 guxiangguo 于 2016-3-28 15:35 编辑
同问,我也有类似问题,昨天还行,今天就不行了。。。