BluePill ciekawostka

Jan 06, 2024 Last reply: 2 lata temu 2 Replies

Jest sobie GOŁY!! BluePill, podłączone tylko zasilanie i STlink.



Wpisuję do niego:



#include <Arduino.h>



void setup() {



analogWrite(PA11,150); analogWrite(PA7,50); analogWrite(PA8,100); analogWrite(PA6,20);



}

void loop() { // put your main code here, to run repeatedly: }



efekt jest taki, że albo na PA7, albo na PA8 nie ma przebiegu, zależnie od kolejność wywołania analogWrite. Na PA6 i PA11 PWM jest zawsze.


platformio.ini:



[env:bluepill_f103c8] platform = ststm32 board = bluepill_f103c8 framework = arduino debug_tool = stlink upload_protocol = stlink monitor_speed = 115200

Spotkaliście się z czymś takim? Pozdrawiam JS


A jak przeniesiesz kod do loop() to co się stanie?

W arduino mocno mgliste jest kiedy i w jaki sposób wołane jest setup(). Szczególnie interesujące są problemy z kolejnością globalnych konstruktorów itd. Wątpie, aby to był problem tutaj, ale po prostu sprawdź, co będzie, jak to wsadzisz w loop.

JS snipped-for-privacy@poczta.onet.pl> napisał(a):

W Arduino zarówno PA7 jak i PA8 mają przypisany 1 kanał z timera 1. Stąd oba piny konkurują o to samo i jest konflikt. Arduino robi sobie różne rzeczy pod spodem i potem mamy takie niezrozumiałe, dziwne zachowania. Trzeba się wgłębiać w źródła stm32duino żeby dojść co jest nie tak. Niby Arduino jest proste, ale kosztem m.in. takich pułapek.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required