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.
int main()
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
GPIOPinConfigure(GPIO_PC5_M0PWM7);
GPIOPinTypePWM(GPIO_PORTC_BASE, GPIO_PIN_5);
PWMGenConfigure(PWM0_BASE, PWM_GEN_3, PWM_GEN_MODE_DOWN |
PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_3, 100);
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3, 25);
PWMOutputState(PWM0_BASE, PWM_OUT_7_BIT, true);
PWMGenEnable(PWM0_BASE, PWM_GEN_3);
while(1)
{
}
}
程序运行后用示波器量相应的引脚,却没有想要的方波出现啊?求大神帮忙看看,什么原因。
怎么讲?我昨晚弄了2个小时发现那个PC5端口要解锁才行,有输出,官方sample里面用的PB0不需要这一步,所以我加了如下:
HWREG(GPIO_PORTC_BASE+GPIO_O_LOCK) = 0x4C4F434B;
HWREG(GPIO_PORTC_BASE+GPIO_O_CR) |= 0XFF;
HWREG(GPIO_PORTC_BASE+GPIO_O_LOCK) =0;
但是新问题来了,现在我PWM有输出,但是去控制风扇却不行。蛋疼啊!!!
我用的风扇是AFB0712LB,兄台有这方面的经验吗?求指教。
风扇那边有3根线,电源,接地,和一根PWM输入的。这个风扇是上电就能转,后面都是通过调节PWM频率来控制风扇的转速。看原理图上面应该是GPIO口输出的PWM信号经过一个芯片把信号源放大来驱动风扇。你说到IO的驱动能力不够,我查看代码发现在设置GPIO的配置时,有设置2mA,8mA之类的这个,好像一般都是用的2mA,可能跟这个有关?试试看吧。可能我说的有些不清楚,见谅哈!