私は、元々はKDEを使って構築され、後にmcuexpressoを使って修正された古いプロジェクトを引き継いでいます。
最新バージョンのIDEをダウンロードし、FRDM_K64Fボード用のSDK2.11.0を使って新しい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「ペリフェラル」
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"
#include "MK64F12.h" を追加してみましたが、効果はありませんでした。
どんなご支援でも大変ありがたいです!
よろしくお願いします。
ナイジェル
SO始めました
こんにちは@ve3id
コンパイルエラーが起こる理由は以下の通りです SIM_SCGC5 は古いKinetisレジスタ記号です。FRDM-K64F用のMCUXpresso SDK 2.xで使用すべきです SIM->SCGC5 同様に、他のハードウェアレジスタ参照も次のように変換します PERIPHERAL->REGISTER 構文。
あなたの特定の行については、
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK ;
に
SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
よろしくお願いします。
BR
アリス
アリスさん、本当にありがとうございました。あなたはSOとても知識豊富で、簡単に見せてしまうのですね!
これでプロジェクトにCAN取りかかる
乾杯
ナイジェル