目录
1、IO的几种模式
2、 GPIO初始化(led)
3、 GPIO初始化(key)
4、主函数初始化
5、硬件延时函数
6、中断EXTI及NVIC配置
7、通用定时器
8、USART的使用
工程文件夹示意图:
软件中建立文件夹所包含内容:
魔术棒配置:
1、IO的几种模式:
/* 选择IO接口工作方式: GPIO_Mode_AIN 模拟输入 GPIO_Mode_IN_FLOATING 浮空输入 GPIO_Mode_IPD 下拉输入 用于按键,具体看电路图 GPIO_Mode_IPU 上拉输入 用于按键,具体看电路图 GPIO_Mode_Out_PP 推挽输出 用于LED GPIO_Mode_Out_OD 开漏输出 GPIO_Mode_AF_PP 复用推挽输出 GPIO_Mode_AF_OD 复用开漏输出 */
2、 GPIO初始化(led)
需要建立led.c及led.h文件
Led.c内容:
#include "led.h" //LED灯的接口初始化,"void LED_Config(void);"需要在led.h中进行声明 void LED_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启总线时钟 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //选择端口号(0~15或all) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式,使用推挽输出模式,可输出高低电平 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz) GPIO_Init(GPIOC, &GPIO_InitStructure); }
Led.h内容:
#ifndef __LED_H #define __LED_H #include "stm32f10x.h"//包含库头文件,才可使用库函数,如 GPIO_SetBits(GPIOC, GPIO_Pin_6); void LED_Config(void);//进行函数名的声明 #endif
3、 GPIO初始化(key)
需要建立key.c及key.h文件
key.c内容:
#include "key.h" //KEY的接口初始化 void KEY_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //开启总线时钟 GPIO_InitStruct.GPIO_Pin =GPIO_Pin_8|GPIO_Pin_9; //选择端口号(0~15或all) GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; //选择IO接口工作方式,上拉模式 // GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //按键为输入,不用设置IO接口速度 GPIO_Init(GPIOB, &GPIO_InitStruct); }
key.h内容:
#ifndef __KEY_H #define __KEY_H #include "stm32f10x.h" void KEY_Config(void);//进行函数名的声明 #endif
4、主函数初始化:
#include "stm32f10x.h" #include "led.h" //包含头文件 #include "key.h"//包含头文件