Hallo zusammen,
ich war gerade am verzweifeln. Ich verwende ein MD070SD Display mit
16Bit parallel Bus an einem STM32f103C8T6 Board, welches in der Bucht
sehr günstig zu erwerben ist, auch BluePill genannt.
https://developer.mbed.org/users/hudakz/code/STM32F103C8T6_Hello/
Jetzt ist mir aufgefallen, dass sich mein GPIOB Pin4 nicht rücksetzen
lässt.
Getestet habe ich das ganze mit zwei Boards und auch einem minnimal
Projekt (nur GPIOB Pin4).
Ist euch hierzu irgendetwas bekannt?
Ist schon jemand darüber gestolpert und weis vielleicht sogar warum das
so ist? Optisch ist mir nichts aufgefallen, dass hier ein pull up oder
dergleichen dran wäre. Komischerweise bleibt mir beim Debugen das IDR
Register immer auf 1 hängen für Pin4, obwohl ODR auf 0 geht, womit ich
auf einen externen pull up schließen würde.
wo habe ich gerade meinen Denkfehler?
Grüße,
Stephan
mein minnimal Beispiel:
1 | #include "stm32f10x.h"
|
2 |
|
3 | int main(void) {
|
4 | SystemInit();
|
5 | GPIO_InitTypeDef GPIO_InitStructure;
|
6 |
|
7 | // Clock Enable PortB, PortA
|
8 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
|
9 |
|
10 | // Pins von PortB initialisieren
|
11 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
|
12 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
13 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
14 | GPIO_Init(GPIOB, &GPIO_InitStructure);
|
15 |
|
16 | GPIO_ResetBits(GPIOB, GPIO_Pin_4);
|
17 | while (1) {
|
18 | }
|
19 | }
|