1.软件及工程环境搭建
- 就不介绍了,可以直接用现成的
链接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ
提取码:dy63
- 相关库文件
链接:https://pan.baidu.com/s/19PLYdtiuSoZZGdVD7_tumQ
提取码:mrw8
2.GPIO实现led呼吸灯
- 首先添加一下库函数
- 看一下开发板原理图
得到对应的PC10,PC11,PC13
- 什么都不要说直接上代码
- 先LED初始化
void LEDInit(void)
{
GPIO_InitTypeDef GPIO;//自定义GPIO
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//外部时钟C使能
GPIO.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10;//选择引脚
GPIO.GPIO_Mode = GPIO_Mode_OUT;//选择模式
GPIO.GPIO_OType = GPIO_OType_PP;//选择类型寄存器
GPIO.GPIO_Speed = GPIO_Speed_50MHz;//选择速度
GPIO.GPIO_PuPd = GPIO_PuPd_NOPULL;//选择上下拉
GPIO_Init(GPIOC,&GPIO);//写入寄存器
GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10);//输出高电频关灯
//GPIO_ResetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10); //输出低电频开灯 //输出低电频关灯
}
void dalyg(int n)
{
int i;
for(i=0;i<n;i++);
}
void ledbreath(int t,int i)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_ResetBits(GPIOC,GPIO_Pin_11);
GPIO_SetBits(GPIOC,GPIO_Pin_11);
GPIO_ResetBits(GPIOC,GPIO_Pin_10);
GPIO_SetBits(GPIOC,GPIO_Pin_10);
dalyg(i);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
GPIO_SetBits(GPIOC,GPIO_Pin_11);
GPIO_ResetBits(GPIOC,GPIO_Pin_11);
GPIO_SetBits(GPIOC,GPIO_Pin_10);
GPIO_ResetBits(GPIOC,GPIO_Pin_10);
dalyg(t-i);
}
LEDInit();
int DeyTim=8000,i;
while(1)
{
for(i=1;i<DeyTim;i+=1)//这两个参数随便调,只要效果明显就行了,先开始i增加占空比在增大
{
ledbreath(DeyTim,i);
}
dalyg(100);
for(i=DeyTim;i>1;i-=1)//后占空比开始减小
{
ledbreath(DeyTim,i);
}
dalyg(100);
}
- 到此完美实现led呼吸灯,最后感谢大家阅读,如果需要其他相关资料请联系我。