• STM32的IO配置点灯


    1、led.c的详细的代码:

    /*----------------------------------------------------------*/
    #include "led.h"
    
    /* -------------------------------------------------------------------------
    文件名称:led.c
    描写叙述  :依据硬件连接配置LEDport,打开相应的寄存器
    ---------------------------------------------------------------------------*/
    void LED_Init(void)
    {
    	GPIO_InitTypeDef GPIO_InitStructure;
    	//打开PB口时钟
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    	//打开PE口时钟
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
    	//PB5,PE5引脚设置
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    	//port速度
    	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    	//port模式。此为输出推挽模式
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    	GPIO_Init(GPIOB,&GPIO_InitStructure);
    	GPIO_Init(GPIOE,&GPIO_InitStructure);
    }
    初始化:首先进行时钟的打开,引脚的设置。port速度设置,port模式的设置

    2、led.h的头文件

    #ifndef __LED_H
    #define __LED_H
    
    #include "stm32f10x.h"
    
    #define LED2_OFF GPIO_SetBits(GPIOE,GPIO_Pin_5)
    #define LED2_ON GPIO_ResetBits(GPIOE,GPIO_Pin_5)
    #define LED2_REV GPIO_WriteBit(GPIOE,GPIO_Pin_5,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_5))))
    
    #define LED3_OFF GPIO_SetBits(GPIOB,GPIO_Pin_5)
    #define LED3_ON GPIO_ResetBits(GPIOB,GPIO_Pin_5)
    #define LED3_REV GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5))))
    
    void LED_Init(void);
    
    #endif
    led的开关。翻转

    3、main.c函数代码

    /*----------------------------------------------------------------------------------
    文件名:控制LED2。LED3闪烁
    硬件平台:STM32F103 开发板
    作者	:求是
    固件库  :V3.5
    -----------------------------------------------------------------------------------*/
    /* Includes ------------------------------------------------------------------*/
    #include "stm32f10x.h"
    #include "led.h"
    
    int main(void)
    {
    	uint32_t i;
    	
      <span style="white-space:pre">	</span>LED_Init();
    	LED2_ON;
    	LED3_OFF;
    	for(i=0; i < 0xffffff; i++)
      while (1)
      {
    	for(i = 0; i < 0xfffff;i++);
    	LED2_REV;
    	LED3_REV;
      }
    }
    


    我们写代码的时候使用函数的时候,优先使用函数宏。



  • 相关阅读:
    反射
    IO流
    集合(下)
    集合(上)
    泛型
    异常
    常用类
    内部类
    将博客搬至CSDN
    DBMS_ERRLOG记录DML错误日志(二)
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7102031.html
Copyright © 2020-2023  润新知