1
I2C STM32F0 HALライブラリを使用したレジスターのアドレス指定
私はSTMのCUBEおよびHAL_librariesを使用するのが非常に初めてです。32ピンのSTM32F0マイクロコントローラを使用しています。I2Cの回路図は正しいです。ここで少し助けが必要です。 I2C通信を使用する静電容量センサー(FDC1004)があります。データを読み取るには、これらのレジスタに書き込む必要があります。 STARTリクエストフォームマスターをスレーブに正しく送信するにはどうすればよいですか(スレーブアドレスはA0)。 ポインタを0x0Cレジスタに設定する方法は? データシートでは、(レジスタ0x0C:bit [7:4])から1を参照しています。)どうすればよいですか?そして最後に、同じレジスタから読み取る方法は? さらに、DONE_xフィールド(レジスタ0x0C:bits [3:0])を読み取ってから、それを読み取る必要がありますか? しかし、私が適切なレジスタに対応しているかどうかはわかりません!センサーからデータが返されないからです! これが私のコードです: int I2Ccomm () { HAL_I2C_Master_Transmit(&hi2c1,0xA1,0x0C, 10, 100); //start bit and pointer to register HAL_Delay(50); HAL_I2C_Master_Transmit(&hi2c1,0xA1,0x054, 10, 100); // setting the register HAL_Delay(50); HAL_I2C_Master_Receive(&hi2c1, 0xA0, 0x0C, 10, 100); //read from this register HAL_Delay(50); HAL_I2C_Master_Receive(&hi2c1, 0xA0, 0x02, 10, 100); //read data from …