文档介绍:STM32 学****笔记
GPIO 口
GPIO 初始化
voidGPIO_Configuration(void)
{
GPIO_InitTypeDefGPIO_InitStructure;// 声明结构体
打开
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 功能时钟 (再写这句程序的时候,必须进
行时钟系统初始化的操作 )。
指
 = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;// 明操作对象引脚
 = GPIO_Speed_50MHz;//设置 IO 口时钟为 50MHz/10MHz/2MHz
 = GPIO_Mode_Out_PP;//设置推挽输出
/*GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING浮空输入(一般为中断所使用) 。
GPIO_Mode_IPD下拉输入
GPIO_Mode_IPU上拉输入
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_Out_PP推挽输出
GPIO_Mode_AF_OD复用开漏输出
GPIO_Mode_AF_PP复用推挽输出 */ ( 一般用在点灯 )。
GPIO_Init(GPIOA, &GPIO_InitStructure); // 执行初始化 IO 口
}
GPIO 常用函数
置
GPIO_SetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);//高 IO 口
置
GPIO_ResetBits(GPIOA,GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);//低 IO 口
翻
GPIO_WriteBit(GPIOA, GPIO_Pin_4, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4)));//转 IO 口
GPIOA->ODR = 0X0010 ;//IO口直接赋值语句
读
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)( 取该口的电压值,相当于 AVR的 pin)。若 IO 口为高电平,则
这个函数返回为 1,为低电平时返回为 0.
SysTick系统时钟
SysTick 配置函数
if (SysTick_Config(SystemCoreClock / 3000))//配置时钟的频率 ,改变数字可改变频率,数字越大频率越快
{
/* Capture error */
while (1);
}
EXTI中断
外部中断
外部中断 IO 口设置
voidGPIO_EXTI_Configuration(void)
{
使能时
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);// 钟
使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);// 复用 IO 时钟
GPIO_InitTypeDefGPIO_InitStructure;// 声明 IO 口初始化结构体
 = GPIO_Pin_6;//指定  为操作对象
设
 = GPIO_Mode_IN_FLOATING;// 置模式为浮空输入
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化 IO 口
 = GPIO_Pin_13|GPIO_Pin_14;//指定 ,14 为操作对象
设
 = GPIO_Mode_IN_FLOATING;// 置模式为浮空输入
GPIO_Init(GPIOD, &GPIO_InitStructure);//初始化 IO 口
将
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource6); //
将
GPIO_EXTILi