STM32L010とMbedでI2Cスレーブの受信文字をシリアル出力(受信)(STM32L010F4P6)


x Mbed2リビジョン125

目的
I2Cスレーブのテスト

参考



#include "mbed.h"

//GPIOの初期化
DigitalOut myled(PA_4);//LED1

//シリアルの初期化
RawSerial pc(PA_2, PA_3); //010

//I2Cの初期化
I2CSlave slave(PA_10, PA_9); //010

//メイン関数
int main()
{

    char buf[10]; //I2Cバッファー

    //I2Cスレーブのアドレスの設定
    slave.address(0x80);

    //無限ループ
    while(1) {

        //I2Cの状態の読み出し(ポーリング)
        while (slave.receive() != I2CSlave::WriteAddressed) {}


        buf[0] = 0;//バッファーのクリア

        //I2Cスレーブの受信バッファーを読み取る
        slave.read(buf, 1);

        myled = 1;//LEDの点灯 debug

        //I2Cスレーブの受信データの表示
        pc.putc(buf[0]);

        //I2Cスレーブの受信データの表示 debug
        //pc.printf("\tRead A: %x\r\n", buf[0]);

        myled = 0;//LEDの消灯 debug


    }//while

}//main

//容量削減
void error(const char* format, ...) {}