我正在接手一个旧项目,该项目最初使用 KDE 版本,后来使用 mcuexpresso 进行了修改。
我下载了最新版本的 IDE,并使用 SDK2.11.0 为我的 FRDM_K64F 板创建了一个新的 C/C++ 项目。
我正在从旧项目中复制代码,因为它包含了很多我不再需要的东西,而我正在尝试在新项目中从头开始构建。
我粘贴的第一段代码是端口初始化代码。
问题是,编译时所有硬件引用都出现“未定义”错误:
./source/Frere_2016.c:52:1: 错误: 未声明的“SIM_SCGC5”(在此函数中首次使用)
52 | SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK; // 使能端口 A 时钟门 C
我已经解压了SDK,但没有任何变化。
看来原始源代码中肯定有一些我没有复制的赋值语句,但这应该可以通过以下方式在新项目中实现:
#include
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"
我甚至尝试添加了 #include "MK64F12.h",但仍然无效。
非常感谢您的帮助!
谢谢!
奈杰尔
于是我开始了。
你好@ve3id
编译错误发生的原因 SIM_SCGC5 这是一个旧的 Kinetis 寄存器符号;在 MCUXpresso SDK 2.x 的 FRDM-K64F 版本中,您应该使用 SIM->SCGC5 类似地,将其他硬件寄存器引用转换为 PERIPHERAL->REGISTER 句法。
针对您的特定线路,进行更改
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK ;
到
SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
谢谢!
BR
爱丽丝
非常感谢你,爱丽丝。你知识渊博,做起来却毫不费力!
现在我可以继续我的项目了。
干杯
奈杰尔