0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

STM32F303K8で温度,S-5851Aをシリアル出力

Last updated at Posted at 2021-06-18

目的
温度をシリアルに出力したい

1.SCLとSDAを接続、プルアップも忘れずに
2.電源の接続
3.下記のソースコードを書き込む
4.コンパイル実行で表示されたら終了
5.おわり

xプログラムは、STM32F767と全く同じ

D4 I2C1_SDA
D5 I2C1_SCL


# include "mbed.h"

//10の割り算 0から1028までは、正しい。主に0から999
# define DVI10(n) ((n*205)>>11)

//#define S5851A 0x48
# define ADDR        ((0x48)<<1)   //  address

Serial pc(SERIAL_TX, SERIAL_RX); //767
//RawSerial pc(PA_2, PA_3); //010

I2C i2c(I2C_SDA, I2C_SCL); //767
//I2C i2c(dp5, dp27); //1114
//I2C i2c(PA_10, PA_9); //010

int     tempval;        //温度
char    data_read[6];   //i2cバッファー
int     n10;            //10の桁

int main()
{
    
    pc.printf("\r\n767\r\n"); //767
    
    while (1) {

        //初期化
        //set address 0
        i2c.write(ADDR, "\000", 1); //addres 0

        //温度の読み込み
        // Read temperature register
        i2c.read(ADDR, data_read,1,false);

        //温度の保存
        // Calculate temperature value in Celcius
        tempval =  data_read[0];
    
        //tempval = 12; //debug
    
        //計算
        // Calculation temp
        //tempval = 12;
        n10 = DVI10(tempval);             //10の桁
        tempval = tempval - ( n10 * 10 ); //1の桁

        //液晶に出力
        // Display result
        data_read[0] = '0' + n10;
        data_read[1] = '0' + tempval;
        data_read[2] = '\r';
        data_read[3] = '\n';
        data_read[4] = 0;

        //温度の出力
        //puts(data_read); //010
        pc.printf(data_read); //767

    //1秒待つ
        wait_ms(1000);
    }//while

}//main

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



i2c_s5851a_1114_2.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?