2

別のポート/ピンのソース コードを変更するだけで済みます。私はNXP UM10360でできる限り勉強しました。

私はその設定をしています。

「CMSIS_CORE_LPC17xx」から使用されるヘッダファイル: LPC17xx.h

LPC_PINCON->PINSEL0 |= 0x2<<14; //P0.7 > SCK1 
LPC_PINCON->PINSEL0 |= 0x2<<16; //P0.8 > MISO1 
LPC_PINCON->PINSEL0 |= 0x2<<18; //P0.9 > MOSI1 

それらのピンを別のピン (SSP1 から SSP0 まで) に置き換えたい。

P0.7 will be P0.15
P0.8 will be P0.17
P0.9 will be P0.18

そして、マニュアルに従って、これを試しました(機能10)。

LPC_PINCON->PINSEL0 &= ~((0x3 << 31)|(0x3 << 30));//P0.15, SCK0
LPC_PINCON->PINSEL0 |= ((0x2 << 31)|(0x2 << 30)); //ENable clock
LPC_PINCON->PINSEL1 &= ~((0x2 << 3)|(0x2 << 2));//P0.17,  MISO0
LPC_PINCON->PINSEL1 &= ~((0x2 << 5)|(0x2 << 4));//P0.18,  MOSI0

しかし、SPI デバイスはこの後停止しました。上記の元のセットアップは正常に機能しており、ロジック アナライザーで素晴らしい SPI 信号を表示しています。しかし、その新しいピンとそれに応じたセットアップを使用すると、ロジック アナライザーで CSN と MISO と SCK のみを有効にする (パルスなし) しか取得できません。

これだけ:

ここに画像の説明を入力

私は何を間違っていますか?(私は NXP MCU の経験がありません。ご容赦ください。)

編集:

記録のために、私は最終的にそれを自分自身で見つけ、問題を解決しました。

LPC_PINCON->PINSEL0 |= 0x2<<30; //SCK0, P0.15 
LPC_PINCON->PINSEL1 |= 0x2<<2;  //MISO0, P0.17 
LPC_PINCON->PINSEL1 |= 0x2<<4;  //MOSI0, P0.18 
LPC_GPIO0->FIODIR |= (1<<16);   //SSEL/CSN, P0.16 

これがロジック アナライザーの結果です。

ここに画像の説明を入力

4

1 に答える 1