定时器和for循环开关输出不一样
想用定时器控制开关进行循环,按说应该是输出类似于方波的信号,但是定时器控制的结果却跟载波了一样然后我就在while循环里用for循环进行延时,得到的结果是对的,这是为什么啊?
把你的逻辑判断精简下,翻转有专门的函数HAL_GPIO_TogglePin eric2013 发表于 2023-6-5 10:06
把你的逻辑判断精简下,翻转有专门的函数HAL_GPIO_TogglePin
改成下面的了,还是和原来一样
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
///////////////////////////////////////*开关控制*///////////////////////////////////////
if(htim == &htim1)
{
LightChange ++;
if(LightChange == 1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
LightType = 0x31;
}
if(LightChange == 2)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
LightType = 0x32;
}
if(LightChange == 3)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);
LightType = 0x30;
}
if(LightChange == 4)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);
LightType = 0x32;
LightChange = 0;
}
}
} 把你代码分享到百度云,晚上有时间了我给你测试下,按说这个挺简单的。 示波器放大了看,应该是没问题的。可能使用定时器的周期很短,一起看看起来这样子而已。 eric2013 发表于 2023-6-5 11:11
把你代码分享到百度云,晚上有时间了我给你测试下,按说这个挺简单的。
这是百度网盘的链接
链接:https://pan.baidu.com/s/1yUTSiKwHVWrWLG1EREQTQw
提取码:4qvo
我自己生成了个,测试正常。
eric2013 发表于 2023-6-6 01:02
我自己生成了个,测试正常。
懂了懂了,谢谢大佬。
页:
[1]