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

stm32f411上手试玩第一个工程----呼吸灯

[复制链接]
112207301219 发布时间:2015-8-8 16:57
在解决了pack问题后,我建了第一个工程,写了个呼吸灯。新建工程我参照的下面这个帖子,写的很详细,很好。https://www.stmcu.org.cn/module/ ... &highlight=f411

不多说,上代码:


/***************bsp_led.c**********************/
#include "bsp_led.h"
void LED_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//??LED?IO??
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;                              
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;      
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;      
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;                 
        GPIO_Init(GPIOA,&GPIO_InitStructure);
}

/*********************************************/



/***************bsp_led.h**********************/


#ifndef _BSP_LED_H_
#define _BSP_LED_H_
#include "stm32f4xx.h"
#define ON 1
#define OFF 0
#define LED(a) if(a) GPIO_SetBits(GPIOA,GPIO_Pin_5); else GPIO_ResetBits(GPIOA,GPIO_Pin_5)
void LED_GPIO_Config(void);
#endif

/*********************************************/


main.c
/***************main.c**********************/
#include "stm32f4xx.h"
#include "bsp_led.h"
#define N 1
void Delay(__IO uint32_t nCount)

{
         while(nCount--){}
}
int main(void)
{   
        const long num=4000;
        long i=1;
        char flag=0;
        LED_GPIO_Config();// LED IO --PA5
        while (1)
        {
                LED(ON);
                Delay((num-i)*N);
                LED(OFF);
                Delay(i*N);
                if(flag==0)
                {
                        i++;
                }
                else if(flag==1)
                {
                        i--;
                }
                if(i>=(num-1))
                        flag=1;
                else if(i<=1)
                        flag=0;
        }
}
/*********************************************/










呼吸灯20150804.rar

下载

1.37 MB, 下载次数: 54

呼吸灯

收藏 1 评论18 发布时间:2015-8-8 16:57

举报

18个回答
112207301219 回答时间:2015-9-6 19:14:35
wu1169668869 发表于 2015-9-1 20:25
所以竟然是软件模拟的呼吸灯orz

失望了吧,第一个工程一般都是点个灯嘛,就像hello world一样
112207301219 回答时间:2015-9-6 19:20:10
112207301219 发表于 2015-9-6 19:19
用延时函数也可以达到同样的效果

周期性改变延时的时间,就等同于周期性改变占空比
112207301219 回答时间:2015-9-6 19:20:56
112207301219 发表于 2015-9-6 19:20
周期性改变延时的时间,就等同于周期性改变占空比

所以没有想象中那么高大上
沐紫 回答时间:2015-8-10 09:59:46
谢谢楼主
嵌入式wcb 回答时间:2015-8-31 21:43:46
楼主,你好,请问有没有用stm32f429做过呼吸灯呢,请教!
拉肚肚 回答时间:2015-9-1 08:59:54
楼主,呼吸灯还有别的方式么
yanhaijian 回答时间:2015-9-1 09:10:27
同志仍需努力。
皈依 回答时间:2015-9-1 09:38:10
上手就玩呼吸灯~高大上啊
112207301219 回答时间:2015-9-1 20:13:14
嵌入式wcb 发表于 2015-8-31 21:43
楼主,你好,请问有没有用stm32f429做过呼吸灯呢,请教!

只要能点亮一个led就行
112207301219 回答时间:2015-9-1 20:15:26
拉肚肚 发表于 2015-9-1 08:59
楼主,呼吸灯还有别的方式么

还可以用pwm,定时器中断改占空比
112207301219 回答时间:2015-9-1 20:16:06
guiyi 发表于 2015-9-1 09:38
上手就玩呼吸灯~高大上啊

和点亮一个led本质上没有区别
wu1169668869 回答时间:2015-9-1 20:25:51
所以竟然是软件模拟的呼吸灯orz
皈依 回答时间:2015-9-2 08:07:15
112207301219 发表于 2015-9-1 20:16
和点亮一个led本质上没有区别

..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。
112207301219 回答时间:2015-9-6 19:12:16
用延时函数也可以达到同样的效果
天涯水乡 回答时间:2015-9-6 19:17:29
不错不错啊
112207301219 回答时间:2015-9-6 19:19:09
guiyi 发表于 2015-9-2 08:07
..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。

用延时函数也可以达到同样的效果
12下一页

所属标签

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