目录
一、硬件连接
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);
}
}
程序编写完成,依次点击便可下载