|
- #include "stm32f10x.h"
- #include <stdio.h>
- void delay()
- {
- //unsigned int volatile a = 0xFF;
- uint32_t volatile a = 0xFF;
- while(a--);
- }
- void GPIO()
- {
- /*初始化GPIO*/
- //LED
- GPIO_InitTypeDef GPIO_InitStruct;//定义GPIO初始化结构体
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//打开B脚时钟
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;//选择第5引脚进行设置
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置该引脚为推挽输出模式
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置该引脚的输出频率为50MHz
- GPIO_SetBits(GPIOB,GPIO_Pin_5);
- GPIO_Init(GPIOB,&GPIO_InitStruct);//对B引脚进行初始化
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;//选择第1引脚进行设置
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置该引脚为推挽输出模式
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置该引脚的输出频率为50MHz
- GPIO_ResetBits(GPIOB,GPIO_Pin_0);
- GPIO_Init(GPIOB,&GPIO_InitStruct);//对B引脚进行初始化
- //KEY
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开A脚时钟
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;//选择第0引脚进行设置
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;//设置该引脚为输入模式
- //GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置该引脚的输出频率为50MHz
- //beep
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;//选择第8引脚进行设置
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置该引脚为推挽输出模式
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置该引脚的输出频率为50MHz
- GPIO_ResetBits(GPIOA,GPIO_Pin_8);
- GPIO_Init(GPIOA,&GPIO_InitStruct);//对A引脚进行初始化
- /*分组,确定抢占优先级和子优先级*/
- NVIC_InitTypeDef NVIC_InitStructure;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority =0x01;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;
- NVIC_Init(&NVIC_InitStructure);
- /* 配置中断*/
- EXTI_InitTypeDef EXTI_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//打开复用时钟
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);//映像PA0为中断
- EXTI_InitStructure.EXTI_Line = EXTI_Line0;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
-
-
- }
- int main(void)
- {
- GPIO();
-
- while (1)
- {
-
- }
- }
复制代码
|
-
-
中断.7z
172.05 KB, 下载次数: 21, 下载积分: 黑币 -5
stm32f103野火
|