当使用外设模块较多时(比如LED和按键),可以分别将其驱动代码封装起来。
分别添加各个模块的.c和.h文件。.c用来存放驱动程序的主体代码,.h用来存放这个驱动程序可以对外提供的函数或变量的声明。
例如:
1、LED.c中,首先要添加头文件:
#include "stm32f10x.h"
其次,写一个LED初始化函数:
void LED_Init(void)
{
RCC_APB2periphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启时钟
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure); //将PA1和PA2引脚初始化为推挽输出
2、LED.h中,要添加一个防止头文件重复包含的代码:
#ifndef __LED_H //前面是两个下划线,后面是一个下划线
#define __LED_H
#endif
其次,添加LED初始化函数的声明:
void LED_Init(void);
3、在main.c文件里,写上#include "LED.h",并在主函数中调用LED _Init()并编译
按键(Key)同理