Skocz do zawartości

Wyświetlanie napisu w terminalu po wciśnięciu przycisku


Ksiina

Pomocna odpowiedź

Witam.

Napisałem program, który wyświetla w terminalu napis z CooCoxa, teraz próbuję dodać obsługę przycisku. Chciałbym, żeby po wciśnięciu przycisku też pojawił się napis w terminalu.

Napisałem poniższy program. Jest w stanie ktoś pomóc?


void EXTI15_10_IRQHandler()
{
int i=0;
if (EXTI_GetITStatus(EXTI_Line13)) {
if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0) {

 while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0 
}
		 void send_char(char c)
		 {
		 	while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
		 	USART_SendData(USART2, c);
		 }
 while (1) {
 		send_string("Przycisk jest wcinięty\r\n");
 	}
}
}
Link do komentarza
Share on other sites

Na razie napisałem taki kod, kompiluje się, ale program nie działa. Chcę, żeby po naciśnięciu przycisku w terminalu pojawił się napis. Może byłby w stanie ktoś coś podpowiedzieć? stm Nucleo f103rb

void send_char(char c)
{
        while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
USART_SendData(USART2, c);
}

void send_string(const char* s)
{
while (*s)
	send_char(*s++);
}


int main(void)
{
GPIO_InitTypeDef gpio;
USART_InitTypeDef uart;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

GPIO_StructInit(&gpio);
gpio.GPIO_Pin = GPIO_Pin_2;
gpio.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &gpio);

gpio.GPIO_Pin = GPIO_Pin_3;
gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &gpio);

USART_StructInit(&uart);
uart.USART_BaudRate = 9600;
USART_Init(USART2, &uart);
USART_Cmd(USART2, ENABLE);


while (1) {
	if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0)
	{
		                  send_string("Przycisk wcinięty\r\n");
		                  GPIO_WriteBit(GPIOC, GPIO_Pin_13, (BitAction)1);
		                			                  break;
		     }
	}
}
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.