-
用SYSTICK延时实现stm32f103ZET6的呼吸灯效果
[color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]今天学习了pwm的原理后,尝试用SYSTICK模拟pwm的占空比变化来实现LED的呼吸效果,但没有成功.是因为不使用GPIO的pwm模式就无法输出模拟电压吗?[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]代码如下:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]int main(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] u32 i;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] LED_Init();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] delay_init();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] while(1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] for(i=0xFFFFF; i>0 ;i--)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] LED_Output_Low();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] delay_ms(1);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] LED_Output_High();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] delay_ms(9);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] for(i=0xFFFFF; i>0;i--)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] LED_Output_Low();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] delay_ms(9);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] LED_Output_High();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] delay_ms(1);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]在两个时间段内赋予不同的占空比,跟pwm的原理应该是一样的,但不知道为什么不能实现呼吸灯效果[/size][/font][/backcolor][/color]
11963浏览量 32回复量 关注量 -
用SYSTICK延时stm32f103ZET6的呼吸灯效果 sos
今天学习了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的原理应该是一样的,但不知道为什么不能实现呼吸灯效果
3465浏览量 0回复量 关注量