在线时间4854 小时
UID3309825
ST金币0
蝴蝶豆17
注册时间2016-9-4
论坛元老
- 最后登录
- 2020-12-9
|
a0a.1 32b0c
/**
NUCLEO-F070R + DS18B20
Date: Oct.2016
Version: 1.0
Name: NUCLEO-F070R-DS1820
NOTE: For more info see here: http://www.emcu.it/NUCLEOevaBoards/mBed/QSG-Mbed-Library.pdf
原程序带NTC测温,本人将已其删除
UART
Baud Rate: 9600
Data Bit: 8
Parity: NONE
Stop Bit: 1
Flow Control: NONE
Connect to the NUCLEO-F070R8 the DS18B20 sensor (see the schematic below).
The temperature sampling time is 1 sec.
DS18B20 front view
__________
| |
| DS |
| 18B20 |
| |
|__________|
| | |
1 2 3
GND DQ VCC (3V3)
| | |______________ to VCC (3.3V on the NUCLEO-F070R)
| | _|_
| | | |
| | | | 4K7
| | | |
| | -|-
| |___|______________ to A1 (on the NUCLEO-F070RE)
|
|
|______________________ to GND (on the NUCLEO-F070RE)
This SW is just for only one DS18B20
This SW is a derivative of:: http://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/
On the: http://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/ there is a multi sensor (DS18B20) example.
*/
#define MULTIPLE_PROBES
#define DATA_PIN A1
#ifdef MULTIPLE_PROBES
#include "mbed.h"
#include "DS1820.h"
#define MAX_PROBES 16
float get_temperature(void);
float temp=0;
float tempArr[100];
int n=0;//n个测温设备
Serial pc(SERIAL_TX, SERIAL_RX); // 虚拟 USART2 tx, rx
DS1820* probe[MAX_PROBES];
int main()
{
// Initialize the probe array to DS1820 objects
int num_devices = 0;
while(DS1820::unassignedProbe(DATA_PIN)) //检测测温设备
{
probe[num_devices] = new DS1820(DATA_PIN);
num_devices++;
if (num_devices == MAX_PROBES)
break;
}
printf("Found %d device(s)\r\n\n", num_devices);//检测到n个测温设备
while(1)
{
probe[0]->convertTemperature(true, DS1820::all_devices); //Start temperature conversion, wait until ready
for (int i = 0; i<num_devices; i++)
printf("Device %d returns %3.3f oC\r\n", i, probe->temperature());
wait(1);
}
}
#else
#include "mbed.h"
#include "DS1820.h"
DS1820 probe(DATA_PIN);
int main() {
while(1) {
probe.convertTemperature(true, DS1820::all_devices); //Start temperature conversion, wait until ready
printf("It is %3.3f oC\r\n", probe.temperature());
wait(1);
}
}
#endif
|
|