你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

l来一个定时器(非PWM)驱动的呼吸灯

[复制链接]
wofei1314 发布时间:2016-9-5 13:32
本帖最后由 wofei1314 于 2016-9-5 13:37 编辑

STM32F103,使用定时器驱动GPIO,实现呼吸灯,给有需要的朋友。

单片机使用:
GPIOC
GPIO_Pin15
TIM3
5us定时周期

使用三个全局uint32_t变量(静态变量亦可)

核心代码,写在定时中断里或者没5us定时调用一次,即可实现呼吸灯效果,可根据需要自己调节定时参数...

  1. void LED_Handler(void)
  2. {
  3.     #define INC_VALUE   5
  4.     #define PWM_WITH    1500
  5.     static uint8_t state=0;
  6.    
  7.     ++led_i;
  8.    
  9.   
  10.     if(led_i < led_H)
  11.     {
  12.         GPIOC->ODR |= GPIO_Pin_15;
  13.     }
  14.     else if((led_i >= led_H) && (led_i < led_W))
  15.     {
  16.         GPIOC->ODR &= ~GPIO_Pin_15;
  17.     }
  18.     else
  19.     {
  20.         led_i = 0;
  21.         led_W = PWM_WITH;
  22.         if(state==0)
  23.         {
  24.             led_H += INC_VALUE;
  25.             if(led_H >= PWM_WITH)
  26.             {
  27.                 state = 1;
  28.             }
  29.         }
  30.         else
  31.         {            
  32.             led_H -= INC_VALUE;
  33.             if(led_H <= 100)
  34.             {
  35.                 state = 0;
  36.             }
  37.         }
  38.     }
  39. }
复制代码

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

收藏 2 评论7 发布时间:2016-9-5 13:32

举报

7个回答
lisingch 回答时间:2016-9-5 15:20:58
学习一下,赞!
yfy123 回答时间:2016-9-5 16:50:20
新鲜~~~
wofei1314 回答时间:2016-9-6 15:44:01
lising 发表于 2016-9-5 15:20
学习一下,赞!

多谢支持~
accelerating 回答时间:2016-10-12 17:40:15
学习下
andypanfan 回答时间:2016-12-14 08:52:28
学习下
五哥1 回答时间:2016-12-31 02:07:01
程序写的不错
5265325 回答时间:2017-1-1 12:14:44

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版