Skip to content

Cannot compile using STM32duino core #20

@TeguhTeknisi

Description

@TeguhTeknisi

Hi,
Thanks for EmonLib,
Why i cannot compile it, when I use the code example and using STM32 branch of Emonlib

My Setup:
Kubuntu OS
Arduino 1.8.19 and STM32duino v2.3.0 ( https://github.com/stm32duino/Arduino_Core_STM32/releases/tag/2.3.0 )
STM32 BluePill F103C6 (32K)

I use STM32F103C6T6 board and for the Sensor, i'am using ZMPT101B Transformer and Acs712 30A
Using this recommendation https://community.openenergymonitor.org/t/power-power-factor-reading-issue-while-using-acs712-zmpt101b-module/16333/8

I use the code from here https://github.com/openenergymonitor/STM32/blob/master/docs/STM32Duino/EmonLib.md

// EmonLibrary examples openenergymonitor.org, Licence GNU GPL V3
#include "EmonLib.h"             // Include Emon Library
EnergyMonitor emon1;             // Create an instance

void setup()
{  
  Serial.begin(9600);
  
  emon1.voltage(PA_0, 268.97, 1.7);  // Voltage: input pin, calibration, phase_shift
  emon1.current(PA_1, 60.606);       // Current: input pin, calibration.
}

void loop()
{
  emon1.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
  emon1.serialprint();           // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
  
  float realPower       = emon1.realPower;        //extract Real Power into variable
  float apparentPower   = emon1.apparentPower;    //extract Apparent Power into variable
  float powerFActor     = emon1.powerFactor;      //extract Power Factor into Variable
  float supplyVoltage   = emon1.Vrms;             //extract Vrms into Variable
  float Irms            = emon1.Irms;             //extract Irms into Variable
}

Using EmonLib from github

teguh@Teguh-X201EV:~/STM32F103$ git clone https://github.com/openenergymonitor/EmonLib.git
Cloning into 'EmonLib'...
remote: Enumerating objects: 182, done.
remote: Total 182 (delta 0), reused 0 (delta 0), pack-reused 182
Receiving objects: 100% (182/182), 47.49 KiB | 1013.00 KiB/s, done.
Resolving deltas: 100% (66/66), done.
teguh@Teguh-X201EV:~/STM32F103$ cd EmonLib
teguh@Teguh-X201EV:~/STM32F103/EmonLib$ git checkout STM32
Branch 'STM32' set up to track remote branch 'STM32' from 'origin'.
Switched to a new branch 'STM32'
teguh@Teguh-X201EV:~/STM32F103/EmonLib$

Here the error:

/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp: In member function 'void EnergyMonitor::calcVI(unsigned int, unsigned int)':
/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:62:35: error: too few arguments to function 'uint16_t adc_read_value(PinName, uint32_t)'
   62 |     startV = adc_read_value(inPinV);                    //using the voltage waveform
      |                                   ^
In file included from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/board.h:8,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/wiring.h:40,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/Arduino.h:36,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.h:15,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:13:
/opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/stm32/analog.h:55:10: note: declared here
   55 | uint16_t adc_read_value(PinName pin, uint32_t resolution);
      |          ^~~~~~~~~~~~~~
/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:80:36: error: too few arguments to function 'uint16_t adc_read_value(PinName, uint32_t)'
   80 |     sampleV = adc_read_value(inPinV);                 //Read in raw voltage signal
      |                                    ^
In file included from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/board.h:8,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/wiring.h:40,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/Arduino.h:36,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.h:15,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:13:
/opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/stm32/analog.h:55:10: note: declared here
   55 | uint16_t adc_read_value(PinName pin, uint32_t resolution);
      |          ^~~~~~~~~~~~~~
/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:81:36: error: too few arguments to function 'uint16_t adc_read_value(PinName, uint32_t)'
   81 |     sampleI = adc_read_value(inPinI);                 //Read in raw current signal
      |                                    ^
In file included from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/board.h:8,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/wiring.h:40,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/Arduino.h:36,                                                         
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.h:15,                                                                                           
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:13:
/opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/stm32/analog.h:55:10: note: declared here
   55 | uint16_t adc_read_value(PinName pin, uint32_t resolution);
      |          ^~~~~~~~~~~~~~
/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp: In member function 'double EnergyMonitor::calcIrms(unsigned int)':
/opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:167:36: error: too few arguments to function 'uint16_t adc_read_value(PinName, uint32_t)'
  167 |     sampleI = adc_read_value(inPinI);
      |                                    ^
In file included from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/board.h:8,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/wiring.h:40,
                 from /opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/Arduino.h:36,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.h:15,
                 from /opt/arduino-1.8.19/portable/sketchbook/libraries/EmonLib/EmonLib.cpp:13:
/opt/arduino-1.8.19/portable/packages/STMicroelectronics/hardware/stm32/2.3.0/cores/arduino/stm32/analog.h:55:10: note: declared here
   55 | uint16_t adc_read_value(PinName pin, uint32_t resolution);
      |          ^~~~~~~~~~~~~~
exit status 1
Error compiling for board Generic STM32F1 series.

Best regrads,
Teguh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions