<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; Измерение напряжения STM32 (Arduino IDE)]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=259</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=259&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Измерение напряжения STM32 (Arduino IDE)».]]></description>
		<lastBuildDate>Fri, 22 Jan 2021 18:11:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2949#p2949</link>
			<description><![CDATA[<p>int было в начале, пробовал float но не получилось.</p><p>float&nbsp; UxValue = 0;<br />float&nbsp; UxValue2 ;<br />/*<br />&nbsp; int&nbsp; UxValue = 0;<br />&nbsp; int&nbsp; UxValue2 = 0;<br />*/</p>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Fri, 22 Jan 2021 18:11:45 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2949#p2949</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2948#p2948</link>
			<description><![CDATA[<p>UxValue и UxValue2 это данные измерения входов PА6 PА7, а это int, только целое число.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 22 Jan 2021 18:03:42 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2948#p2948</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2946#p2946</link>
			<description><![CDATA[<p>ничего не изменилось</p><div class="codebox"><pre><code>float  M = sqrt(UxValue * UxValue + UxValue2 * UxValue2);
  float E = (float) RAD_TO_DEG * (atan2(UxValue, UxValue2));

  // UxValue = sum1 / 10; sum1 = 0;// UxValue = analogRead(PA6);
  // UxValue2 = sum2 / 10; sum2 = 0;// UxValue2 = analogRead(PA7);

  UxValue = sum1 / 10.00; sum1 = 0;// UxValue = analogRead(PA6);
  UxValue2 = sum2 / 10.00; sum2 = 0;// UxValue2 = analogRead(PA7)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Fri, 22 Jan 2021 17:38:59 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2946#p2946</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2945#p2945</link>
			<description><![CDATA[<div class="codebox"><pre><code>UxValue = sum1 / 10; sum1 = 0;// UxValue = analogRead(PA6);
UxValue2 = sum2 / 10; sum2 = 0;// UxValue2 = analogRead(PA7);</code></pre></div><p>UxValue = sum1 / 10.00; sum1 = 0;// UxValue = analogRead(PA6);<br />UxValue2 = sum2 / 10.00; sum2 = 0;// UxValue2 = analogRead(PA7);</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 22 Jan 2021 16:52:56 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2945#p2945</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2944#p2944</link>
			<description><![CDATA[<p>В первых двух колонках почему то после запятой одни нуля ?<br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/358076d008bb5e347fc788c8228cda34.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/358076d008bb5e347fc788c8228cda34.png" /></span></p><div class="codebox"><pre><code>float  UxValue = 0;
float  UxValue2 ;
/*
int  UxValue = 0;
int  UxValue2 = 0;
*/</code></pre></div><br /><br /><div class="quotebox"><blockquote><p>#include &lt;LCD5110_Graph.h&gt;<br />//LCD5110 lcd(PA4, PA3, PA2, PA0, PA1);<br />LCD5110 lcd(PA0, PA1, PA2, PA4, PA3);<br />extern unsigned char SmallFont[];</p><p>char UxString [6];<br />char UxString2 [6];<br />char MString3 [6];<br />char EString4 [6];</p><p>String str;<br />String str2;<br />String str3;<br />String str4;</p><p>//////////////////////////////////////////////////////////////////////////////////<br />float&nbsp; UxValue = 0;<br />float&nbsp; UxValue2 ;<br />/*<br />int&nbsp; UxValue = 0;<br />int&nbsp; UxValue2 = 0;<br />*/<br />///////////////////////////////////////////////////////////////////////////////</p><p>int&nbsp; M = 0;<br />int E = 0;<br />#include &lt;STM32ADC.h&gt;</p><p>STM32ADC myADC(ADC1);</p><p>uint8 pins[] = {PA6, PA7};</p><p>const int maxSamples = 2;<br />uint16_t dataPoints[maxSamples];<br />long sum1, sum2;</p><p>void setup() {</p><p>&nbsp; lcd.InitLCD();<br />&nbsp; lcd.setFont(SmallFont);</p><p>&nbsp; Serial.begin(115200);</p><p>&nbsp; myADC.calibrate();<br />&nbsp; rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);<br />&nbsp; pinMode(PA6, INPUT_ANALOG);<br />&nbsp; pinMode(PA7, INPUT_ANALOG);</p><p>&nbsp; myADC.setSampleRate(ADC_SMPR_239_5);<br />&nbsp; myADC.setScanMode();<br />&nbsp; myADC.setPins(pins, 2);<br />&nbsp; myADC.setContinuous();<br />&nbsp; myADC.setDMA(dataPoints, 2, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);<br />&nbsp; myADC.startConversion();<br />}</p><p>void loop() {</p><p>&nbsp; lcd.clrScr();<br />&nbsp; lcd.update();<br />&nbsp; </p><p>&nbsp; float&nbsp; M = sqrt(UxValue * UxValue + UxValue2 * UxValue2);<br />&nbsp; float E = (float) RAD_TO_DEG * (atan2(UxValue, UxValue2));</p><p>&nbsp; UxValue = sum1 / 10; sum1 = 0;// UxValue = analogRead(PA6);<br />&nbsp; UxValue2 = sum2 / 10; sum2 = 0;// UxValue2 = analogRead(PA7);</p><p>&nbsp; UxValue = map( UxValue, 0, 4095, 0, 65);<br />&nbsp; UxValue2 = map( UxValue2, 0, 4095, 0, 65);<br />&nbsp; //M = map( M, 0, 4095, 0, 94);<br />&nbsp; str = String(UxValue) ;<br />&nbsp; str2 = String(UxValue2) ;<br />&nbsp; str3 = String(M) + &quot;°&quot;;<br />&nbsp; str4 = String(E) + &quot;%&quot;;<br />&nbsp; str.toCharArray(UxString, 6);<br />&nbsp; str2.toCharArray(UxString2, 6);<br />&nbsp; str3.toCharArray(MString3, 6);<br />&nbsp; str4.toCharArray(EString4, 6);</p><p>&nbsp; fillBar( UxValue);&nbsp; &nbsp;//displays line<br />&nbsp; lcd.print(UxString, 2, 0); // displays # in %, position x, y<br />&nbsp; fillBar2( UxValue2);&nbsp; &nbsp;//displays line<br />&nbsp; lcd.print(UxString2, 22, 0); // displays # in %, position x, y<br />&nbsp; fillBar3( M);<br />&nbsp; lcd.print(MString3, 46, 0); // magnitude in #<br />&nbsp; fillBar4( E);<br />&nbsp; lcd.print(EString4, 46, 10);</p><p>&nbsp; lcd.update();</p><p>&nbsp; for (int j = 0; j &lt; 10; j++) {<br />&nbsp; &nbsp; sum1 = sum1 + dataPoints[0];<br />&nbsp; &nbsp; sum2 = sum2 + dataPoints[1];<br />&nbsp; &nbsp; delay(1);<br />&nbsp; }</p><p>&nbsp; Serial.print(UxValue);<br />&nbsp; Serial.print(&quot;&nbsp; &nbsp;&quot;);<br />&nbsp; Serial.print(UxValue2);<br />&nbsp; Serial.print(&quot;&nbsp; &nbsp;&quot;);<br />&nbsp; Serial.print(M);<br />&nbsp; Serial.print(&quot;&nbsp; &nbsp;&quot;);<br />&nbsp; Serial.println(E, 3); // = x/y</p><br /><p>}</p><p>void fillBar(int percent)<br />{<br />&nbsp; percent = map(percent, 0, 100, 0, 90);<br />&nbsp; lcd.drawLine(2, 42, percent, 42);//x, y</p><p>}</p><p>void fillBar2(int percent2)<br />{<br />&nbsp; percent2 = map(percent2, 0, 100, 0, 90);<br />&nbsp; lcd.drawLine(2, 46, percent2, 46); //x, y<br />}</p><p>void fillBar3(int percent3)<br />{<br />&nbsp; percent3 = map(percent3, 0, 100, 0, 90);//magnitude bar<br />&nbsp; lcd.drawLine(2, 44, percent3, 44); //x, y<br />}<br />void fillBar4(int percent4)<br />{<br />&nbsp; percent4 = map(percent4, 0, 100, 0, 90);//magnitude bar<br />&nbsp; lcd.drawLine(2, 20, percent4, 20); //x, y<br />}</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Fri, 22 Jan 2021 16:09:22 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2944#p2944</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2937#p2937</link>
			<description><![CDATA[<p>Большое спасибо</p>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Tue, 19 Jan 2021 14:57:08 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2937#p2937</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2936#p2936</link>
			<description><![CDATA[<p>Serial.print(sum1 / 10); //sum1 = 0;<br />&nbsp; Serial.print(&quot;&nbsp; &nbsp;&quot;);<br />&nbsp; Serial.println(sum2 / 10); //sum2 = 0;</p><p>&nbsp; lcd.setCursor(0, 0);<br />&nbsp; lcd.print(sum1 / 10); sum1 = 0;</p><p>&nbsp; lcd.setCursor(0, 1);<br />&nbsp; lcd.print(sum2 / 10); sum2 = 0;</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 19 Jan 2021 14:49:53 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2936#p2936</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2935#p2935</link>
			<description><![CDATA[<p>Почему то на LCD два нуля ?<br />На сериал монитор 28 и 30 а на LCD 0 и&nbsp; 0.<br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/32df6557f69aed42f3a0bd1480b17e33.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/32df6557f69aed42f3a0bd1480b17e33.png" /></span></p><div class="codebox"><pre><code>#include &lt;LiquidCrystal.h&gt;
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
#include &lt;STM32ADC.h&gt;

STM32ADC myADC(ADC1);

uint8 pins[] = {PA6, PA7};

const int maxSamples = 2;
uint16_t dataPoints[maxSamples];
long sum1, sum2;

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);
  pinMode(PA6, INPUT_ANALOG);
  pinMode(PA7, INPUT_ANALOG);

  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();
  myADC.setPins(pins, 2);
  myADC.setContinuous();
  myADC.setDMA(dataPoints, 2, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.startConversion();
}

void loop() {
  for (int j = 0; j &lt; 10; j++) {
    sum1 = sum1 + dataPoints[0];
    sum2 = sum2 + dataPoints[1];
    delay(1);
  }

  Serial.print(sum1 / 10); sum1 = 0;
  Serial.print(&quot;   &quot;);
  Serial.println(sum2 / 10); sum2 = 0;

  lcd.setCursor(0, 0);
  lcd.print(sum1 / 10); sum1 = 0;

  lcd.setCursor(0, 1);
  lcd.print(sum2 / 10); sum2 = 0;

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Tue, 19 Jan 2021 12:19:41 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2935#p2935</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2934#p2934</link>
			<description><![CDATA[<p>Получилось так, без сигнала номера прыгают от 8 до 42, с сигналом 280 до 320. Надо добавить усреднение = sum&nbsp; ?</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/cf4504d4a45f9ef3e123a03d1a2732d2.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/cf4504d4a45f9ef3e123a03d1a2732d2.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/28fb6cd5e1493b110f84e336b879f867.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/28fb6cd5e1493b110f84e336b879f867.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Tue, 19 Jan 2021 11:04:15 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2934#p2934</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2931#p2931</link>
			<description><![CDATA[<div class="codebox"><pre><code>#include &quot;arduinoFFT.h&quot;

#define SAMPLES 128
#define SAMPLING_FREQUENCY 40000
arduinoFFT FFT = arduinoFFT();

///////////////////
#include &lt;STM32ADC.h&gt;
STM32ADC myADC(ADC1);

uint8 pins[] = {PB0};

const int maxSamples = 1;
uint16_t dataPoints[maxSamples];
long sum3;
////////////////////

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);
  /////////////////////////////
  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);

  pinMode(PB0, INPUT_ANALOG);
  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();
  myADC.setPins(pins, 1);
  myADC.setContinuous();
  myADC.setDMA(dataPoints, 1, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.startConversion();
  ////////////////////////////

  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));
}

void loop() {

  /*SAMPLING*/
  for (int t = 0; t &lt; SAMPLES; t++)
  {

    microseconds = micros();
    vReal[t] = dataPoints[0];
    vImag[t] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
  }

  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);

  for (int t = 5; t &lt; (SAMPLES / 1); t++)
  {
    Serial.println(vReal[34], 1);    //View only this line in serial plotter to visualize the bins
  }

 /// delay(10);  //Repeat the process every second OR:

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 19 Jan 2021 00:22:24 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2931#p2931</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2929#p2929</link>
			<description><![CDATA[<p>Вот пытаюсь переделать fft чтобы работало с sum3, пока не получилось. <br />Оригинал&nbsp; = работает.<br /></p><div class="codebox"><pre><code>#include &quot;arduinoFFT.h&quot;

#define SAMPLES 128             //Must be a power of 2
#define SAMPLING_FREQUENCY 40000 //Hz, must be less than 10000 due to ADC

arduinoFFT FFT = arduinoFFT();

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);

  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));
}

void loop() {

  /*SAMPLING*/
  for (int t  = 0; t  &lt; SAMPLES; t ++)
  {
    microseconds = micros();    //Overflows after around 70 minutes!

    vReal[t ] = analogRead(PB0);
    vImag[t ] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
  }

  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);



  for (int t = 10; t  &lt; (SAMPLES / 2);t++)
  {

    Serial.print(vReal[t ], 1);
    Serial.print(&quot; &quot;);
    Serial.println(vReal[34], 1);    //View only this line in serial plotter to visualize the bins
  }

  //delay(1000);  //Repeat the process every second OR:
  //while(1);       //Run code once
}</code></pre></div><p> Переделка = не работает. </p><div class="codebox"><pre><code>#include &quot;arduinoFFT.h&quot;

#define SAMPLES 128
#define SAMPLING_FREQUENCY 40000
arduinoFFT FFT = arduinoFFT();

///////////////////
#include &lt;STM32ADC.h&gt;
STM32ADC myADC(ADC1);

uint8 pins[] = {PB0};

const int maxSamples = 2;
uint16_t dataPoints[maxSamples];
long sum3;
////////////////////

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);
  /////////////////////////////
  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);

  pinMode(PB0, INPUT_ANALOG);

  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();
  myADC.setPins(pins, 2);
  myADC.setContinuous();
  myADC.setDMA(dataPoints, 2, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.startConversion();
  ////////////////////////////

  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));
}

void loop() {

  /*SAMPLING*/
  for (int t = 0; t &lt; SAMPLES; t++)
  {
    microseconds = micros();
  vReal[t] = sum3 / 10;
   // vReal[t] = analogRead(PB0);
    vImag[t] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
  }

  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);

  ////////////////////
  for (int t = 5; t &lt; 10; t++) {
    sum3 = sum3 + dataPoints[0];

    delay(1);
  }

  for (int t = 5; t &lt; (SAMPLES / 2); t++)
  {
    sum3 = sum3 + dataPoints[0];

    Serial.print(sum3 / 10); sum3 = 0;
    Serial.print(&quot; &quot;);
    //Serial.print(vReal[t], 1);
    //Serial.print(&quot; &quot;);
    Serial.println(vReal[34], 1);    //View only this line in serial plotter to visualize the bins
  }

  delay(10);  //Repeat the process every second OR:

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Mon, 18 Jan 2021 18:12:14 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2929#p2929</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2928#p2928</link>
			<description><![CDATA[<p>сделал sum3 потому что&nbsp; sum1&nbsp; принадлежит для PA .<br />PA6&nbsp; и PA7 = хорошо, PB0 = не хорошо .<br />PB0 регирует на любую частоту = оранцовая линия, голубая линия = 0 должна регировать на одну частоту.</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/c5bbef0a23bcb353488983f16d4e2b13.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/c5bbef0a23bcb353488983f16d4e2b13.png" /></span></p><div class="codebox"><pre><code>#include &quot;arduinoFFT.h&quot;

#define SAMPLES 128             //Must be a power of 2
#define SAMPLING_FREQUENCY 40000 //Hz, must be less than 10000 due to ADC

#include &lt;STM32ADC.h&gt;
STM32ADC myADC(ADC1);

//uint8 pins[] = {PA6, PA7};
uint8 pins[] = {PA6, PA7, PB0};


const int maxSamples = 2;
uint16_t dataPoints[maxSamples];
//long sum1, sum2;
long sum1, sum2, sum3;
arduinoFFT FFT = arduinoFFT();

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);


  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);
  pinMode(PA6, INPUT_ANALOG);
  pinMode(PA7, INPUT_ANALOG);
  pinMode(PB0, INPUT_ANALOG);
  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();
  // myADC.setPins(pins, 2);

  ////////////////////////
  myADC.setPins(pins, 3);
  ////////////////////////

  myADC.setContinuous();
  //myADC.setDMA(dataPoints, 2, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.setDMA(dataPoints, 3, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.startConversion();

  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));

}

void loop() {

  for (int j = 0; j &lt; 10; j++) {
    sum1 = sum1 + dataPoints[0];
    sum2 = sum2 + dataPoints[1];
    sum3 = sum3 + dataPoints[2];
    delay(1);
  }

  /*SAMPLING*/

  for (int j = 0; j &lt; SAMPLES; j++)
  {
    microseconds = micros();    //Overflows after around 70 minutes!

    //vReal[t] = analogRead(PB0);
    //. vReal[t] = sum1 / 10;
    vReal[j] = sum3 / 10;
    vImag[j] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
  }

  /////////////////////////////
  /*SAMPLING*/
  /*
    for (int t = 0; t &lt; SAMPLES; t++)
    {
    microseconds = micros();    //Overflows after around 70 minutes!

    //vReal[t] = analogRead(PB0);
    //. vReal[t] = sum1 / 10;
    vReal[t] = sum3 / 10;
    vImag[t] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
    }
    //////////////////////////////
  */
  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);

  Serial.print(vReal[34], 1); //orange
  Serial.print(&quot;   &quot;);
  Serial.print(sum1 / 10); sum1 = 0;//PA6, green
  Serial.print(&quot;   &quot;);
  Serial.print(sum2 / 10); sum2 = 0;//PA7, red
  Serial.print(&quot;   &quot;);
  Serial.println(sum3 / 10); sum3 = 0;// blue
  //delay(100);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Mon, 18 Jan 2021 16:45:41 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2928#p2928</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2926#p2926</link>
			<description><![CDATA[<p>vReal[t] = sum1 / 10;</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 18 Jan 2021 15:18:58 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2926#p2926</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2925#p2925</link>
			<description><![CDATA[<p>Начал с начала, вот попроще&nbsp; программа, подумал что надо добавить sum3 , но не работает.</p><div class="codebox"><pre><code>#include &quot;arduinoFFT.h&quot;

#define SAMPLES 128             //Must be a power of 2
#define SAMPLING_FREQUENCY 40000 //Hz, must be less than 10000 due to ADC

#include &lt;STM32ADC.h&gt;
STM32ADC myADC(ADC1);

//uint8 pins[] = {PA6, PA7};
uint8 pins[] = {PA6, PA7, PB0};


const int maxSamples = 2;
uint16_t dataPoints[maxSamples];
//long sum1, sum2;
long sum1, sum2, sum3;
arduinoFFT FFT = arduinoFFT();

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);


  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8);
  pinMode(PA6, INPUT_ANALOG);
  pinMode(PA7, INPUT_ANALOG);
  pinMode(PB0, INPUT_ANALOG);
  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();
 // myADC.setPins(pins, 2);
 
  ////////////////////////
 myADC.setPins(pins, 3);
  ////////////////////////
  
  myADC.setContinuous();
  //myADC.setDMA(dataPoints, 2, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
    myADC.setDMA(dataPoints, 3, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);
  myADC.startConversion();

  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));

}

void loop() {

  for (int j = 0; j &lt; 10; j++) {
    sum1 = sum1 + dataPoints[0];
    sum2 = sum2 + dataPoints[1];
    sum3 = sum3 + dataPoints[2];
    delay(1);
  }

  /*SAMPLING*/
  for (int t = 0; t &lt; SAMPLES; t++)
  {
    microseconds = micros();    //Overflows after around 70 minutes!

    //vReal[t] = analogRead(PB0);
    vImag[t] = 0;

    while (micros() &lt; (microseconds + sampling_period_us)) {
    }
  }

  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);

  Serial.print(vReal[34], 1);
  Serial.print(&quot;   &quot;);
  Serial.print(sum1 / 10); sum1 = 0;
  Serial.print(&quot;   &quot;);
  Serial.print(sum2 / 10); sum2 = 0;
  Serial.print(&quot;   &quot;);
  Serial.println(sum3 / 10); sum3 = 0;

}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Mon, 18 Jan 2021 15:09:51 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2925#p2925</guid>
		</item>
		<item>
			<title><![CDATA[Re: Измерение напряжения STM32 (Arduino IDE)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2923#p2923</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2021/01/613e1d4fbc6b514961cdc15fbdb45217.png" alt="http://forum.rcl-radio.ru/uploads/images/2021/01/613e1d4fbc6b514961cdc15fbdb45217.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Mon, 18 Jan 2021 12:17:53 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2923#p2923</guid>
		</item>
	</channel>
</rss>
