目录
一、硬件连接
mini 部分原理图

从原理图中可以看出 :LED0连接PA8 ,LED1连接PD2
二、GPIO库函数介绍
1个初始化函数
void GPIO_Init();
2个读取输入电平函数
uint8_tGPIO_ReadInputDateBit();
uint16_tGPIO_ReadInputDate();
2个读取输出电平函数
uint8_tGPIO_ReadOutputDateBit();
uint16_tGPIO_ReadOutputDate();
4个设置输出电平函数
void GPIO_SetBits();
void GPIO_ReSetBits(); //前两个常用,后两个不常用
void GPIO_WriteBit();
void GPIO_Write();
三、跑马灯编程操作
1、操作流程
<1>使能IO口时钟。调用函数RCC_APB2PeriphColckCmd();
不同的IO组,调用的时钟使能函数不一样。
<2>初始化IO口模式。调用函数GPIO_Init();
<3>操作IO口,输出高低电平。
GPIO_SetBits();输出高电平。
GPIO_ResetBits();输出低电平。
2、编码
<1>在template(工程模板)文件夹下建立HAREWARE文件夹,再在HAREWARE下建立LED文件夹。
<2>在MDK5中template中建立HAREWARE分组。
<>在MDK5中建立led.c和led.h两个文件,保存到LED文件夹下。
在FWLIB—stm32f10x_gpio.c—stm32f10x_gpio.h文件夹下可以找到一些管口定义
在FWLIB—stm32f10x_rcc.c—stm32f10x_rcc.h文件夹下可以找到一些时钟函数
led.c程序如下
#include "led.h"
void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;//io口类型 结构初始化
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //io口设置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_Init(GPIOA, &GPIO_InitStructure); 
	GPIO_SetBits(GPIOA,GPIO_Pin_8);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; 
	GPIO_Init(GPIOD, &GPIO_InitStructure); 
	GPIO_SetBits(GPIOD,GPIO_Pin_2);
}
led.h程序如下
#ifndef __LED_H
#define __LED_H
#include "sys.h"
#define LED0 PAout(8)//宏观定义A8输出口
#define LED1 PDout(2)
void LED_Init(void);
#endif
<3>将led.c的文件加到HARDWARE文件夹下,led.h加到路径下
<4>接下来编写main,c的程序
#include "led.h"
#include "delay.h"
#include "sys.h"
int main(void)
 {	
	delay_init();	    	 ¯	  
	LED_Init();		  	
	while(1)
	{
		GPIO_ResetBits(GPIOA,GPIO_Pin_8); //A8口输出低电平
		GPIO_SetBits(GPIOD,GPIO_Pin_2);//D2口输出高电平
		delay_ms(300);
		GPIO_SetBits(GPIOA,GPIO_Pin_8);
		GPIO_ResetBits(GPIOD,GPIO_Pin_2);
		delay_ms(300);
	}
 }
程序编写完成,依次点击便可下载











