From 387d1ffc16ce9e050403baee0ed07f3d9accf632 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 04 七月 2025 14:55:15 +0800 Subject: [PATCH] 初步移植完成0.6.8SDK,但发送有len太长未找到原因 --- keil/include/drivers/mk_gpio.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/keil/include/drivers/mk_gpio.c b/keil/include/drivers/mk_gpio.c index 8682796..9541461 100644 --- a/keil/include/drivers/mk_gpio.c +++ b/keil/include/drivers/mk_gpio.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and + * Copyright (c) 2019-2025 Beijing Hanwei Innovation Technology Ltd. Co. and * its subsidiaries and affiliates (collectly called MKSEMI). * * All rights reserved. @@ -169,7 +169,9 @@ void gpio_disable_irq(enum IO_PIN_T pin) { gpio_handle[0].base->INTENCLR = (1U << pin); + gpio_handle[0].irq_handler[pin] = NULL; gpio_handle[0].irq_mask &= ~(1U << pin); + if (gpio_handle[0].irq_mask == 0) { NVIC_DisableIRQ(gpio_handle[0].irq); @@ -180,13 +182,16 @@ void GPIO_IRQHandler(void) { uint32_t int_stat = gpio_handle[0].base->INTSTATUS; + gpio_handle[0].base->INTSTATUS = int_stat; for (enum IO_PIN_T i = 0; i < IO_PIN_MAX; i++) { - if ((int_stat & (1U << i)) && (gpio_handle[0].irq_handler[i])) + if (int_stat & (1U << i)) { - gpio_handle[0].irq_handler[i](i); - gpio_handle[0].base->INTSTATUS = (1 << i); + if (gpio_handle[0].irq_handler[i]) + { + gpio_handle[0].irq_handler[i](i); + } } } } -- Gitblit v1.9.3