我正在尝试编写代码,将一些值作为uart的占空比,并将它们写入pwm输出,以驱动6个电机。
PWM_Init();
UART_Init();
char x;
uint32_t y;
uint32_t sum[6]={0,0,0,0,0,0};
uint32_t i,j,k;
while(1)
{
for(k = 0 ; k < 7 ; k++)
{
sum[k] = 0;
}
////////////////
for(i=0; i<7; i++)
{
for(j = 0 ; j < 3 ; j++)
{
x = UART_InChar();
y = (x -'0') * pow(10,2-(j));
sum[i] += y;
}
}
//////////////////
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_0,5000 - sum[0]);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_1,5000 - sum[1]);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_2,5000 - sum[2]);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_5,5000 - sum[3]);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_6,5000 - sum[4]);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_7,5000 - sum[5]);
}
调试第二个for循环时超过7,并且有时继续运行i值大且可能无限大。我不知道这个的原因以及如何解决这个问题。