gpt4 book ai didi

c - 如何将变量从 main.c 转换为另一个文件(中断处理程序)

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:03 26 4
gpt4 key购买 nike

我正在做一个新项目,我想编写自己的协议(protocol)。因此,我必须将变量(从 main.c)转换为中断处理程序文件。

这是我的 IRQHandler.h 文件:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#ifndef stm32f4xx_EXTI0_IRQHAndler_H
#define stm32f4xx_EXTI0_IRQHAndler_H
void EXTI0_IRQHandler(void);
#endif

这是我的 IRQHandler.C 文件:

    void EXTI0_IRQHandler(void)
{
if(GPIOA->IDR & 0x0001){

USART_SendData(USART1, ConvertedValue);

// GPIO_ToggleBits(GPIOD, GPIO_Pin_12);

EXTI_ClearFlag(EXTI_Line0);
// EXTI_ClearITPendingBit(EXTI_Line0);
}

EXTI_ClearITPendingBit(EXTI_Line0);
}

必需的变量是转换值,它在主文件中..我无法转换...我知道这是一个非常简单的问题...但我现在无法解决它..

感谢您的帮助! :)

最佳答案

在 IRQHandler.c 中

#include "IRQHandler.h"

volatile uint8_t ConvertedValue ;

void EXTI0_IRQHandler(void)
{
...
}

然后创建 IRQHandler.h:

#if !defined IRQHandler_INCLUDE
#define IRQHandler_INCLUDE

extern volatile uint8_t ConvertedValue ;

#endif

然后在main.c中

#include "IRQHandler.h"

int main()
{
ConvertedValue = getValue() ; // or whatever - Converted value is visible/accessible here.
}

当然,您也可以在 main.c 中定义 ConveretedValue 并在 IRQHandler.c 中将其声明为外部(无论是直接还是通过头文件都是您的选择 - 我使用的头文件更可取,因为它允许编译器执行类型检查。

关于c - 如何将变量从 main.c 转换为另一个文件(中断处理程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324215/

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