Previous: 6.1.2. テストプログラム |
Up: 6.1.2. テストプログラム |
Next: 6.1.2.2. 初期化手順 |
ST7032iへのアクセスを簡単にするためインストラクション用のST7032i_Command_Write関数とデータ用のST7032i_Data_Write関数を分けて用意しました。RSビットが違うだけですので引数で区別してもよかったのですが、筆者には関数自体を分ける方がわかりやすかったのでこうしています。
関数内での命令の実行手順はEEPROMへの書き込みを行ったときと特に違いはありません。
void ST7032i_Command_Write(uint8_t Data) {
? /* Send STRAT condition */ ? I2C_GenerateSTART(I2C1, ENABLE); ? /* Test on EV5 and clear it */ ? while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); ? /* Send EEPROM address for write */ ? I2C_Send7bitAddress(I2C1, ST7032I_ADDR << 1, I2C_Direction_Transmitter); ? /* Test on EV6 and clear it */ ? while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); ? /* Send the EEPROM’s internal address to write to : MSB of the address first */ ? I2C_SendData(I2C1, 0b00000000); ? /* Test on EV8 and clear it */ ? while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); ? /* Send the EEPROM’s internal address to write to : MSB of the address first */ ? I2C_SendData(I2C1, Data); ? /* Test on EV8 and clear it */ ? while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); ? /* Send STOP condition */ ? I2C_GenerateSTOP(I2C1, ENABLE); } |
Previous: 6.1.2. テストプログラム |
Up: 6.1.2. テストプログラム |
Next: 6.1.2.2. 初期化手順 |