Tutorial: Rede CAN -> STM32F103
Velocidade da Rede: 500 kbps
Modo de Funcionamento: Normal
IDE: STM32CubeIDE | CubeMx
Microcontrolador: STM32F103C8T6TR (BluePill)
Gravador: ST-Link
Transceiver: TJA1050
Outro Nó de Exemplo:
IDE: Arduino IDE
Microcontrolador: Arduino Mega R3 AT2560
Controlador Can: MCP2515
Transceiver: TJA1050
Aqui utilizaremos a placa bluepill para fazer o lado do Slave e ter muito processamento e um controlador can nativo do microcontrolador.
Utilizaremos a biblioteca HAL (Hardware Abstraction Layer) na IDE STM32CubeIDE do STM32F103 e faremos a configuração através do arquivo .ioc que é gerado pelo CubeMX.
No CubeMX, habilitaremos o clock de 72Mhz e um prescaller da Rede Can de 18, o que irá gerar um clock de 500kbps da rede can. Também utilizaremos o SysTrick para debugar nosso código, além de um GPIO no pino PC_13 pois na bluepill há um led soldado nessa porta.
Assim que salvar as configurações no CubeMX, vamos para o código em C!
OBS: Lá no código há trechos que estão como comentários delimitando onde deve fazer a programação (uma dica, siga a delimitação ou senão seu código será deletado).
No código em C haverá algumas funções que já foram criadas pelo microcontrolador e outras que são nativas da biblioteca HAL. Elas dão um bom suporte para começar e a gente desenvolver nossas lógicas de controle. Mas antes preciso falar que toda programação C++ tem structs e aqui é onde está todo o segredo dessa implementação!
OBS2: CAN_XXXXXXTypeDef : é uma struct com um conjunto de dados que tem nela e vamos utilizar bastante:
CAN_FIFO0MailBox_TypeDef
CAN_FilterRegister_TypeDef
CAN_FilterTypeDef
CAN_HandleTypeDef
CAN_RxHeaderTypeDef
CAN_TxHeaderTypeDef
CAN_TxMailBox_TypeDef
CAN_TypeDef
Depois vou destrinchar cada uma dessas structs e os valores que podemos atribuir a elas!
Na Parte 2 vou colocar mais coisas e vamos alimentando cada vez mais, até amanhã!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2023 Criado por Marcelo Rodrigues.
Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)