ソースを参照

添加SOS中断。添加关键键中断

xuxinyi 2 ヶ月 前
コミット
c675de3271
4 ファイル変更24 行追加12 行削除
  1. 1 0
      Core/Inc/main.h
  2. 3 9
      Core/Src/main.c
  3. 14 0
      Core/Src/stm32f1xx_it.c
  4. 6 3
      lora_bl.ioc

+ 1 - 0
Core/Inc/main.h

@@ -62,6 +62,7 @@ void Error_Handler(void);
 #define SOS_KEY_EXTI_IRQn EXTI15_10_IRQn
 #define JUGE_PIN_Pin GPIO_PIN_15
 #define JUGE_PIN_GPIO_Port GPIOB
+#define JUGE_PIN_EXTI_IRQn EXTI15_10_IRQn
 #define POWER_ON_Pin GPIO_PIN_8
 #define POWER_ON_GPIO_Port GPIOA
 #define CTL_LORA_POWER_Pin GPIO_PIN_15

+ 3 - 9
Core/Src/main.c

@@ -842,17 +842,11 @@ static void MX_GPIO_Init(void)
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(PowerLED_GPIO_Port, PowerLED_Pin, GPIO_PIN_RESET);
 
-  /*Configure GPIO pin : SOS_KEY_Pin */
-  GPIO_InitStruct.Pin = SOS_KEY_Pin;
+  /*Configure GPIO pins : SOS_KEY_Pin JUGE_PIN_Pin */
+  GPIO_InitStruct.Pin = SOS_KEY_Pin|JUGE_PIN_Pin;
   GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
   GPIO_InitStruct.Pull = GPIO_PULLUP;
-  HAL_GPIO_Init(SOS_KEY_GPIO_Port, &GPIO_InitStruct);
-
-  /*Configure GPIO pin : JUGE_PIN_Pin */
-  GPIO_InitStruct.Pin = JUGE_PIN_Pin;
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  HAL_GPIO_Init(JUGE_PIN_GPIO_Port, &GPIO_InitStruct);
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
 
   /*Configure GPIO pin : POWER_ON_Pin */
   GPIO_InitStruct.Pin = POWER_ON_Pin;

+ 14 - 0
Core/Src/stm32f1xx_it.c

@@ -392,6 +392,7 @@ void EXTI15_10_IRQHandler(void)
 
   /* USER CODE END EXTI15_10_IRQn 0 */
   HAL_GPIO_EXTI_IRQHandler(SOS_KEY_Pin);
+  HAL_GPIO_EXTI_IRQHandler(JUGE_PIN_Pin);
   /* USER CODE BEGIN EXTI15_10_IRQn 1 */
 
   /* USER CODE END EXTI15_10_IRQn 1 */
@@ -412,5 +413,18 @@ void RTC_Alarm_IRQHandler(void)
 }
 
 /* USER CODE BEGIN 1 */
+void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
+{
+  if(GPIO_Pin == SOS_KEY_Pin)
+  {
+    printf("SOS_KEY 按下\r\n");
+    // 处理 SOS
+  }
+  else if(GPIO_Pin == JUGE_PIN_Pin)
+  {
+    printf("JUGE_KEY 按下\r\n");
+    // 处理 JUGE
+  }
+}
 
 /* USER CODE END 1 */

+ 6 - 3
lora_bl.ioc

@@ -121,11 +121,12 @@ PB14.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
 PB14.GPIO_PuPd=GPIO_PULLUP
 PB14.Locked=true
 PB14.Signal=GPXTI14
-PB15.GPIOParameters=GPIO_PuPd,GPIO_Label
+PB15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
 PB15.GPIO_Label=JUGE_PIN
-PB15.GPIO_PuPd=GPIO_NOPULL
+PB15.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
+PB15.GPIO_PuPd=GPIO_PULLUP
 PB15.Locked=true
-PB15.Signal=GPIO_Input
+PB15.Signal=GPXTI15
 PB3.GPIOParameters=GPIO_PuPd,GPIO_Label
 PB3.GPIO_Label=PowerLED
 PB3.GPIO_PuPd=GPIO_PULLDOWN
@@ -197,6 +198,8 @@ RCC.USBFreq_Value=72000000
 RCC.VCOOutput2Freq_Value=8000000
 SH.GPXTI14.0=GPIO_EXTI14
 SH.GPXTI14.ConfNb=1
+SH.GPXTI15.0=GPIO_EXTI15
+SH.GPXTI15.ConfNb=1
 TIM4.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
 TIM4.IPParameters=AutoReloadPreload,Prescaler,Period
 TIM4.Period=4999