Pisca Led com microcontrolador Stm32f103c8 keil e Stmcubemx

Pisca Led com microcontrolador Stm32f103c8 keil e Stmcubemx

Depois de trabalhar muito com microcontroladores de 8 bits e aprender todos os protocolos e funções que eles oferecem, agora pensei em mudar para microcontroladores de 32 bits. Decidi optar por processadores arm de 32 bits, devido à sua popularidade no mercado. Eu escolho a série de processadores arm cortex-m3 para meus novos projetos de hobby/aprendizagem. A razão por trás da escolha da série arm cortex-m3 é que os processadores cortex-m3 são feitos especialmente para aplicações embarcadas conectadas, e os microcontroladores construídos com esta série são usados ​​em muitos projetos/aplicações/produtos embarcados de nível médio. Depois de tanto pesquisar no Google, finalmente tomei a decisão de seguir em frente com os microcontroladores stm32. Stm32 é uma família de microcontroladores de 32 bits oferecida pela STMicroelectronics. Os microcontroladores Stm32 são construídos em torno do Cortex-M7, Cortex-M4F, Córtex-M3, Córtex-M0+e Córtex-M0 processadores.

Depois de decidir usar o stm32, comecei a fazer tutoriais iniciais sobre como começar a usar o stm32. Encontrei muitas informações sobre como começar, mas nenhuma delas está bem organizada. Então decidi fazer uma série de tutoriais sobre como começar a usar microcontroladores stm32. Em toda esta série irei discutir todos os protocolos/funções que os microcontroladores stm32 oferecem. Apresentarei um exemplo prático de protocolo/interface/função fácil com código-fonte e diagrama de circuito.

Existem muitos IDEs (ambientes de desenvolvimento integrados) que suportam a série stm32 e você pode usar qualquer um deles para programar seu microcontrolador stm32. Alguns Ide são Coocox, keil, mBed, Attolic, microC para Arm. Eu decido ir com keil e stm32CubeMx. Keil oferece conhecimento profundo do microcontrolador e sua interface. Se você não quer se aprofundar e quer um pedaço de bolo, escolha MikroElectronica microC for Arm. É muito fácil trabalhar com microC ide, tem muitos exemplos e bibliotecas você só precisa chamar as funções e está tudo feito. Stm32CubeMx é um configurador periférico de microcontrolador. Ao usar stm32cube você não precisa escrever código de configuração para seu microcontrolador stm32. É uma plataforma visual onde você pode fazer com que os pinos do microcontrolador entrem, saiam, habilitem pull-ups e pull-down podem definir a frequência operacional do microcontrolador visualmente e muito mais. Após a configuração visual você pode gerar o código para a configuração que você fez. Prefiro trabalhar com stmCube porque é fornecido oficialmente pela STMicroelectronics e é bom trabalhar com o material fornecido pelo proprietário.

Observação: Stm32CubeMx não é um Ide, é um gerenciador de configuração. Você faz a configuração do seu microcontrolador stm32 nele e depois gera o código da configuração que você fez para ser usado com qualquer outro ide. Você pode gerar diretamente o projeto keil ide com stmCubeMx selecionando a opção de stmCubeMx para traduzir a configuração para o projeto keil ide.

Instalando StmCubeMx e Keil MDK ARM

Instalar o Keil Ide é bastante simples. Baixe o kit MDK ARM que contém o keil Ide, você não precisa do ide para instalá-lo separadamente. Basta baixar o arquivo do link e instalar o ide. Arm mdk está disponível em muitas edições, a mais recente é mdk5. Estou usando mdk5 para meus projetos e este tutorial também é baseado em mdk5 e keil uvision-5 ide.
Instalar o StmCubeMx também é simples. Baixe o StmCube no link
Você pode ser solicitado a fazer login. Faça login e você será deles. Depois que o StmCubeMx estiver instalado, você deverá instalar os pacotes para cada série stm32 ou para as séries com as quais deseja trabalhar. Os pacotes da série StmCubeMx e stm32 são duas coisas diferentes. O pacote para cada série stm32 deve ser instalado separadamente. Também é uma opção no software StmCubeMx que instala os pacotes da série. Está sob o Ajuda> Instalar novas bibliotecas. Como estamos começando com stm32f103, precisamos instalar o pacote para a série stm32f1. O diagrama abaixo explica bem sobre a instalação dos pacotes.

Instalando drivers/pacotes stm32f103 para StmCubeMx

Instalando drivers/pacotes stm32f1 para StmCubeMx
Comprei um módulo stm32f103c8x barato no aliexpress. Custou-me cerca de US $ 4,5 com frete grátis para o Paquistão. O envio demorou quase 1,5 meses e 45 dias. A placa é bacana e oferece quase todos os recursos necessários para começar a usar microcontroladores stm32. O pino da placa é fornecido abaixo.

Pinagem da placa de desenvolvimento barata Stm32f103 e recursos oferecidos

Pinagem da placa de desenvolvimento barata Stm32f103 e recursos oferecidos

Pisca led com stm32f103 keil e stmcubemx

O módulo superior possui um led conectado ao pino nº 13 da porta c. Para começar, vamos piscar. Os pinos do microcontrolador Stm32 oferecem vários recursos em um único pino. Selecionar um e desabilitar outros deve ser feito com cuidado. Os pinos de E/S dos microcontroladores Stm32 podem ser usados ​​em cinco modos

  • Modo de entrada
  • Modo analógico
  • Modo de saída
  • Modo de função alternativo
  • Linhas externas de interrupção/evento

Para nosso propósito, usaremos o pino 13 da porta c como saída. Quase todos os pinos stm32 possuem resistores internos de pull up e pull down. Como não estamos usando o gpio no modo de entrada, não estamos usando resistores pull up e down. Os pinos Stm32 podem funcionar em frequências diferentes, vamos operar o pino em baixa frequência. Os pinos Stm32 também podem ser inicializados como baixos ou altos após a inicialização. Coloquei o pino nº 13 baixo.

Observação: Vou usar o oscilador RC interno de 8Mhz do microcontrolador. A placa superior tem um cristal externo de 8Mhz mas não vou usá-lo. Em tutoriais posteriores iremos usá-lo.

Criando novo projeto no StmCubeMx

Criar um novo projeto é simples. Vá para Arquivo> Novo Projeto. Uma janela aparecerá para selecionar a série do microcontrolador, linhas de série e pacote. Após selecionar o pacote clique no microcontrolador que você está utilizando para o seu projeto. No nosso caso é STM32f103C8Tx.

StmCubeMx criando novo projeto

StmCubeMx criando novo projeto
Após selecionar o microcontrolador stm32f103c8 aparecerá uma janela contendo o diagrama mcu. Clique no pino nº 13 e defina o gpio como saída.

StmCubeMx Selecionando o microcontrolador stm32f103c8 gpio como saída

StmCubeMx Selecionando o microcontrolador stm32f103c8 gpio como saída
Para configurar o gpio clique na aba de configuração e depois no botão GPIO.

Configurando Gpio de stm32f103 em stmcubemx

Configurando Gpio de stm32f103 em stmcubemx
Clique nos nomes dos pinos para que suas configurações apareçam. Na janela de configuração, defina o modo gpio, nível de saída, velocidade do clock e dê um nome ao gpio. Pressione aplicar para aplicar as alterações.

Configuração Stmcube Gpio

Configuração Stmcube Gpio
O nome que demos ao alfinete agora aparece nele. Podemos usar o gpio no código com este nome. Agora é hora de gerar o código. Clique no ícone de engrenagem para gerar código.

nome stmcubemx gpio alterado e gerando código

nome stmcubemx gpio alterado e gerando código
Uma janela aparece após clicar no ícone de engrenagem. Nomeie o projeto e selecione o local para os arquivos do projeto. Como estamos usando MDK-ARM V5, em ToolChain/IDE selecione mdk-arm. Clique em OK para gerar o código.

localização do projeto stmcube e geração de código keil

localização do projeto stmcube e geração de código keil
Clique em OK depois que todas as configurações e códigos forem gerados no local especificado por você. Quatro pastas aparecerão no local. MDK-ARM contém o código keil ide. Os arquivos de projeto stmcubemx também estão presentes no local. O arquivo de extensão ico é de stmcubemx. Abra a pasta MDK-ARM que contém algum arquivo. O arquivo com extensão .uvprojx é um arquivo keil ide. Agora você pode abrir o arquivo para fazer mais algumas alterações no código.

arquivos stmcube e keil ide

arquivos stmcube e keil ide
Código de tradução StmCubeMx que contém as funções da biblioteca HAL. HAL são bibliotecas liberadas pela stm para funcionar com seus microcontroladores. As funções das bibliotecas HAL e sua folha de dados de definição estão disponíveis no manual do usuário, dado que o arquivo de 19 MB é na verdade o documento de explicação da definição da função das bibliotecas HAL. O código gerado pelo stmcubemx possui instruções listadas abaixo. Eu escrevo o significado de cada afirmação com ele.
Para piscar o led adicione as linhas à função while vazia. Lembre-se de que stmcube gera apenas o código de configuração. Temos que escrever nossa lógica por nós mesmos. Portanto, na função while(1) adicione a função toggle.
HAL_GPIO_TogglePin(Led_GPIO_Port,Led_Pin);
HAL_Atraso(1000);

Código LED piscante Stm32

Código LED piscante Stm32

Upolad código para microcontrolador stm32

Como a placa de desenvolvimento não tem programador on build, usei um programador St Link externo para carregar o código na placa. Para enviar o código você deve fazer algumas configurações no keil. Siga as etapas abaixo para fazer upload do código.

Keil carrega o código para a placa de desenvolvimento stm32 usando o depurador stlink

Keil carrega o código para a placa de desenvolvimento stm32 usando o depurador stlink
Observação: Após enviar o código, pressione o botão reset no quadro. O código não funcionará a menos que você reinicie a placa pressionando o botão reset.
Arquivos de projeto/pasta de código

Conteúdo Relacionado

Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
ESP32-CAM é um módulo de câmera compacto que combina...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Você provavelmente já passou por situações em que o...
Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.