STM32F07ZGT6点亮第一颗LED灯

关于点亮led灯,相信大家在接触单片机的时候早已听腻了,不多说,现在开始点亮第一颗led。

对于stm32f4,它拥有很多

很多32位的寄存器,我们需要通过寄存器去控制。

1、普通io口进行初始化设置

①使能IO所在的时钟总线

此处以PF9为例

RCC->AHB1ENR|=1<<5;

下图是AHB1ENR寄存器对应的位

我们需要使能GPIOFEN

②、初始化IO口

  GPIOF->MODER&=~(3<<(2*9));      //对GPIOF9模式位进行清零

GPIOF->MODER|=1<<(2*9);            //设置GPIOF9为输出模式


  GPIOF->OTYPER|=~(1<<(2*9));//设置IO口类型为推挽输出

若为输出推挽也可不设置此位

GPIOF->OSPEEDR&=~(3<<(2*9));     //设置IO输出速度

 GPIOF->ODR|=1<<9;      //对IO口写电平高

至此对GPIOF9的初始化设置完成了。

初始化函数如下:

void PF9_Init(void)

{

 RCC->AHB1ENR|=1<<5;    //使能时钟
  GPIOF->MODER&=~(3<<(2*9));  //清零模式位
  GPIOF->MODER|=1<<(2*9);     //对模式位写1,设置为输出模式
  GPIOF->OTYPER|=~(1<<(2*9));        //设置输出类型为推挽输出
  GPIOF->OSPEEDR&=~(3<<(2*9));     //设置io口速度为低速
GPIOF->ODR|=1<<9;                           //将IO的电平拉高

}

至此初始化IO已经完成。

接下来我们在头文件定义三个宏定义

注意此处PF9低电平的时候LED亮!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#define LED_ON     GPIOF->BSRRH|=1<<9                    //将电平拉低(复位端口寄存器)
#define LED_OFF    GPIOF->BSRRL|=1<<9                    //将电平拉高(置位端口寄存器)
#define LED_XOR    GPIOF->ODR|=1<<9                       //取反

接下来写我们的main函数

首先我们需要把<stm32f4xx.h>写进去

#include "led.h"
#include "stm32f4xx.h"

void Delay_ms(u32 ms);

int main(void)

{

PF9_Init();

while(1)

{

LED_XOR;

Delay_ms(500);

 

}

}

void Delay_ms(u32 ms)//不精确定时
{
ms=ms*40000;

while(ms--);

}

LED可以点亮了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值