[求助] 串口助手发送PWM光源指令,光源显示很奇怪?

xbxdbd   2024-9-10 16:01 楼主

我用串口助手发送指令电亮PWM光源,频率20Khz,发送指令亮度从0-6是由变化的,从7开始一直到亮度99亮度一直是一个样,然后发送100的亮度,亮度反而变低了,请问这个是什么原因?

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	uint8_t ucTemp;

	if(huart ->Instance == USART1)
    {
				ucTemp = aRxBuffer;
				Uart1_RxBuff[Uart1_Rx_Cnt++] = ucTemp;
				if(Uart1_RxBuff[0]!=0xa3)
					Uart1_Rx_Cnt=0;
				if((Uart1_Rx_Cnt==2) && (Uart1_RxBuff[1]!=0xb3))
					Uart1_Rx_Cnt=0;
				if(Uart1_Rx_Cnt==8)
				{
					if(data_test(Uart1_RxBuff))
					{

						/********************
						¸üDÂêy¾Y
						*********************/
						
						turn = Uart1_RxBuff[2];
						pwm = Uart1_RxBuff[3];

						
						
						if(turn == 0)
						{
								pwm_light(0);
						}
						else if(turn == 1)
						{
								pwm_light( pwm);
						}
	
					}
					Uart1_Rx_Cnt = 0;
				}
				
				HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);
    }
}
void  pwm_light(uint8_t pwm)
{

   __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1, pwm);

}


 

  • 99.jpg
  • 100.jpg
  • 串口助手.png

回复评论 (3)

这个得看占空比和亮度控制之间是不是线性的,有很多这样的例子,固定占空比去测试一下

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2024-9-11 08:39

PWM控制器的占空比设置可能存在问题,导致在某些亮度值时占空比没有变化;或者控制软件的逻辑可能存在问题,导致在某些亮度值时无法正确控制PWM输出

点赞  2024-9-11 12:03
引用: yangjiaxu 发表于 2024-9-11 12:03 PWM控制器的占空比设置可能存在问题,导致在某些亮度值时占空比没有变化;或者控制软件的逻辑可能存在问题 ...

整个接受串口逻辑只有这个,然后光源处理逻辑就是PWM_light:   __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1, pwm);

点赞  2024-9-12 08:35
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复