串口助手发送PWM光源指令,光源显示很奇怪?
<p>我用串口助手发送指令电亮PWM光源,频率20Khz,发送指令亮度从0-6是由变化的,从7开始一直到亮度99亮度一直是一个样,然后发送100的亮度,亮度反而变低了,请问这个是什么原因?</p><pre>
<code>void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
uint8_t ucTemp;
if(huart ->Instance == USART1)
{
ucTemp = aRxBuffer;
Uart1_RxBuff = ucTemp;
if(Uart1_RxBuff!=0xa3)
Uart1_Rx_Cnt=0;
if((Uart1_Rx_Cnt==2) && (Uart1_RxBuff!=0xb3))
Uart1_Rx_Cnt=0;
if(Uart1_Rx_Cnt==8)
{
if(data_test(Uart1_RxBuff))
{
/********************
¸üDÂêy¾Y
*********************/
turn = Uart1_RxBuff;
pwm = Uart1_RxBuff;
if(turn == 0)
{
pwm_light(0);
}
else if(turn == 1)
{
pwm_light( pwm);
}
}
Uart1_Rx_Cnt = 0;
}
HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);
}
}
voidpwm_light(uint8_t pwm)
{
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1, pwm);
}
</code></pre>
<p> </p>
<p>这个得看占空比和亮度控制之间是不是线性的,有很多这样的例子,固定占空比去测试一下</p>
<p>PWM控制器的占空比设置可能存在问题,导致在某些亮度值时占空比没有变化;或者控制软件的逻辑可能存在问题,导致在某些亮度值时无法正确控制PWM输出</p>
yangjiaxu 发表于 2024-9-11 12:03
PWM控制器的占空比设置可能存在问题,导致在某些亮度值时占空比没有变化;或者控制软件的逻辑可能存在问题 ...
<p>整个接受串口逻辑只有这个,然后光源处理逻辑就是PWM_light: __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1, pwm);</p>
页:
[1]