2、GPIO配置
1、AD引脚只能接3.3V,除了AD的引脚,其余都可以接5.5V
2、输入模式:
(1)输入浮空模式,无上拉电阻
(2)输入上拉模式,有上拉电阻
(3)输入下拉模式,有下拉电阻
(4)模拟输入模式,模拟输入
3、输出模式:
(1)开漏输出模式,上拉电阻,返回1,下拉电阻,返回0;
(2)开漏复用输出模式
(3)推挽输出模式,输入1则输出1,输入0则输出0
(4)推挽复用输出模式
4、GPIO寄存器配置
(1)两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH)
(2) 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)
(3) 一个32位置位/ 复位寄存器(GPIOx_BSRR)
(4) 一个16位复位寄存器(GPIOx_BRR)
(5) 一个32位锁定寄存器(GPIOx_LCKR)
5、端口配置低寄存器GPIOx_CRL
6、端口配置低寄存器GPIOx_CRH
7、端口输入数据寄存器GPIOx_IDR
8、端口输出数据寄存器GPIOx_ODR
9、GPIO时钟设置函数RCC_APB2PeriphClockCmd
10、GPIO初始化函数GPIO_Init
11、端口设置函数:GPIO_SetBits
12、端口复位函数:GPIO_ResetBits
13、GPIO点亮LED程序:
1 /*main.c*/ 2 3 #include"pbdata.h"//调用自定义公共函数库 4 5 void RCC_Configuration(void);//系统时钟初始化函数声明 6 void GPIO_Configuration(void);//GPIO初始化函数声明 7 8 int main(void)//void不能void定义主函数 9 { 10 RCC_Configuration(); //系统时钟初始化 11 GPIO_Configuration();//端口初始化 12 13 /*进入GPIO处理*/ 14 while(1) 15 { 16 GPIO_SetBits(GPIOB,GPIO_Pin_5);//指定端口设置为高电平 17 18 delay(6000000);//0.5ms,delay,公共函数库中自己定义 19 20 GPIO_ResetBits(GPIOB,GPIO_Pin_5);//指定端口设置低电平 21 22 delay(6000000);//0.5ms,delay,公共函数库中自己定义 23 } 24 } 25 26 27 void RCC_Configuration(void)//系统时钟高初始化函数 28 { 29 30 SystemInit();//系统初始化 31 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//对应GPIO时钟使能 32 } 33 34 35 void GPIO_Configuration(void)//GPIO初始化函数 36 { 37 GPIO_InitTypeDef GPIO_InitStructure;//定义一个GPIO设置的结构体变量 38 39 /*结构体变量赋值*/ 40 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;////引脚配置 41 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//配置频率 42 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出 43 44 /*对应的GPIO初始化*/ 45 GPIO_Init(GPIOB,&GPIO_InitStructure); 46 } 47 48 49
1 /*pbdata.c*/ 2 3 #include"pbdata.h" 4 5 6 u8 dt=0; 7 8 void delay(u32 nCount) 9 { 10 for(;nCount!=0;nCount--); 11 }
1 /*pbdata.h*/ 2 3 #ifndef _pbdata_H 4 #define _pbdata_H 5 6 #include"stm32f10x.h" 7 8 /*自定义全局变量*/ 9 extern u8 dt; 10 11 /*自定义函数*/ 12 void delay(u32 nCount); 13 14 #endif
14、工程下载地址:
http://download.csdn.net/detail/a1181803348/8737647