gpt4 book ai didi

c - 为什么将函数插入示例代码后会出现错误?

转载 作者:行者123 更新时间:2023-11-30 19:51:08 25 4
gpt4 key购买 nike

对令人难以置信的模糊标题表示歉意;我会尽量在这里说得更具体。

我正在 SEGGER Embedded Studio IDE 中的 NRF52832 微 Controller 上开发一个程序,该程序通过 SPI 从外部 ADC 接收数据,并输出占空比取决于 ADC 数据的 PWM 信号。

我获得了在不同项目中工作的 SPI 驱动程序和 PWM 驱动程序的示例代码,现在我正在尝试将两者结合起来。但是,当我将函数从 PWM 驱动程序插入到 SPI 驱动程序并在 SPI 驱动程序中插入相应的包含文件时,我在(看似)不相关的头文件中收到错误。下面是一个具体的例子:

(1) 我添加宏

APP_PWM_INSTANCE(PWM1,1);

到 SPI 驱动程序来初始化 PWM 实例,就像 PWM 驱动程序一样。当然,如果没有包含宏定义的头文件,我会收到错误。

(2) 因此,我包含头文件:

#include "/Users/payton/opt/nRF5_SDK_15.0.0/nRF5_SDK_15.0.0_a53641a/components/libraries/pwm/app_pwm.h"

编译器接受新的头文件和添加的宏,但构建失败,因为 nrfx_timer.h 头文件中间出现以下错误:

#define NRFX_TIMER_INSTANCE(id)                                   \
{ \
.p_reg = NRFX_CONCAT_2(NRF_TIMER, id), \
.instance_id = NRFX_CONCAT_3(NRFX_TIMER, id, _INST_IDX), \
.cc_channel_count = NRF_TIMER_CC_CHANNEL_COUNT(id), \
}

ERROR:
'NRFX_TIMER1_INST_IDX' undeclared here (not in a function)
in definition of macro 'NRFX_CONCAT_3_'
in expansion of macro 'NRFX_CONCAT_3'
in expansion of macro 'NRFX_TIMER_INSTANCE'
in expansion of macro 'NRF_DRV_TIMER_INSTANCE'
in expansion of macro 'APP_PWM_INSTANCE'
Build failed

错误指向定义.instance_id的行

知道为什么会发生这种情况吗?

最佳答案

找到文件头sdk_config.h和#define NRFX_TIMER1_ENABLED 1。我解决了。

关于c - 为什么将函数插入示例代码后会出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50433114/

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