Sari la conținut
ELFORUM - Forumul electronistilor

Arduino IDE-STM32duino bootloader.


aureliu67

Postări Recomandate

Sarbatori fericite tuturor!

Am o intrebare probabil foarte simpla pt unii. Am cerut lui BING sa-mi creeze un programel in Arduino IDE pt STM 32 blue pill. La programelul cu un singur senzor a mers bine. La programelul pentru 2 senzori (LDR) a dat cu virgula, (atasata mesajului rosu de eroare). Asa si nu am inteles care este eroarea..

 

#define ANALOG_PIN_0 A0;
#define ANALOG_PIN_1 A1;

void setup() {
// Initialize the serial communication
Serial.begin(9600);
}

void loop() {
// Read the analog values from the pins
int analogValue0 = analogRead(ANALOG_PIN_0);
int analogValue1 = analogRead(ANALOG_PIN_1);
// Print the analog values
Serial.print("analog Value0: ");
Serial.println(analogValue0);
Serial.print("analog Value 1: ");
Serial.println(analogValue1);
// Wait for a short time
delay(100);
}

 

 

 

 

Arduino: 1.8.19 (Windows 10), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STM32duino bootloader, 72Mhz (Normal), Smallest (default)"











C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Aurel\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Aurel\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Aurel\Documents\Arduino\libraries -fqbn=ArduinoSTM32:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=DFUUploadMethod,cpu_speed=speed_72mhz,opt=osstd -vid-pid=0000_0000 -ide-version=10819 -build-path C:\Users\Aurel\AppData\Local\Temp\arduino_build_204711 -warnings=default -build-cache C:\Users\Aurel\AppData\Local\Temp\arduino_cache_267494 -prefs=build.warn_data_percentage=75 -verbose C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Aurel\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Aurel\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Aurel\Documents\Arduino\libraries -fqbn=ArduinoSTM32:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=DFUUploadMethod,cpu_speed=speed_72mhz,opt=osstd -vid-pid=0000_0000 -ide-version=10819 -build-path C:\Users\Aurel\AppData\Local\Temp\arduino_build_204711 -warnings=default -build-cache C:\Users\Aurel\AppData\Local\Temp\arduino_cache_267494 -prefs=build.warn_data_percentage=75 -verbose C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino
Using board 'genericSTM32F103C' from platform in folder: C:\Program Files (x86)\Arduino\hardware\ArduinoSTM32\STM32F1
Using core 'maple' from platform in folder: C:\Program Files (x86)\Arduino\hardware\ArduinoSTM32\STM32F1
Detecting libraries used...
"C:\\Users\\Aurel\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8002000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10819 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/stm32f1/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\cores\\maple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\variants\\generic_stm32f103c" "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\sketch\\proba3_analog_input.ino.cpp" -o nul
Generating function prototypes...
"C:\\Users\\Aurel\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8002000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10819 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/stm32f1/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\cores\\maple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\variants\\generic_stm32f103c" "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\sketch\\proba3_analog_input.ino.cpp" -o "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\Aurel\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -g -Os -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8002000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10819 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/stm32f1/include" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\cores\\maple" "-IC:\\Program Files (x86)\\Arduino\\hardware\\ArduinoSTM32\\STM32F1\\variants\\generic_stm32f103c" "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\sketch\\proba3_analog_input.ino.cpp" -o "C:\\Users\\Aurel\\AppData\\Local\\Temp\\arduino_build_204711\\sketch\\proba3_analog_input.ino.cpp.o"
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino: In function 'void loop()':
proba3_analog_input:1:22: error: 'A0' was not declared in this scope
 #define ANALOG_PIN_0 A0;
                      ^
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:11:31: note: in expansion of macro 'ANALOG_PIN_0'
 int analogValue0 = analogRead(ANALOG_PIN_0);
                               ^~~~~~~~~~~~
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:1:22: note: suggested alternative: 'D0'
 #define ANALOG_PIN_0 A0;
                      ^
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:11:31: note: in expansion of macro 'ANALOG_PIN_0'
 int analogValue0 = analogRead(ANALOG_PIN_0);
                               ^~~~~~~~~~~~
proba3_analog_input:11:43: error: expected primary-expression before ')' token
 int analogValue0 = analogRead(ANALOG_PIN_0);
                                           ^
proba3_analog_input:2:22: error: 'A1' was not declared in this scope
 #define ANALOG_PIN_1 A1;
                      ^
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:12:31: note: in expansion of macro 'ANALOG_PIN_1'
 int analogValue1 = analogRead(ANALOG_PIN_1);
                               ^~~~~~~~~~~~
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:2:22: note: suggested alternative: 'D1'
 #define ANALOG_PIN_1 A1;
                      ^
C:\Users\Aurel\Desktop\proba3_analog_input\proba3_analog_input.ino:12:31: note: in expansion of macro 'ANALOG_PIN_1'
 int analogValue1 = analogRead(ANALOG_PIN_1);
                               ^~~~~~~~~~~~
proba3_analog_input:12:43: error: expected primary-expression before ')' token
 int analogValue1 = analogRead(ANALOG_PIN_1);
                                           ^
exit status 1
'A0' was not declared in this scope
 

Editat de aureliu67
Link spre comentariu
  • Răspunsuri 33
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Acum 22 minute, modoran a spus:

Eu pot sa inteleg ca unii nu sepricep la programare, dar macar regulile de baza ar trebui cunoscute ale unui limbaj de programare. Daca nu se cunosc din alea fie se studiaza, fie se renunta la lucrul cu asa ceva.

Care ar fi regulile de baza pt Arduino IDE? Ca nu am gasit asa ceva nicaieri. Doar descriere de comenzi si ce ar face ele..

Nu vreau sa supar pe nimeni si tiu ca sunt prea batran ca sa mai pot invata ceva, dar vreau sa pot sa rezolv doar  chestii simple pt mine.. nu pretind la nimic mai mult. Imi pare rau daca am deranjat pe cineva. Mai ales ca am mers pe mana lui BING, care vad ca nu e in stare sa rezolve chestia asta (programel cu 7 linii de cod) si va suparati ca nu ma duce mintea pe mine sa o fac.. Pai ma pot compara eu cu AI?? Daca el nu e in stare ce pretentii pot sa apara referitor la mine??

Editat de aureliu67
Link spre comentariu

Sigur se compilează atâta timp cat nu aveți alte probleme la IDE.

Regulile de baza nu sunt pentru IDE ci pentru limbajul de programare folosit.

 

#define ANALOG_PIN_0 A0
#define ANALOG_PIN_1 A1

void setup() {
// Initialize the serial communication
Serial.begin(9600);
}

void loop() {
// Read the analog values from the pins
int analogValue0 = analogRead(ANALOG_PIN_0);
int analogValue1 = analogRead(ANALOG_PIN_1);
// Print the analog values
Serial.print("analog Value0: ");
Serial.println(analogValue0);
Serial.print("analog Value 1: ");
Serial.println(analogValue1);
// Wait for a short time
delay(100);
}

 

Ce zice GPT la mine:

// Include the necessary libraries
#include <Arduino.h>

// Define the analog pins for reading
const int analogPin1 = PA0; // Change this to the pin you have connected the first sensor to
const int analogPin2 = PA1; // Change this to the pin you have connected the second sensor to

void setup() {
  // Start serial communication at a specific baud rate
  Serial.begin(9600);
}

void loop() {
  // Read the analog value from the first pin
  int value1 = analogRead(analogPin1);

  // Read the analog value from the second pin
  int value2 = analogRead(analogPin2);

  // Print the values to the Serial Monitor
  Serial.print("Sensor 1 Value: ");
  Serial.print(value1);
  Serial.print("\tSensor 2 Value: ");
  Serial.println(value2);

  // A delay to avoid overwhelming the Serial Monitor
  delay(1000);
}

 

L-am tras putin de mustati si cica:

"Thanks for bringing this up, and I apologize for any confusion. The inclusion of Arduino.h is automatically taken care of by the Arduino IDE in most cases.:

După asta a scris iar tot programul dar fără #include Arduino.h deși pana la umăr nu era greșit nici așa.

Referitor la problema cu ";" la #define nu are cum sa dea astfel de gherle cum zice @aureliu67

Link spre comentariu
Acum 47 minute, antemir a spus:

Eu altceva te-am intrebat.

Acum, amintindu-mi ce am tot incercat, admit, desi nu mai sunt sigur, ca sa salvat o anumita modificarea programului, din cauza ca nu mergea si incercam sa gasesc gresala. posibil ca la incercarea de compilare a variantei modificate de mine sa salvat peste varianta originala. Insa asta sa intamplat doar din cauza ca ce mi-a dat AI nu mergea. Repet inca odata ca nu sunt sigur daca asa a fost sau nu. Pentru ca la cererea mea recenta , solutia mi-a aparut fara punct si virgula..

Link spre comentariu
Acum 15 minute, Stefan a spus:

Sigur se compilează atâta timp cat nu aveți alte probleme la IDE.

Regulile de baza nu sunt pentru IDE ci pentru limbajul de programare folosit.

 

#define ANALOG_PIN_0 A0
#define ANALOG_PIN_1 A1

void setup() {
// Initialize the serial communication
Serial.begin(9600);
}

void loop() {
// Read the analog values from the pins
int analogValue0 = analogRead(ANALOG_PIN_0);
int analogValue1 = analogRead(ANALOG_PIN_1);
// Print the analog values
Serial.print("analog Value0: ");
Serial.println(analogValue0);
Serial.print("analog Value 1: ");
Serial.println(analogValue1);
// Wait for a short time
delay(100);
}

 

Ce zice la mine GPT:

// Include the necessary libraries
#include <Arduino.h>

// Define the analog pins for reading
const int analogPin1 = PA0; // Change this to the pin you have connected the first sensor to
const int analogPin2 = PA1; // Change this to the pin you have connected the second sensor to

void setup() {
  // Start serial communication at a specific baud rate
  Serial.begin(9600);
}

void loop() {
  // Read the analog value from the first pin
  int value1 = analogRead(analogPin1);

  // Read the analog value from the second pin
  int value2 = analogRead(analogPin2);

  // Print the values to the Serial Monitor
  Serial.print("Sensor 1 Value: ");
  Serial.print(value1);
  Serial.print("\tSensor 2 Value: ");
  Serial.println(value2);

  // A delay to avoid overwhelming the Serial Monitor
  delay(1000);
}

 

L-am tras putin de mustati si cica:

"Thanks for bringing this up, and I apologize for any confusion. The inclusion of Arduino.h is automatically taken care of by the Arduino IDE in most cases.:

După asta a scris iar tot programul dar fără #include Arduino.h deși pana la umăr nu era greșit nici așa.

Domnule Stefan, va multumesc mult. Ati rezolvat problema. Varianta a doua se compileaza. Am testat prima varianta prezentata de Dvs (programul sursa) si a dat aceleasi erori. Acesta insa sa compilat cu succes.. Multumesc, , acum trec la faza a 2 cu deciziile. Sper sa nu ma bage iar in balarii AI. 

PS. domnule Stefan, eu inca mai folosesc uneori termostatul cu PIC pentru care mi-ati facut programul.  Au trecut peste 10 ani iar jucaria respectiva inca functioneaza. Spre deosebire de multe arduine care au dat coltul fara motive vizibile.. in alte montaje la fel de simple..  Sunteti printre cei mai valorosi membri al acestui site.   Va multumesc din partea celor mai putin priceputi de aici, cu care aveti atata rabdare si carora le oferiti ajutorul dvs. Nu afirm ca sunteti singurul insa cu sigurnta sunteti unul dintre cei mai altruisti membri al acestui forum. Multumesc pt timpul acordat

Link spre comentariu

Plăcutele astea Blue Pill sunt ceva mai complicate fata de clasicele Arduino Nano, adică microcontrolerul STM32F1... este mai complexe fata de Atmega328.

Am lucrat foarte puțin cu familia asta de MCU si de fiecare data m-am enervat când am încercat sa-l scriu direct din Arduino. Vina nu a fost a IDE-ului ci mai mult a nepriceperii mele de a înțelege ce drivere trebuie sa instalez si in ce mod comunica prin USB.

De exemplu astăzi când l-am conectat a USB nu am mai reușit sa comunic cu el nici "batut". Pana nu am rescris, cu un programator extern, alt bootloder si am reinstalt alte drivere nu am reușit sa descarc nimic din IDE-ul Arduino.

 

In cazul meu setările pentru a încărca ceva in Blue Pill sunt cele de mai jos. Habar nu am ce alte variante mai sunt dar când am încercat fără CDC nu am mai reușit sa-l scot din DFU si iar a trebuie sa=l rescriu cu prog. extern.

Blue-Pill-CDC.png


Nu știu cum pot testa viteza de comunicație deoarece pentru USB-CDC (Virtual COM Port) funcționează indiferent de baud rate-ul selectat in monitor.

Blue-Pill-first-use.png

Link spre comentariu
La 24.12.2023 la 9:52, nico_2010 a spus:

Dupa "Serial.begin()" introdu 

"while (!Serial) {

; // Wait for serial to connect

}"

Eventual si un delay de 1000ms.

De pe tableta nu pot formata codul prin butonul "insert code"

Multumesc! Acum afisaza datele sensorilor. Intradevar trebuia inserata comanda respectiva.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări