Neste post iremos mostrar como utilizar e programar o STM32 Blue Pill com a STM32Cube IDE. Para comprar esse produto em nossa loja, clique aqui. Veja mais informações do produto.
O STM32 é uma placa de prototipagem eletrônica. Este sistema se baseia nos microcontroladores STM32F103, desenvolvidos pela empresa STMicroeletrics. O STM32 Bluepill apresenta um processador de 32 bits com arquitetura Cortex-M3 ARM são dispositivos de baixo custo e eficiência energética com até 2 DMIPS/MHz. Ideal para ser implementado em ambientes industriais, como processamento de imagem, aprendizado de máquina ou processamento de sinal digital.
Para realizar a programação desta placa, precisamos usar um módulo FTDI conversor USB para UART, e então podemos programá-lo diretamente via USB de um computador. Acompanhe o esquema das conexões:
Atente-se a conexão dos jumpers conforme mostrado abaixo para definir a placa no modo DFU (atualização do firmware do dispositivo). Para definir, pressione o botão Redefinir ao lado e aguarde.
O primeiro passo para começar a usar o STM32 com o ambiente de programação do STM32CubeIDE é instalar o programa no computador. Caso já tenha a IDE instalada, pule para o próximo tópico.
5. No seu e-mail irá chegar a seguinte confirmação de registro;
6. Clique em Downlod now para inicializar o download;
Atenção: Após realizar o download, é importante colocar o arquivo executável do instalador que você irá descompactar, na pasta “Documentos” do seu computador antes de executá-lo. Caso contrário, irá surgir o erro de instalação “error launching installer“.
Como forma de exemplificar a utilização do STM32 vamos ensinar como usar o LED integrado da placa em um programa teste, fazendo uma alusão ao conhecido exemplo Blink do Arduino:
3. Na barra de ferramentas entre em File ➞ New ➞ STM32 Project, para criar um novo projeto;
4. Em Comercial Part Number coloque o nome do dispositivo desejado, no nosso caso o STM32F103C8T6 e o selecione quando surgir na lista de itens na parte inferior da página;
5. Clique em Next para continuar;
6. Em seguida, dê um nome ao projeto. Aqui eu o chamei de Robobuilder_teste;
7. Clique em Finish;
Uma janela pop-up é aberta solicitando que você abra a perspectiva associada. Clique em Yes:
Agora você deve estar na janela Ferramenta de configuração do dispositivo . Aqui você pode configurar a função de cada um dos pinos do STM32F103C8. Este é um recurso realmente interessante do STM32Cube, pois torna a configuração do seu projeto mais rápida e fácil.
Nosso exemplo é o pisca-pisca do LED integrado. Podemos visualizar através do Diagrama de Pinagem exposto no início que o LED integrado está conectado diretamente no pino PC13.
Na janela a esquerda que irá abrir, clique em System Core:
Em seguida, clique em GPIO e uma linha de parâmetros irá surgir a direita:
Clique em cima de alguma coluna de algum parâmetro qualquer, uma janela de configuração irá surgir a baixo, dê o nome ao pino. No nosso caso, foi nomeado como Led_integrado;
Para salvar vá em Arquivo ➞ Salvar (ou CTRL+S). Uma janela de mensagem é exibida. Se você clicar em Yes, um código de modelo será gerado com todas as configurações já existentes.
Outra janela de mensagem aparece, desta vez pedindo para você abrir uma perspectiva. Responder Yes a esta mensagem inserirá um painel no lado direito que mostra um esboço do código:
Agora você verá o código do seu arquivo no IDE e poderá programar de acordo com seu interesse.
Será necessário realizar algumas implementações para realizar o pisca-pisca do LED integrado na placa STM32.
HAL_GPIO_WritePin(ONBOARD_LED_GPIO_Port, ONBOARD_LED_Pin, GPIO_PIN_RESET);
delay(500000);
HAL_GPIO_WritePin(ONBOARD_LED_GPIO_Port, ONBOARD_LED_Pin, GPIO_PIN_SET);
delay(500000);
A função HAL_GPIO_WritePin() torna um pino High ou Low. Seus parâmetros são a porta I/O, o nome do pino e o estado desse pino. A linha 1 leva o estado do pino para High:
HAL_GPIO_WritePin(ONBOARD_LED_GPIO_Port, ONBOARD_LED_Pin, GPIO_PIN_SET);
Enquanto a linha 3 leva o pino para Low:
HAL_GPIO_WritePin(ONBOARD_LED_GPIO_Port, ONBOARD_LED_Pin, GPIO_PIN_RESET);
Observe que as configurações do GPIO estão na função MX_GPIO_Init() que foi inserida automaticamente pela Device Configuration Tool. Note também que temos uma função delay() entre o conjunto e a redefinição do estado do pino. Isso garante que nossos olhos possam captar o flash. No entanto, esta não é uma função interna. Inserimos esta função ao final do código.
Copie a seguinte função e cole na linha 174 do código:
void delay (int a)
{
volatile int i,j;
for (i=0 ; i < a ; i++)
{
j++;
}
return;
}
A declaração da função delay() deve ser feita junto com as outras funções no início do código. Para isso, cole void delay (int a); na linha 50. Depois disso, o projeto está pronto para ser construído. Vá para Project ➞ Build All (ou Ctrl+B):
Se não houver erro, você deverá ver a seguinte mensagem no painel inferior:
Em seguida, enviaremos o código para o nosso Blue Pill. Conecte o cabo usb e verifique a posição dos jumpers, eles devem estar no modo DFU para que o STM32 entre no modo de programação.
dsdffs
ROBOBUILDERS IMPORTACAO E COMERCIO DE PRODUTOS DE SISTEMAS E AUTOMACAO - CNPJ: 27.338.195/0001-30 © Todos os direitos reservados. 2022