Página 1 de 1

"Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 19 Mar 2021 14:32
por RAWeigel
Olá Pessoal,
Estou tentando ainda me entender com as ferramentas da ST, que geram uma infinidade de arquivos e "coisas". Sejam pacientes (rs!)
Fazem alguns dias (estou meio devagar mesmo) que busco como verificar o STATUS de um FLAG da opção "External Event Mode with Rising/Falling edge trigger detection"

ARM_00.jpg


Não preciso utilizar uma interrupção, apenas sinalizar em algum lugar, que eu não sei onde mais buscar, se houve um evento em um determinado pino.
Alguém que já tenha utilizado esta opção pode me dar uma dica?

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 21 Mar 2021 10:28
por dreher
Pelo que entendi, seria só remover a configuração de interrupção e verificar o bit da interrupção no seu processo principal. No STM voce configura para a marcação da detecção das bordas e configura a interrupção em separado, que para voce não seria necessário. Ai altera a configuração do NVIC

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 23 Mar 2021 14:29
por sync
Colega
Se está começando com CubeMX e TrueStudio eu gostaria de sugerir que faça upgrade para o STM32CubeIDE, a ST unificou nessa IDE o CubeMX e a IDE do TrueStudio, o produto tem sido atualizado com frequência e já está na versão 1.60. Creio que ele importa o seu projeto sem problemas, quando puder, verifique/baixe o produto aqui:

https://www.st.com/en/development-tools ... beide.html

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 24 Mar 2021 07:13
por RAWeigel
sync escreveu:Colega
Se está começando com CubeMX e TrueStudio eu gostaria de sugerir que faça upgrade para o STM32CubeIDE, a ST unificou nessa IDE o CubeMX e a IDE do TrueStudio, o produto tem sido atualizado com frequência e já está na versão 1.60. Creio que ele importa o seu projeto sem problemas, quando puder, verifique/baixe o produto aqui:
https://www.st.com/en/development-tools ... beide.html

Olá sync,
Eté vou testar, mas não creio que mude muita coisa, em relação a minha dúvida.
O que eu não acho em lugar nenhum é como verificar o FLAG de STATUS se um pino teve ou não um evento.

dreher escreveu:Pelo que entendi, seria só remover a configuração de interrupção e verificar o bit da interrupção no seu processo principal. No STM voce configura para a marcação da detecção das bordas e configura a interrupção em separado, que para voce não seria necessário. Ai altera a configuração do NVIC

Olá dreher,
Já pensei nisto também, ou seja, utilizar a INT sem ativa-la, mas se for assim, prefiro utilizar a INT de verdade.
Gostaria mesmo de usar as coisas certas

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 24 Mar 2021 07:55
por dreher
RAWeigel escreveu:Olá dreher,
Já pensei nisto também, ou seja, utilizar a INT sem ativa-la, mas se for assim, prefiro utilizar a INT de verdade.
Gostaria mesmo de usar as coisas certas

eu acho mais certo usar a int e uma flag para marcar a interrupção, eu geralmente faço isso

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 24 Mar 2021 08:03
por KrafT
Grande Richard! Você que teve com o Renie tomando uma cerveja comigo em Volta Redonda em 2007, não?

Que bom que esta estudando essa arquitetura. A gente está adotando STM em um produto novo e a gente estabeleceu uma regra: "Doa o que doer, o HAL é sagrado." Por mais doloroso e muitas vezes inconveniente que seja usar o HAL provido pela fabricante, só em casos extremos, que ainda não aconteceram, a gente vai acessar o hardware de forma direta.

Essa é a minha sugestão. Use somente acesso ao hardware pelo HAL, mesmo que pareça desagradável num primeiro momento, mas no futuro o esforço será recompensado, pq vc herda toda a correção de bugs e as alterações de hardware, até troca de chip, são bem menos dolorosos.

Eu não trabalho com software no STM32 (eu só faço software de coisas bem pequenas) então não consigo ajudar na pergunta específica, mas fica aí a dica.

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 24 Mar 2021 08:50
por RAWeigel
KrafT escreveu:Grande Richard! Você que teve com o Renie tomando uma cerveja comigo em Volta Redonda em 2007, não?.

Olá Kraft,
Lembro do nosso encontro.... mas não da cerveja (rs!)

Sobre o uso do HAL, já me rendi, mas o troço é muito grande (ui!) e mesmo consultando a documentação da ST, não achei como utilizar isto (Verificar um evento e não uma interrupção).
Como no RJ teremos um mega feriado, vou ver se com mais calma tento achar isto, mas é provável que faça uso das INT, que acho exemplos na internet.

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 24 Mar 2021 09:05
por KrafT
Talvez você tenha que usar uma abordagem mais tradicional, mas que dê no resultado que você deseja. O mecanismo de interrupção dos ARM por si só já é um monstro e querer acessar e manusear "na unha" vai te judiar bastante. Mas creio que o amigo está no caminho certo, só questão de tempo para digerir tanta novidade. Cuidado com o Stackoverflow (o fórum). Tem muita gente lá que só quer se exibir e apresenta as soluções mais escabrosas possíveis. Mas é uma ótima fonte de consulta (a versão em inglês. parece que tem em português, mas nunca acessei).

Dizer que o HAL é um lixo e não deve ser utilizado, é como querer programar para Windows desenhando as janelas, botões, etc na unha. Conforme a complexidade nas camadas de baixo aumenta, se vc não se afastar do silício, vc não se torna produtivo. Para a gente que gosta de ferro de solda, é uma situação incômoda mas inevitável.

Eu uso o Code Configurator no PIC e me arrependo de cada vez que eu burlei ele, pq depois para dar manutenção no código, todo o (suposto) ganho de tempo que tive, eu perdi.

Se tu ainda tiver contato com o Renie, manda um abraço para ele. Diz para ele largar de ser marceneiro e voltar a dar aula Kicad para gente.

Re: "Pato novo" no CubeMX + TrueSTUDIO

MensagemEnviado: 25 Jul 2021 18:36
por RAWeigel
Olá Pessoal,
Depois de um tempo afastado por problemas de visão 8) , estou tentado voltar ao caso da interface USB com o STM32F103... (blue pill) e os programas do fabricante (STM32CubeMX e Atolic TrueStudio).
Ainda pretendo utilizar o tal do HAL, mas como o resultado gera uma infinidade de arquivos, fico perdido em como achar e "amarrar" as coisas.
O que eu gostaria de fazer seria:
Na hora do "boot" (plugar o dispositivo), dependendo do status de um pino de entrada, eu selecionar uma opção no descriptor USB para meu joystick ter 2 ou 4 botões.
Já tentei algumas coisas (na verdade, muitas), mas basicamente não consigo fazer o arquivo com o descriptor (USBD_HID.C) enxergar uma variável no arquivo MAIN.C

__ALIGN_BEGIN static uint8_t HID_USB_ReportDesc[HID_USB_REPORT_DESC_SIZE] __ALIGN_END =
{
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x05, // USAGE (Game Pad)
0xa1, 0x01, // COLLECTION (Application)
0xa1, 0x00, // COLLECTION (Physical)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x02, // USAGE_MAXIMUM ///////// Aqui que eu mudo o numero de botões.
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x10, // REPORT_COUNT (16)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};


Alguma outra ideia ou forma de fazer isto?