Página 1 de 1

Bug STM32

MensagemEnviado: 07 Jul 2017 09:05
por MSGF2K
Estou utilizando o STM32F030K6T e entre outros pinos usando o PA11 como Input, e PA9 como interrupção externa. Tudo configurado como tal , conferido e reconferido.....rs
Mas esta acontecendo alguma coisa que não entendo, a porta PA11 esta configurada:
Código: Selecionar todos
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

E a porta PA9 configurada assim:
Código: Selecionar todos
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

Quando aciono a entrada do meu pino PA11, dando um pulso em baixa o micro entra na interrupção. Tenho mais outros pinos de interrupção externa, mas o uC entende que estou acionando esta interrupção do PA9.
Alguem já teve um problema parecido ?

Re: Bug STM32

MensagemEnviado: 07 Jul 2017 11:44
por eletroinf
Tem de saber o que estas funções aí fazem.

Já tentou configurar os registradores diretamente?

Re: Bug STM32

MensagemEnviado: 07 Jul 2017 14:03
por MSGF2K
Esta é uma biblioteca HAL que uso para programar , as funções citadas eu já conferi nos registradores estão configurando corretamente eles. Mas vou trabalhar em uma versão deste mesmo software sem o uso desta biblioteca para ver se resolve.
Obrigado pela dica eletroinf !!!

Re: Bug STM32

MensagemEnviado: 07 Jul 2017 15:39
por MSGF2K
Problema resolvido.
Faltava configurar os registradores de redirecionamento de portas para interrupção externa (SYSCFG). Configurei apenas para as portas que estava usando.

Re: Bug STM32

MensagemEnviado: 08 Jul 2017 06:49
por eliveltonpsantos
Você está fazendo tudo isso no braço ou usando o STM32CubeMX? Este último auxilia bem o início do desenvolvimento.

Re: Bug STM32

MensagemEnviado: 19 Jan 2019 01:22
por Guri
Meu caro, já passei por alguns perrengues parecidos.

No meu caso, eu estava utilizando um dos TIMERs do STM m0, ligando a um i/o como saída de sinal de frequencia e em outro porte estava utilizando para LÊR teclas de comandos.

O que acontecia é que em algumas situações o fw de leitura das teclas retornava um erro, para os TIMERs, fiquei bastante tempo tentando entender o ''fenômeno''.

Eu estava programando em C.

Depois de analisar com calma, aliás por mais DOIDO que possa parecer o fenômeno e aparentemente nossa lógica esteja ''perfeita'', pode ter certeza que em 99,999% dos casos o erro esta na forma como o fw foi idealizado...

Então, eu notei que algumas portas do STM m0 e m3 que são os que costumo utilizar. Elas possuem propriedade especiais, ligadas ao próprio sistema Jtag, salvo engano o Port A é uma delas, e também a algum periférico, veja que em alguns casos quando você liga um determinado módulo interno, alguns pinos podem ser alocados juntos a essas funções, outro detalhe é quanto a corrente drenada, alguns pinos possuem limite de corrente muito baixa, bem como níveis de tensão variados...

Provavelmente seu problema esteja nesse meio, para tirar a dúvida, procure alternar seu fw para outros pinos.