From 1a4ea70147216f586f1341d4f1981733ed2c203c Mon Sep 17 00:00:00 2001
From: tao_z <tzj0429@163.com>
Date: Sat, 03 Jul 2021 21:41:30 +0800
Subject: [PATCH] 采用三个外部中断触发

---
 USR/SRC/GPIO.c |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/USR/SRC/GPIO.c b/USR/SRC/GPIO.c
index 7e0b581..c4226b4 100644
--- a/USR/SRC/GPIO.c
+++ b/USR/SRC/GPIO.c
@@ -6,35 +6,34 @@
 {
     rcu_periph_clock_enable(RCU_GPIOA);
     rcu_periph_clock_enable(RCU_GPIOB);
-    rcu_periph_clock_enable(RCU_GPIOF);
-
+    // rcu_periph_clock_enable(RCU_GPIOF);
+    /* enable the CFGCMP clock */
+    rcu_periph_clock_enable(RCU_CFGCMP);
     //初始化配置霍尔输入引脚
     gpio_mode_set(HALL_SENSOR_A_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, HALL_SENSOR_A_PIN);
     gpio_mode_set(HALL_SENSOR_B_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, HALL_SENSOR_B_PIN);
     gpio_mode_set(HALL_SENSOR_C_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, HALL_SENSOR_C_PIN);
-    /* enable the CFGCMP clock */
-    rcu_periph_clock_enable(RCU_CFGCMP);
-    nvic_irq_enable(EXTI4_15_IRQn, 0U);
+
     /* connect EXTI line to GPIO pin */
     syscfg_exti_line_config(EXTI_SOURCE_GPIOB, EXTI_SOURCE_PIN4);
     syscfg_exti_line_config(EXTI_SOURCE_GPIOB, EXTI_SOURCE_PIN5);
     syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN15);
 
-    exti_init(EXTI_4 | EXTI_5 | EXTI_15, EXTI_INTERRUPT, EXTI_TRIG_RISING); //配置外部上升沿中断
+    exti_init(EXTI_4, EXTI_INTERRUPT, EXTI_TRIG_RISING);  //配置外部上升沿中断
+    exti_init(EXTI_5, EXTI_INTERRUPT, EXTI_TRIG_RISING);  //配置外部上升沿中断
+    exti_init(EXTI_15, EXTI_INTERRUPT, EXTI_TRIG_RISING); //配置外部上升沿中断
+    nvic_irq_enable(EXTI4_15_IRQn, 0U);
     exti_interrupt_flag_clear(EXTI_4 | EXTI_5 | EXTI_15);
 
     //初始化PWM引脚
     gpio_mode_set(PWM_HIN1_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, PWM_HIN1_PIN);
     gpio_af_set(PWM_HIN1_PORT, GPIO_AF_2, PWM_HIN1_PIN);
-    gpio_output_options_set(PWM_HIN1_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, PWM_HIN1_PIN);
 
     gpio_mode_set(PWM_HIN2_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, PWM_HIN2_PIN);
     gpio_af_set(PWM_HIN2_PORT, GPIO_AF_2, PWM_HIN2_PIN);
-    gpio_output_options_set(PWM_HIN2_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, PWM_HIN2_PIN);
 
     gpio_mode_set(PWM_HIN3_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, PWM_HIN3_PIN);
     gpio_af_set(PWM_HIN3_PORT, GPIO_AF_2, PWM_HIN3_PIN);
-    gpio_output_options_set(PWM_HIN3_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, PWM_HIN3_PIN);
 
     // gpio_mode_set(PWM_LIN1_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, PWM_LIN1_PIN);
     // gpio_af_set(PWM_LIN1_PORT, GPIO_AF_2, PWM_LIN1_PIN);
@@ -87,13 +86,19 @@
 }
 extern uint8_t Get_HallSensorA_State(void)
 {
-    return (uint8_t)(gpio_input_bit_get(HALL_SENSOR_A_PORT, HALL_SENSOR_A_PIN));
+    uint8_t rtn = 0;
+    rtn = (SET == gpio_input_bit_get(HALL_SENSOR_A_PORT, HALL_SENSOR_A_PIN)) ? 1 : 0;
+    return rtn;
 }
 extern uint8_t Get_HallSensorB_State(void)
 {
-    return (uint8_t)(gpio_input_bit_get(HALL_SENSOR_B_PORT, HALL_SENSOR_B_PIN));
+    uint8_t rtn = 0;
+    rtn = (SET == gpio_input_bit_get(HALL_SENSOR_B_PORT, HALL_SENSOR_B_PIN)) ? 1 : 0;
+    return rtn;
 }
 extern uint8_t Get_HallSensorC_State(void)
 {
-    return (uint8_t)(gpio_input_bit_get(HALL_SENSOR_C_PORT, HALL_SENSOR_C_PIN));
+    uint8_t rtn = 0;
+    rtn = (SET == gpio_input_bit_get(HALL_SENSOR_C_PORT, HALL_SENSOR_C_PIN)) ? 1 : 0;
+    return rtn;
 }

--
Gitblit v1.8.0