This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.

Dependencies:   RemoteIR

main.cpp

Committer:
sb8718
Date:
2020-05-09
Revision:
133:278a9afa9e1a
Parent:
132:e36000d354c6

File content as of revision 133:278a9afa9e1a:

#include "mbed.h"

#define TMP_REG (0x01)
#define CONF_REG (0x03)
#define ADDR (0x48)

I2C i2c(I2C_SDA, I2C_SCL);
Serial pc(PA_2, PA_3, 115200); //IR receiver D4

int main() {
 
    int status;
    float temp;
    char data_write[2];
    char data_read[2];
    
    pc.printf("Welcome to I2C Test program\r\n");
    
    i2c.frequency(100000);
    
    data_write[0] = CONF_REG;
    data_write[1] = 0x40;
    status = i2c.write((ADDR << 1), data_write, 2);
    if(status != 0) {
        pc.printf("I2C configuration error!!\r\n");
        while(1) { }
    }
    
    while(1) {
        data_write[0] = TMP_REG;
        i2c.write((ADDR << 1), data_write, 1, 0);
        i2c.read(((ADDR << 1) | 0x01), data_read, 2, 0);
        
        int tempval = ((int) data_read[0] << 8) | data_read[1];
        //tempval >>= 3;
        
        if((tempval & 0x1000) > 0) {
            temp = (tempval - 65536)/128.0;
        } else {
            temp = tempval/128.0;
        }
        
        pc.printf("temperature = %.4f\r\n",temp);
        ThisThread::sleep_for(1000);
    }
}