]> Zhao Yanbai Git Server - acecode.git/commitdiff
F103RE GPIO Input Interrupt
authorAceVest <zhaoyanbai@126.com>
Wed, 5 Jun 2019 02:59:33 +0000 (10:59 +0800)
committerAceVest <zhaoyanbai@126.com>
Wed, 5 Jun 2019 02:59:33 +0000 (10:59 +0800)
learn/stm32/F103RE/F103RE.ioc
learn/stm32/F103RE/Inc/main.h
learn/stm32/F103RE/Inc/stm32f1xx_it.h
learn/stm32/F103RE/Src/gpio.c
learn/stm32/F103RE/Src/main.c
learn/stm32/F103RE/Src/stm32f1xx_hal_msp.c
learn/stm32/F103RE/Src/stm32f1xx_it.c

index 81c7f010b10674ce0beb3dc7aca18fa837e5fc4a..55aec6fecf55b98b027f40312d47c2e0a1a38354 100644 (file)
@@ -26,11 +26,12 @@ MxCube.Version=5.2.0
 MxDb.Version=DB.5.0.20
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.EXTI0_IRQn=true\:0\:0\:false\:false\:true\:true\:true
 NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.MemoryManagement_IRQn=true\:0\:0\:true\:false\:true\:false\:false
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_2
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
@@ -60,10 +61,11 @@ PA7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
 PA7.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
 PA7.Locked=true
 PA7.Signal=GPIO_Output
-PC0.GPIOParameters=GPIO_Label
+PC0.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
 PC0.GPIO_Label=KEY1
+PC0.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
 PC0.Locked=true
-PC0.Signal=GPIO_Input
+PC0.Signal=GPXTI0
 PCC.Checker=false
 PCC.Line=STM32F103
 PCC.MCU=STM32F103R(C-D-E)Tx
@@ -130,6 +132,8 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
 RCC.TimSysFreq_Value=72000000
 RCC.USBFreq_Value=72000000
 RCC.VCOOutput2Freq_Value=12000000
+SH.GPXTI0.0=GPIO_EXTI0
+SH.GPXTI0.ConfNb=1
 VP_SYS_VS_Systick.Mode=SysTick
 VP_SYS_VS_Systick.Signal=SYS_VS_Systick
 board=custom
index db628f85ba5423d1813fb52a12c8b4107b15f13e..c4b327beac5eb2218ae13c4550e23d741bc0402f 100644 (file)
@@ -60,6 +60,7 @@ void Error_Handler(void);
 /* Private defines -----------------------------------------------------------*/\r
 #define KEY1_Pin GPIO_PIN_0\r
 #define KEY1_GPIO_Port GPIOC\r
+#define KEY1_EXTI_IRQn EXTI0_IRQn\r
 #define LED1_Pin GPIO_PIN_4\r
 #define LED1_GPIO_Port GPIOA\r
 #define LED2_Pin GPIO_PIN_5\r
index 9d4af17a95a20e0bbd42f38aadc2321b41115fee..f90bf1ec51a06f1b7ea2f77e297601263999cfc6 100644 (file)
@@ -56,6 +56,7 @@ void SVC_Handler(void);
 void DebugMon_Handler(void);\r
 void PendSV_Handler(void);\r
 void SysTick_Handler(void);\r
+void EXTI0_IRQHandler(void);\r
 /* USER CODE BEGIN EFP */\r
 \r
 /* USER CODE END EFP */\r
index 007b707cd9e0297bc3aa511cce49bc3ad6e4d5a0..27bf9810b68e9ecac7f0911c58dcafbab402ae76 100644 (file)
@@ -52,7 +52,7 @@ void MX_GPIO_Init(void)
 \r
   /*Configure GPIO pin : PtPin */\r
   GPIO_InitStruct.Pin = KEY1_Pin;\r
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;\r
   GPIO_InitStruct.Pull = GPIO_NOPULL;\r
   HAL_GPIO_Init(KEY1_GPIO_Port, &GPIO_InitStruct);\r
 \r
@@ -63,10 +63,16 @@ void MX_GPIO_Init(void)
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;\r
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);\r
 \r
+  /* EXTI interrupt init*/\r
+  HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);\r
+  HAL_NVIC_EnableIRQ(EXTI0_IRQn);\r
+\r
 }\r
 \r
 /* USER CODE BEGIN 2 */\r
-\r
+void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {\r
+       HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, SET);\r
+}\r
 /* USER CODE END 2 */\r
 \r
 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r
index 4555c88fc8a87f025481de16c9e97cc487e51eb6..413a15d345823bbe953bb4368305533adf376468 100644 (file)
@@ -96,7 +96,7 @@ int main(void)
   /* USER CODE BEGIN WHILE */\r
   while (1)\r
   {\r
-         HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);\r
+         HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);\r
          HAL_Delay(100);\r
     /* USER CODE END WHILE */\r
 \r
index f15a06a37790a5fe15c7cd5692ec138ba84dbba0..60814ca053170c7d885b22a0f7cd32e84179c7ff 100644 (file)
@@ -70,6 +70,8 @@ void HAL_MspInit(void)
   __HAL_RCC_AFIO_CLK_ENABLE();\r
   __HAL_RCC_PWR_CLK_ENABLE();\r
 \r
+  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);\r
+\r
   /* System interrupt init*/\r
 \r
   /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled \r
index b770208fb7954c3a6db0c554a8cb8dee439cb542..115e832293bcc6a512a466059a94fb34ddbae288 100644 (file)
@@ -197,6 +197,20 @@ void SysTick_Handler(void)
 /* please refer to the startup file (startup_stm32f1xx.s).                    */\r
 /******************************************************************************/\r
 \r
+/**\r
+  * @brief This function handles EXTI line0 interrupt.\r
+  */\r
+void EXTI0_IRQHandler(void)\r
+{\r
+  /* USER CODE BEGIN EXTI0_IRQn 0 */\r
+\r
+  /* USER CODE END EXTI0_IRQn 0 */\r
+  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);\r
+  /* USER CODE BEGIN EXTI0_IRQn 1 */\r
+\r
+  /* USER CODE END EXTI0_IRQn 1 */\r
+}\r
+\r
 /* USER CODE BEGIN 1 */\r
 \r
 /* USER CODE END 1 */\r