stm32f103c8 s5851 r1
Dependencies: mbed mbed-STM32F103C8T6 USBDevice_STM32F103
main.cpp@0:c6bef2125fe4, 2021-06-17 (annotated)
- Committer:
- caa45040
- Date:
- Thu Jun 17 12:06:42 2021 +0000
- Revision:
- 0:c6bef2125fe4
stm32f103c8 s5851 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caa45040 | 0:c6bef2125fe4 | 1 | #include "stm32f103c8t6.h" |
caa45040 | 0:c6bef2125fe4 | 2 | #include "mbed.h" |
caa45040 | 0:c6bef2125fe4 | 3 | #include "USBSerial.h" |
caa45040 | 0:c6bef2125fe4 | 4 | |
caa45040 | 0:c6bef2125fe4 | 5 | USBSerial usbSerial(0x1f00, 0x2012, 0x0001, false); // connection is not blocked when USB is not plugged in |
caa45040 | 0:c6bef2125fe4 | 6 | //Serial pc(PA_2, PA_3); |
caa45040 | 0:c6bef2125fe4 | 7 | |
caa45040 | 0:c6bef2125fe4 | 8 | |
caa45040 | 0:c6bef2125fe4 | 9 | //#define S5851A 0x48 |
caa45040 | 0:c6bef2125fe4 | 10 | #define ADDR ((0x48)<<1) // address |
caa45040 | 0:c6bef2125fe4 | 11 | |
caa45040 | 0:c6bef2125fe4 | 12 | //I2C i2c(I2C_SDA, I2C_SCL); |
caa45040 | 0:c6bef2125fe4 | 13 | I2C i2c(PB_7, PB_6); //103 |
caa45040 | 0:c6bef2125fe4 | 14 | |
caa45040 | 0:c6bef2125fe4 | 15 | |
caa45040 | 0:c6bef2125fe4 | 16 | int tempval; //温度 |
caa45040 | 0:c6bef2125fe4 | 17 | char data_read[6]; //i2cバッファー |
caa45040 | 0:c6bef2125fe4 | 18 | int n10; //10の桁 |
caa45040 | 0:c6bef2125fe4 | 19 | |
caa45040 | 0:c6bef2125fe4 | 20 | int main() { |
caa45040 | 0:c6bef2125fe4 | 21 | confSysClock(); //Configure system clock (72MHz HSE clock, 48MHz USB clock) |
caa45040 | 0:c6bef2125fe4 | 22 | |
caa45040 | 0:c6bef2125fe4 | 23 | //usbSerial.printf("\r\n103\r\n"); |
caa45040 | 0:c6bef2125fe4 | 24 | |
caa45040 | 0:c6bef2125fe4 | 25 | while(1) { |
caa45040 | 0:c6bef2125fe4 | 26 | |
caa45040 | 0:c6bef2125fe4 | 27 | //初期化 |
caa45040 | 0:c6bef2125fe4 | 28 | //set address 0 |
caa45040 | 0:c6bef2125fe4 | 29 | i2c.write(ADDR, "\000", 1); //addres 0 |
caa45040 | 0:c6bef2125fe4 | 30 | |
caa45040 | 0:c6bef2125fe4 | 31 | //温度の読み込み |
caa45040 | 0:c6bef2125fe4 | 32 | // Read temperature register |
caa45040 | 0:c6bef2125fe4 | 33 | i2c.read(ADDR, data_read,1,false); |
caa45040 | 0:c6bef2125fe4 | 34 | |
caa45040 | 0:c6bef2125fe4 | 35 | //温度の保存 |
caa45040 | 0:c6bef2125fe4 | 36 | // Calculate temperature value in Celcius |
caa45040 | 0:c6bef2125fe4 | 37 | tempval = data_read[0]; |
caa45040 | 0:c6bef2125fe4 | 38 | |
caa45040 | 0:c6bef2125fe4 | 39 | //tempval = 12; //debug |
caa45040 | 0:c6bef2125fe4 | 40 | |
caa45040 | 0:c6bef2125fe4 | 41 | //計算 |
caa45040 | 0:c6bef2125fe4 | 42 | // Calculation temp |
caa45040 | 0:c6bef2125fe4 | 43 | n10 = tempval/10; //10の桁 |
caa45040 | 0:c6bef2125fe4 | 44 | tempval = tempval - ( n10 * 10 ); //1の桁 |
caa45040 | 0:c6bef2125fe4 | 45 | |
caa45040 | 0:c6bef2125fe4 | 46 | //液晶に出力 |
caa45040 | 0:c6bef2125fe4 | 47 | // Display result |
caa45040 | 0:c6bef2125fe4 | 48 | data_read[0] = '0' + n10; |
caa45040 | 0:c6bef2125fe4 | 49 | data_read[1] = '0' + tempval; |
caa45040 | 0:c6bef2125fe4 | 50 | data_read[2] = '\r'; |
caa45040 | 0:c6bef2125fe4 | 51 | data_read[3] = '\n'; |
caa45040 | 0:c6bef2125fe4 | 52 | data_read[4] = 0; |
caa45040 | 0:c6bef2125fe4 | 53 | |
caa45040 | 0:c6bef2125fe4 | 54 | //温度の出力 |
caa45040 | 0:c6bef2125fe4 | 55 | //puts(data_read); //010 |
caa45040 | 0:c6bef2125fe4 | 56 | //pc.printf(data_read); //767 |
caa45040 | 0:c6bef2125fe4 | 57 | usbSerial.printf(data_read); //103 |
caa45040 | 0:c6bef2125fe4 | 58 | |
caa45040 | 0:c6bef2125fe4 | 59 | //1秒待つ |
caa45040 | 0:c6bef2125fe4 | 60 | wait_ms(1000); |
caa45040 | 0:c6bef2125fe4 | 61 | |
caa45040 | 0:c6bef2125fe4 | 62 | }//while |
caa45040 | 0:c6bef2125fe4 | 63 | |
caa45040 | 0:c6bef2125fe4 | 64 | }//main |
caa45040 | 0:c6bef2125fe4 | 65 |