マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 6.1.2. テストプログラム

Up: 6.1.2. テストプログラム

Next: 6.1.2.2. 初期化手順


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 6. I2C: 6.1. シリアル液晶: 6.1.2. テストプログラム:

6.1.2.1. I2Cコントロールの関数化

 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. 初期化手順


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166