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 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.
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
HAL_GPIO_TogglePin(Led_GPIO_Port,Led_Pin);
HAL_Atraso(1000);
Upolad código para microcontrolador stm32
Arquivos de projeto/pasta de código
|