STM32跑马灯-库函数

跑马灯实验的工程模板以及具体的工程模板修改步骤我这里就不说了,正点原子教学视频里讲的已经非常清楚了,在这里主要用到的3个文件以及文件中相关函数及寄存器的作用在这里我以注释的形式给出。

 

1.led.h

#ifndef __LED_H
#define __LED_H
#include "sys.h"

//LED端口定义
#define LED0 PFout(9)	// DS0
#define LED1 PFout(10)	// DS1	 

void LED_Init(void);//初始化		 				    
#endif

2.led.c

这里的步骤为:使能GPIO时钟->调用GPIO_init(a,b),b参数需要自己定义以及配置相关寄存器,切勿忘记使能时钟。

#include "led.h" 


void LED_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  //切勿忘记使能GPIO是时钟
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //设置为输出模式
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  //上拉浮空
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //速度选择为100MHz
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     //推挽输出

  GPIO_Init(GPIOF, &GPIO_InitStructure);
  GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);//Pin9 | Pin10全部置为高电平
  
}




3.main.c

main函数在初始时要初始化delay(这里规范化为168)->初始化LED->循环控制跑马灯

#include "led.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"


int main()
{
	delay_init(168);
	LED_Init();

	while(1) {
		GPIO_ResetBits(GPIOF, GPIO_Pin_9); //Pin9亮起
		GPIO_SetBits(GPIOF, GPIO_Pin_10);  //Pin10熄灭
		delay_ms(500); //延时

		GPIO_ResetBits(GPIOF, GPIO_Pin_10); //Pin10亮起
		GPIO_SetBits(GPIOF, GPIO_Pin_9);    //Pin9熄灭
		delay_ms(500); //延时
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水能zai舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值