Forum: Mikrocontroller und Digitale Elektronik Bluepill STM32F103 Port B3 und Port B4


von Max M. (Gast)


Lesenswert?

Ich habe unter Mikroe mit dem Parameter
GPIO_Alternate_Function_Enable(@_GPIO_MODULE_SWJ_JTAGDISABLE );

Jtag abgeschaltet, nun blinkt B3 auch ordnungsgemäß, B4 blink nun 
ebenfalls, allerdings blinkt B4 invertiert?!

Muss noch was umgestellt werden?

von Wastl (hartundweichware)


Lesenswert?

Aus dem dürren Wort "Mikroe" wird sich kaum jemand etwas
zusammenreimen können. Du wirst schon etwas detailierter
beschreiben müssen was du tust und womit.

von Max M. (Gast)


Lesenswert?

Unabhängig von Mikroe, geht es um die alternativen Portfunktionen vom 
STm32F103
Diese habe ich aktiviert für Port B3 UND B4 aber nun ist B4 invertiert, 
was gilt es zu beachten?
Warum ist B4 invertiert?

von Wastl (hartundweichware)


Lesenswert?

Max M. schrieb:
> nun blinkt B3 auch ordnungsgemäß, B4 blink nun
> ebenfalls, allerdings blinkt B4 invertiert?!

Ist das eine Frage oder eine Aussage? Ich sehe Ausrufezeichen
und Fragezeichen an einem Satz gleichzeitig.

Portpins können nicht blinken, daher:

Wastl schrieb:
> Du wirst schon etwas detailierter
> beschreiben müssen was du tust und womit.

Das einzige was auf dem BluePill blinken kann ist die LED die
an einem Port hängt, und dieser Portpin ist PC13. Also weder
Port B Pin 3 noch Port B Pin 4.

von Max M. (Gast)


Angehängte Dateien:

Lesenswert?

Habe es mit
 AFIOEN_bit:=1;

 SWJ_CFG0_bit:=0;
 SWJ_CFG1_bit:=1;
 SWJ_CFG2_bit:=0;

auch
 SWJ_CFG0_bit:=0;
 SWJ_CFG1_bit:=0;
 SWJ_CFG2_bit:=1;
funktioniert nicht
Port B 4 blinkt immer invertiert


Versucht, und dabei gibt es diesen Effekt

"Bits 26:24 SWJ_CFG[2:0]: Serial wire JTAG configuration
These bits are write-only (when read, the value is undefined). They are 
used to configure the
SWJ and trace alternate function I/Os. The SWJ (Serial Wire JTAG) 
supports JTAG or SWD
access to the Cortex® debug port. The default state after reset is SWJ 
ON without trace.
This allows JTAG or SW mode to be enabled by sending a specific sequence 
on the JTMS /
JTCK pin.
000: Full SWJ (JTAG-DP + SW-DP): Reset State
001: Full SWJ (JTAG-DP + SW-DP) but without NJTRST
010: JTAG-DP Disabled and SW-DP Enabled
100: JTAG-DP Disabled and SW-DP Disabled
"

von Max M. (Gast)


Lesenswert?

AHHHH,
hat sich erledigt.
Port B.4 blinkte invertiert, da ich einfach nur mit
 GPIOB_ODR := not GPIOB_ODR;

Das komplette Port getoggelt habe.
Im Gegensatz zu allen anderen Ausgängen, steht dieser nach der 
Umstellung der AF Invertiert und invertiert daher natürlich auch weiter.
Wenn man erstmal alle Outs auf z.B. 0 setzt, blinkt alles im 
Gleichtakt:-)

Genug für heute:-)

von Max M. (Gast)


Lesenswert?

Da das Problem ja ein häufiges ist, einmal mehr eine Lösung um anderen 
Anfängern es leichter zu machen
In diesem Beispiel für Mikro mit Mikroe Pascal für ARM

So funktioniert es mit PB3 und PB4 beim Bluepill STM32F103
1
program STM32F103_Bluepill;
2
3
{ Declarations section }
4
{ Declarations section }
5
6
begin
7
 //SWJ_CFG0_bit:=0;
8
 //SWJ_CFG1_bit:=1;
9
 //SWJ_CFG2_bit:=0;
10
 GPIO_Digital_Output(@GPIOA_BASE, _GPIO_PINMASK_ALL); // Set PORTA as digital output
11
 GPIO_Digital_Output(@GPIOB_BASE, _GPIO_PINMASK_ALL); // Set PORTB as digital output
12
 GPIO_Digital_Output(@GPIOC_BASE, _GPIO_PINMASK_ALL); // Set PORTC as digital output
13
 GPIO_Alternate_Function_Enable(@_GPIO_MODULE_SWJ_JTAGDISABLE );
14
15
GPIOB_ODR:=0x0000;
16
17
While TRUE DO
18
 begin
19
 { Main program }
20
   GPIOB_ODR := not GPIOB_ODR; // Toggle PORTB
21
   delay_ms(1000);
22
 end;
23
end.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.