Skocz do zawartości

Dwa kody do tego samego zadania STM32F1


faustin

Pomocna odpowiedź

Witam , mam kod do właczania diody za pomoca przycisku , który działa 

oto kod:

#include "stm32f1xx.h"

int main(void)
{
    HAL_Init();

    __HAL_RCC_GPIOA_CLK_ENABLE();
    __HAL_RCC_GPIOC_CLK_ENABLE();

    GPIO_InitTypeDef gpio;
    gpio.Pin = GPIO_PIN_4;
    gpio.Mode = GPIO_MODE_OUTPUT_PP;
    gpio.Pull = GPIO_NOPULL;
    gpio.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &gpio);

    gpio.Pin = GPIO_PIN_7;     // konfigurujemy pin 13
    gpio.Mode = GPIO_MODE_INPUT;     // jako wejście
    gpio.Pull = GPIO_PULLUP;        // włączamy rezystor podciągający
    HAL_GPIO_Init(GPIOC, &gpio);    // port GPIOC

    while (1)
    {
        if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_7) == GPIO_PIN_RESET) { // jesli przycisk jest przycisniety,
            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); // zapal diode
        } else {
            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
        }
    }
}


 

 

 no i drugi , który wydaje mi się bardziej logiczny i lepszy w zrozumieniu , ale co dziwne kiedys mi działał a robiłam na staraszej wersji środowiska ale teraz musiałam zainstalować sobie nowsza wersje i wklejam go a tam same błedy wyskakują i nie wiem dlaczego poniewaz kod sam w sobie raczej powinien być dobry .

oto ten kod:


#include "stm32f10x.h"

int main(void)
{
	GPIO_InitTypeDef gpio;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);


	GPIO_StructInit(&gpio);
	gpio.GPIO_Pin=GPIO_Pin_4;
	gpio.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Init(GPIOA,&gpio);
	gpio.GPIO_Pin=GPIO_Pin_7;
	gpio.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_Init(GPIOC,&gpio);
	while(1)
	{
		if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)==0)
		{
			GPIO_SetBits(GPIOA,GPIO_Pin_4);

		}else{
			GPIO_ResetBits(GPIOA,GPIO_Pin_4);
		}
	}
}

 

 

Edytowano przez faustin
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.