member function declared in class 报错
请问这种情况是啥回事??no 'float MAX6675::read_temp()' member function declared in class 'MAX6675'
但是类里已经定义了#ifndef MAX6675_h
#define MAX6675_h
#include "WProgram.h"
class MAX6675
{
public:
MAX6675(int CS_pin, int SO_pin, int SCK_pin, int units);
float read_temp();
private:
int _CS_pin;
int _SO_pin;
int _SCK_pin;
int _units;
int chip_read( int CS_pin, int &error_tc );
};
#endifCpp文件#include <WProgram.h>
#include <MAX6675.h>
MAX6675::MAX6675(int CS_pin, int SO_pin, int SCK_pin, int units)
{
pinMode(CS_pin, OUTPUT);
pinMode(SO_pin, INPUT);
pinMode(SCK_pin, OUTPUT);
digitalWrite(CS_pin, HIGH);
_CS_pin = CS_pin;
_SO_pin = SO_pin;
_SCK_pin = SCK_pin;
_units = units;
}
float MAX6675::read_temp()
{
int value = 0;
int error_tc = 0;
float temp = 0.0;
digitalWrite(_CS_pin,LOW);
delay(2);
digitalWrite(_CS_pin,HIGH);
delay(220);
digitalWrite(_CS_pin,LOW);
digitalWrite(_SCK_pin,HIGH);
delay(1);
digitalWrite(_SCK_pin,LOW);
for (int i=11; i>=0; i--) {
digitalWrite(_SCK_pin,HIGH);
value += digitalRead(_SO_pin) << i;
digitalWrite(_SCK_pin,LOW);
}
digitalWrite(_SCK_pin,HIGH);
error_tc = digitalRead(_SO_pin);
digitalWrite(_SCK_pin,LOW);
for (int i=1; i>=0; i--) {
digitalWrite(_SCK_pin,HIGH);
delay(1);
digitalWrite(_SCK_pin,LOW);
}
// Disable Device
digitalWrite(_CS_pin, HIGH);
if(_units == 2) {
temp = (value*0.25) * 9.0/5.0 + 32.0;
} else if(_units == 1) {
temp = (value*0.25);
} else {
temp = value;
}
if(error_tc != 0) {
return -_CS_pin;
} else {
return temp;
}
} 额。。。。有完整的库和代码吗。。。
已经是完整的库了,下面的是程序#include <MAX6675.h>
int LED1 = 9; // Status LED Pin
int CS = 10; // CS pin on MAX6675
int SO = 12; // SO pin of MAX6675
int SCK = 13; // SCK pin of MAX6675
int units = 2; // Units to readout temp (0 = raw, 1 = ˚C, 2 = ˚F)
float temperature = 0.0;// Temperature output variable
// Initialize the MAX6675 Library for our chip
MAX6675 temp(CS,SO,SCK,units);
// Setup Serial output and LED Pin
// MAX6675 Library already sets pin modes for MAX6675 chip!
void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
}
void loop() {
// Read the temp from the MAX6675
temperature = temp.read_temp();
if(temperature < 0) {
// If there is an error with the TC, temperature will be < 0
Serial.print("Thermocouple Error on CS");
Serial.println( temperature );
digitalWrite(LED1, HIGH);
} else {
Serial.print("Current Temperature: ");
Serial.println( temperature );
digitalWrite(LED1, LOW);
}
// Wait one second before reading again
delay(1000);
} 你的库文件放到了自带库的目录下了????
页:
[1]