[[ファームウェア関数一覧>ファームウェア関数一覧#u5cbf254]] *I2C_Init [#i94bb5ea] #contents **ヘッダ宣言 [#m6480c70] **関数プロトタイプ [#yd54e0a9] void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct) **動作 [#je75e26b] -I2Cx周辺回路を初期化します。 **引数 [#ba70e444] -I2Cx&br; I2C1又はI2C2を指定します。&br; &br; -I2C_InitStruct&br; '''stm32f10x_i2c.h'''ファイルで定義されている'''2C_InitTypeDef'''構造体へのポインタです。&br; &br; typedef struct { uint16_t I2C_Mode; uint16_t I2C_DutyCycle; uint16_t I2C_OwnAddress1; uint16_t I2C_Ack; uint16_t I2C_AcknowledgedAddress; uint32_t I2C_ClockSpeed; } I2C_InitTypeDef; &br; --I2C_Mode&br; I2Cの動作モードを以下のマクロから選択します。&br; &br; |CENTER:I2C_Mode|CENTER:説明|h |I2C_Mode_I2C|I2Cモードに設定します| |I2C_Mode_SMBusDevice|SMBusデバイス・モードに設定します| |I2C_Mode_SMBusHost|SMBusホスト・モードに設定します| &br; --I2C_DutyCycle&br; I2C Fastモードでのデューティ・サイクルを以下のマクロから選択します。&br; I2CがFastモードの場合のみ、この設定は重要な意味を持ちます。&br; &br; |CENTER:I2C_DutyCycle|CENTER:説明|h |I2C_DutyCycle_16_9|I2C fast mode Tlow/Thigh=16/9| |I2C_DutyCycle_2|I2C fast mode Tlow/Thigh=2| &br; --I2C_OwnAddress1&br; 自分自身のI2Cアドレスを7bit、又は10bitで設定します。&br; &br; --I2C_Ack&br; ACKの自動応答の有効・無効を以下のマクロから選択します。&br; &br; |CENTER:I2C_Ack|CENTER:説明|h |I2C_Ack_Enable|ACK応答を有効にします| |I2C_Ack_Disable|ACK応答を無効にします| &br; --I2C_AcknowledgedAddress&br; ACK応答を返すアドレス幅を以下のマクロから選択して定義します。&br; &br; |CENTER:II2C_AcknowledgedAddress|CENTER:説明|h |I2C_AcknowledgeAddress_7bit|7-bit アドレスを定義します| |I2C_AcknowledgeAddress_10bit|10-bit アドレスを定義します| &br; --I2C_ClockSpeed&br; I2Cバスのクロック速度を400KHz以下で設定します。&br; &br; **出力値 [#h69f88b5] -無し **戻り値 [#b53add20] -無し **呼び出し関数 [#bae756d8] -無し **サンプル [#n33cf11a] /* Initialize the I2C1 according to the I2C_InitStructure members */ I2C_InitTypeDef I2C_InitStructure; I2C_InitStructure.I2C_Mode = I2C_Mode_SMBusHost; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = 0x03A2; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed = 200000; I2C_Init(I2C1, &I2C_InitStructure); **参照 [#h07c596a] -