硬汉嵌入式论坛

 找回密码
 立即注册
查看: 490|回复: 7
收起左侧

[有问必答] 定时器和for循环开关输出不一样

[复制链接]

5

主题

11

回帖

26

积分

新手上路

积分
26
发表于 2023-6-5 09:49:18 | 显示全部楼层 |阅读模式
  想用定时器控制开关进行循环,按说应该是输出类似于方波的信号,但是定时器控制的结果却跟载波了一样

然后我就在while循环里用for循环进行延时,得到的结果是对的,这是为什么啊?

定时器中端配置

定时器中端配置

定时器回调

定时器回调

定时器输出结果

定时器输出结果

while循环内代码

while循环内代码

while循环输出

while循环输出
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-6-5 10:06:12 | 显示全部楼层
把你的逻辑判断精简下,翻转有专门的函数HAL_GPIO_TogglePin
回复

使用道具 举报

5

主题

11

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2023-6-5 10:55:05 | 显示全部楼层
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;

                }
        }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-6-5 11:11:15 | 显示全部楼层
把你代码分享到百度云,晚上有时间了我给你测试下,按说这个挺简单的。
回复

使用道具 举报

75

主题

685

回帖

910

积分

金牌会员

积分
910
发表于 2023-6-5 11:20:21 | 显示全部楼层
示波器放大了看,应该是没问题的。可能使用定时器的周期很短,一起看看起来这样子而已。
回复

使用道具 举报

5

主题

11

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2023-6-5 11:38:24 | 显示全部楼层
eric2013 发表于 2023-6-5 11:11
把你代码分享到百度云,晚上有时间了我给你测试下,按说这个挺简单的。

这是百度网盘的链接
链接:https://pan.baidu.com/s/1yUTSiKwHVWrWLG1EREQTQw
提取码:4qvo
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-6-6 01:02:57 | 显示全部楼层
F407IGT.7z (626.46 KB, 下载次数: 2)


我自己生成了个,测试正常。

下载 (2).png
回复

使用道具 举报

5

主题

11

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2023-6-6 11:13:33 | 显示全部楼层
eric2013 发表于 2023-6-6 01:02
我自己生成了个,测试正常。

懂了懂了,谢谢大佬。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 18:04 , Processed in 0.185682 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表