-1
私はstm32のTFT LCDドライバを書きました。私は8ビットのデータをLCDに書き込む必要があります。私はmcufriendの図書館でこのマクロを見つけましたが、どのように動作するのか、どのように編集できるのかよくわかりません。誰かがこのようなマクロを書く方法とその仕組みを書くことができますか? REGISTERで> regs- > REGISTER = 値Cで8ビットのデータをマクロで書き込む方法は?
-
PORT:STM32duino構文のように見えます
#define write_8(d) { \
GPIOA->regs->BSRR = 0x0700 << 16; \
GPIOB->regs->BSRR = 0x0438 << 16; \
GPIOC->regs->BSRR = 0x0080 << 16; \
GPIOA->regs->BSRR = (((d) & (1<<0)) << 9) \
| (((d) & (1<<2)) << 8) \
| (((d) & (1<<7)) << 1); \
GPIOB->regs->BSRR = (((d) & (1<<3)) << 0) \
| (((d) & (1<<4)) << 1) \
| (((d) & (1<<5)) >> 1) \
| (((d) & (1<<6)) << 4); \
GPIOC->regs->BSRR = (((d) & (1<<1)) << 6); \
}
それで、ハードウェアレジスタに魔法の値の束を書いています。これらの値は何ですか?データシートがあなたに伝えます。 –
このマクロを入手した場所のサポートサイトではありません。あなたはやりたいと思っているかどうかわからない。 STM32上のGPIOにオクテットを書きたい場合は、ODRへの簡単なバイトライトを簡単に使用できます。これがビットバンディングプロトコルの場合は、関数を使用します。関数が実行するマクロを決して使用しないでください!それは悪い習慣です。 – Olaf
@Olafありがとう。 – Sewek