Atividade #741
FechadaLeitura de encoder com auxilio do cube na stm32f411
Arquivos
Atualizado por Onias Castelo Branco há mais de 6 anos
recomendo usar o pino pb5 e pb4 com timer3_channels 1 e 2.
Atualizado por Anônimo há mais de 6 anos
- Situação alterado de Não Iniciada para Em andamento
Atualizado por Anônimo há mais de 6 anos
- Situação alterado de Em andamento para Resolvida
Logrei êxito na realização da leitura do encoder com auxilo do stm32CubeMX, com o uso do stm32f411VE.
Inicialmente tentei realizar a leitura do encoder sem o uso do Cube mas não obtive sucesso, e decidi utilizar o stm32CubeMX para realização da tarefa.
Tentei um tempo fazer a leitura com o uso do Cube e com a leitura do reference manual da stm32f411, com a leitura especificamente da parte que fala do encoder interface mode (Página 277) e das paginas que falam dos registradores utilizados para esse modo. Acredito que fui capaz de entender a parte do encoder interface mode, entretanto ainda tenho uma certa dificuldade em acessar os registradores diretamente nas linhas de código, o que me faz sempre procurar funções prontas (API) para realização dos comandos que preciso. Uma dificuldade que encontrei foi achar as funções na biblioteca HAL que iriam fornecer a direção que o encoder esta girando e a contagem dos giros. Um fato que eu não sabia é que existem funções que não estão nos arquivos .c, e neste caso as duas funções que eu necessitava estavam em um arquivo .h na forma #define função(parametro), o que somente consegui descobrir após assistir uma video-aula da UDEMY do curso hands-on-stm32-basic-peripherals-with-hal. Após assistir a video aula fui capaz de implementar o código necessário para a leitura do encoder. Ao testar o código no laboratório da roboime, com o uso de encoders la presentes, deu tudo errado, algumas vezes ocorria uma leitura errada tanto da direção quanto da contagem dos giros e outras vezes não tinha leitura nenhuma. Um dos problemas era que eu n sabia que era necessário a ativação do high speed external clock signal (HSE), pois imaginei não havia um sinal de clock externo mas há na discovery um componente (não tenho certeza mas acho que se chama crystal/ceramic resonator) responsável pelo HSE. O segundo e último problema foi que os pinos utilizados para o encoder mode devem ser configurados para PULLUP, o que não ocorre automaticamente pela geração dos códigos do Cube. Após essas correções, testei o código com um encoder e consegui fazer a leitura.
Link para o código no github da leitura do encoder:
https://github.com/Hugogomes9/leitura-de-encoder-stm32f411VE
Atualizado por Luiz Renault Leite Rodrigues há mais de 6 anos
Excelente descrição da atividade realizada.
Agora que conseguiu executar a tarefa usando a biblioteca HAL, sugiro que o faça usando a Standard Peripheral, para consolidar o entendimento.
Atualizado por Anônimo há mais de 6 anos
- Arquivo leitura_do_encoder.ioc leitura_do_encoder.ioc adicionado
Atualizado por Anônimo há aproximadamente 6 anos
- Situação alterado de Resolvida para Fechada