打印

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

[复制链接]
11965|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1120202397|  楼主 | 2021-9-4 07:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天学习了pwm的原理后,尝试用SYSTICK模拟pwm的占空比变化来实现LED的呼吸效果,但没有成功.是因为不使用GPIO的pwm模式就无法输出模拟电压吗?
代码如下:
int main(void)
{
      
        u32 i;
        LED_Init();
        delay_init();
      
        while(1)
        {
                for(i=0xFFFFF; i>0 ;i--)
                {
                        LED_Output_Low();
                        delay_ms(1);
                        LED_Output_High();
                        delay_ms(9);
                }
               
                for(i=0xFFFFF; i>0;i--)
                {
                        LED_Output_Low();
                        delay_ms(9);
                        LED_Output_High();
                        delay_ms(1);
                }
        }
      
}


在两个时间段内赋予不同的占空比,跟pwm的原理应该是一样的,但不知道为什么不能实现呼吸灯效果

使用特权

评论回复
沙发
小驴友| | 2021-9-7 08:46 | 只看该作者

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

没这么编过

使用特权

评论回复
板凳
aspoke| | 2021-9-8 14:20 | 只看该作者
这个就是延时了吧     

使用特权

评论回复
地板
232321122| | 2021-9-8 14:20 | 只看该作者
为什么不使用pwm呢?   

使用特权

评论回复
5
ghuca| | 2021-9-8 14:20 | 只看该作者
真没有用过呢。      

使用特权

评论回复
6
soodesyt| | 2021-9-8 14:21 | 只看该作者
pwm的原理简单多了。   

使用特权

评论回复
7
plsbackup| | 2021-9-8 14:21 | 只看该作者
还如使用定时器了。   

使用特权

评论回复
8
kmzuaz| | 2021-9-8 14:21 | 只看该作者
这个频率太低了。   

使用特权

评论回复
9
qiufengsd| | 2021-9-8 14:21 | 只看该作者
100hz的频率更快。     

使用特权

评论回复
10
ccook11| | 2021-9-8 14:22 | 只看该作者
SYSTICK延时可以延时us     

使用特权

评论回复
11
sheflynn| | 2021-9-8 14:22 | 只看该作者
用SYSTICK浪费资源   

使用特权

评论回复
12
mnynt121| | 2021-9-8 14:22 | 只看该作者
如果添加其他功能呢?这个就不可以使用了吧。   

使用特权

评论回复
13
longyifei| | 2021-9-8 23:06 | 只看该作者

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

PWM是在某个固定的周期内分别出现高电平和低电平,然后运行一段时间才能看出效果,好家伙,你这个代码 第一个周期刚执行一次,眼睛还没反应过来,就改变高低电平的时间,然后这个周期结束 又改回去。这样眼睛是反应不过来的

使用特权

评论回复
14
冬雨521528| | 2021-9-9 23:53 | 只看该作者

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

SYSTICK延时更准确,虽然浪费资源,但是学习还是值得练手的

使用特权

评论回复
15
海洋无限| | 2021-9-24 14:47 | 只看该作者

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

理解systick的绝佳例程

使用特权

评论回复
16
redone| | 2021-9-24 16:22 | 只看该作者
我还奇怪呢,这样也能行?

之所以会出现呼吸灯的效果,
是因为PWM调制,结果是改变了LED的供电电压,
这个同开关电源的基础原理是一样的。

使用延迟,
首先,你的频率不好处理,
其次,你的脉宽变换,要改变多少不同的延迟呢?

使用特权

评论回复
17
cool_coder| | 2021-9-27 22:03 | 只看该作者

用SYSTICK延时实现stm32f103ZET6的呼吸灯效果

硬件 PWM 可以做到几十~上百 kHz,并且频率稳定度和系统时钟是一致的。

使用特权

评论回复
18
tpgf| | 2021-10-4 11:55 | 只看该作者
可以添加其他功能吗

使用特权

评论回复
19
aoyi| | 2021-10-4 11:57 | 只看该作者
实验效果怎么样

使用特权

评论回复
20
drer| | 2021-10-4 12:04 | 只看该作者
速度能达到多块啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝