Hallo Liebe Leute, Ich versuche mich grade im verständniss des STM32f103VET6 aber das klappt nicht so ganz ^^ ich habe 2 Taster auf meinem Board + 1 LED und will diese LED ein und aus schalten. Aber mein Code läuft nicht wirklich... kann mir jemand vielleicht mal nen arschtrit geben das ich meinen fehler sehe und daraus lerne? wäre genial ^^ #include "stm32f10x.h" GPIO_InitTypeDef GPIO_InitStructure; int main(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2,GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) = 0) { GPIOC->BSRR = GPIO_Pin_7; // Led Ein } if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) = 0) { GPIOD->BRR = GPIO_Pin_7; // Led aus } return .0; }
sry war nen kleiner syntax fehler drine. aber mein Problem ist das die LED halt garnicht erst an geht wenn ich taster 1 drücke... #include "stm32f10x.h" GPIO_InitTypeDef GPIO_InitStructure; int main(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2,GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) == 0) { GPIOC->BSRR = GPIO_Pin_7; // LED On } if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) == 0) { GPIOD->BRR = GPIO_Pin_7; } return .0; }
1 | if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) == 0) |
2 | {
|
3 | GPIOC->BSRR = GPIO_Pin_7; // LED On |
4 | }
|
5 | if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) == 0) |
6 | {
|
7 | GPIOD->BRR = GPIO_Pin_7; |
8 | }
|
Verifizier mal, ob die LED an Pin 7 von GPIOC oder GPIOD hängt und nimm dann für ein und ausschalten das Selbe :)
Nils Hesse schrieb: > if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) == 0) > { > GPIOC->BSRR = GPIO_Pin_7; // LED On > } > if (GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) == 0) > { > GPIOD->BRR = GPIO_Pin_7; > } > > Verifizier mal, ob die LED an Pin 7 von GPIOC oder GPIOD hängt und nimm > dann für ein und ausschalten das Selbe :) ahhh xD GPIOC aber geht immer noch nit -.-
RP6Conrad schrieb: > Auf welche pinnen sitzt JTAG ? Ist er ausgeschaltet ? Was hat den der JTAG damit zu tuen ?
Wenn du Pins nutzen willst, auf welchen JTAG Signale laufen, musst du zuerst JTAG ausschalten, ansonsten sind diese Pins nicht für normale GPIO Anwendungen verfügbar. PC7 und PE2/PE3 sind aber nicht für JTAG zuständig. PE2 und PE3 sind aber sehr wohl fürs TRACE Interface verantwortlich, also falls du das verwendest, solltest du da nochmal nachschauen. Außerdem:
1 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2,GPIO_Pin_3; |
Ich persönlich kenne die Initialisierung hierbei nur so, dass man beide Pins miteinander or'ed, also
1 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; |
Das kann aber auch persönliches Unwissen sein. Grüße Nils
Standard ist den JTAG eingeschaltet, die Pins sind dan auch fest met den JTAG verknupft. Die konnen dan nicht angesteuert werden. Diese function schaltet der JTAG dan aus : GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); Aber welche Pins sind für JTAG forgesehen bei ihre controller ?
Du kannst gar nicht so schnell drücken, wie Dein Programm vorbei ist. Setze die Abfrage mal in eine Schleife. while(1) { ........ }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.