子函数配置

来源:互联网 发布:linux更改用户名 编辑:程序博客网 时间:2024/05/22 04:46

以下是子函数配置,以LED灯为例,LED接在PB5引脚上

1.子函数为.c函数(文件),同时建一个.h函数(文件)。.c文件中存放函数的操作,其头文件是一个公共的头文件库(自己建的头文件库,里面包括各种头文件),.h文件是对应子函数的头文件的防止重复调用代码段(#ifndef _KEY_H
#define _KEY_H
#endif )、对应子函数中的各函数的函数声明(void LED_Init();)、定义的变量、定义的函数。

(1).c文件如下:

#include "pbdata.h"void LED_Init(){ GPIO_InitTypeDef GPIO_InitStructure;       //LED    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;    GPIO_Init(GPIOB,&GPIO_InitStructure);//引脚结构体初始化配置    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//时钟配置 }

(2).h文件如下:

#ifndef _KEY_H#define _KEY_H#include "pbdata.h"//用于各函数声明时相互调用,简便,以后只要在,pbdata.h文件引入相关需要或新建的头文集即可,需要调用头文件,只需要使用这句就可以了void LED_Init();#endif

(3)pbdata.h文件:

#ifndef _pbdata_H#define _pbdata_H#include "stm32f10x.h"//芯片内核库#include "misc.h"#include "led.h"//引入子函数(文件)的头文件//与一般.h文件一样声明变量extern u8 dt;//与一般.h文件一样也可以声明(定义)函数void RCC_HSE_Configuration(void);void delay(u32 nCount);void delay_us(u32 nus);void delay_ms(u16 nms);#endif

2.注意:子函数配置时,引脚结构体初始化,然后才能对应引脚时钟配置
如下:

void LED_Init(){ GPIO_InitTypeDef GPIO_InitStructure;       //LED    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;    GPIO_Init(GPIOB,&GPIO_InitStructure);//引脚结构体初始化配置    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//时钟配置 }

3.需要在主函数文件中调用所建的子函数,则要将子函数文件添加到主函数所在的用户文件中:
这里写图片描述
添加方法如下:1).
这里写图片描述
2).
这里写图片描述

3).
这里写图片描述

4).
这里写图片描述

原创粉丝点击