gpt4 book ai didi

c - STM32F103RB中如何使用HAL实现抢占式调度

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:15 24 4
gpt4 key购买 nike

我编写的程序使用两个按钮和外部中断来打开每个 LED。我想通过使用优先级来使用抢占式调度。但是我使用 HAL 的程序只运行尾链中断模块。有没有办法实现抢占式调度?

int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();

while (1) {
if(flag_Sw1 == 1) {
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET);
flag_Sw1=0;
HAL_Delay(200);
} else if (flag_Sw2 == 1) {
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET);
flag_Sw2=0;
HAL_Delay(200);
}
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET);
}
}

.
.
.
// in the MX_GPIO_Init(void)

HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);

HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

.
.
.

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_PIN) {
if(GPIO_PIN == GPIO_PIN_8) {
flag_Sw1 = 1;
flag_Sw2 = 0;
}
else if(GPIO_PIN == GPIO_PIN_13) {
flag_Sw1 = 0;
flag_Sw2 = 1;
}
}

最佳答案

如果您看到的是尾链而不是抢占,那么 NVIC 优先级分组可能没有按照您的预期配置 - 因此将两个中断配置为优先级组 0 和 1 对中断抢占没有影响。

关于c - STM32F103RB中如何使用HAL实现抢占式调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55843320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com