|
- #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
2020-4-26 16:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
172.05 KB, 下載次數: 21, 下載積分: 黑幣 -5
stm32f103野火
|