请问这种情况是啥回事??
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 );
- };
- #endif
复制代码 Cpp文件- #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;
- }
- }
复制代码 |