Índice:
- Etapa 1: Requisitos de software e hardware
- Etapa 2: Configuração STM32CubeMX
- Etapa 3: Desenvolvimento de software Keil
- Etapa 4: Desenvolvimento de software Python
- Etapa 5: Conclusão
Vídeo: Placa de descoberta STM32F4 e comunicação Python USART (STM32CubeMx): 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Oi! Neste tutorial, tentaremos estabelecer a comunicação USART entre STM32F4 ARM MCU e Python (pode ser substituído por qualquer outra linguagem). Então vamos começar:)
Etapa 1: Requisitos de software e hardware
Em termos de hardware, você precisa de:
- STM32F4 Discovery Board (ou qualquer outra placa STM32)
- Conversor de USB para TTL
Em termos de software:
- STM32CubeMX
- Keil uVision5
- Python com biblioteca serial instalada
Etapa 2: Configuração STM32CubeMX
Primeiro, vamos entender o que queremos fazer. Queremos transmitir os dados para a placa do Python sobre o USART e verificar se temos os dados corretos e o led de alternância. Então, precisamos habilitar USART e Led.
-
Habilite USART2 na guia Conectividade.
- Mude o modo para Assíncrono
- Taxa de transmissão para 9600 Bits / s
- Comprimento de palavra até 8 bits sem paridade
- Sem bit de paridade
- Nas configurações de DMA, adicione USART2_RX no modo cicular
- Nas configurações NVIC, habilite a interrupção global USART2
- Habilite o LED clicando em PD12
Em seguida, gere o código:)
Etapa 3: Desenvolvimento de software Keil
#incluir
#incluir
Essas bibliotecas serão necessárias em operações de string e para definir a variável booleana.
/ * CÓDIGO DE USUÁRIO BEGIN 2 * / HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * FIM DO CÓDIGO DO USUÁRIO 2 * /
Aqui, UART recebe com DMA iniciado.
/ * USER CODE BEGIN 4 * / void HAL_UART_RxCpltCallback (UART_HandleTypeDef * huart) {/ * Evita aviso de compilação de argumento (s) não utilizado (s) * / UNUSED (huart); / * NOTA: Esta função não deve ser modificada, quando o retorno de chamada é necessário, o HAL_UART_RxCpltCallback pode ser implementado no arquivo do usuário * / if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } else {index_ = 0; terminado = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * FIM DO CÓDIGO DO USUÁRIO 4 * /
Este é o ISR que é ativado quando obtemos um byte de caractere. Então. obtemos esse byte e o escrevemos em data_full que contém todos os dados recebidos até obtermos '\ n'. Quando obtivermos '\ n', concluímos o sinalizador 1 e o loop while:
while (1) {/ * CÓDIGO DO USUÁRIO END WHILE * / if (terminado) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); terminado = 0; } mais {_NOP (); } / * CÓDIGO DE USUÁRIO COMEÇAR 3 * /}
Se o sinalizador concluído for ALTO, comparamos o conteúdo dos dados recebidos completos e os dados desejados e, se forem iguais, alternamos o led. Depois disso, limpamos o sinalizador de conclusão e esperamos por novos dados e também limpamos o array data_full para não sobrescrever no array.
Etapa 4: Desenvolvimento de software Python
Então, aqui queremos enviar nosso número com '/ n' no final, porque o software Keil precisará vê-lo para saber o final.
import serial
ser = serial. Serial ('COM17') #verifique essa porta no seu dispositivo a partir do Gerenciador de Dispositivos
ser.write (b'24 / n ')
Você deve ver que o LED alterna cada vez que enviar '24 / n '. Se você enviar qualquer outra coisa, isso não deverá afetá-lo.
Etapa 5: Conclusão
Chegamos ao final do tutorial. Se você tiver qualquer problema ou dúvida, não hesite em perguntar. Vou tentar ajudar o máximo que puder. Muito obrigado:)
Recomendado:
Descoberta do Arduino: 4 etapas
Arduino Finding: Este é o meu trabalho no Arduino. Esta é uma máquina que pode me ajudar a encontrar minhas coisas quando eu acordo. Quando eu pressiono o botão, a luz muda, e as luzes giram em um padrão
Rastreador de curva de semicondutor aprimorado com a descoberta analógica 2: 8 etapas
Tracer de curva de semicondutor aprimorado com a descoberta analógica 2: O princípio do traçado de curva com o AD2 é descrito nos seguintes links: https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com / reference / instru … Se a corrente medida for bastante alta, então é a acu
Telefone celular básico usando o kit de descoberta STM32F407 e o módulo GSM A6: 14 etapas (com fotos)
Celular básico usando o kit de descoberta STM32F407 e o módulo GSM A6: Você já quis criar um projeto embarcado legal ?. Em caso afirmativo, que tal construir um dos gadgets mais populares e favoritos de todos, ou seja, o telefone celular !!!. Neste Instructable, vou guiá-lo sobre como construir um telefone celular básico usando o STM
PIC MCU e comunicação serial Python: 5 etapas
Comunicação serial PIC MCU e Python: Olá, pessoal! Neste projeto, tentarei explicar meus experimentos em PIC MCU e comunicação serial Python. Na Internet, existem muitos tutoriais e vídeos sobre como se comunicar com PIC MCU através de um terminal virtual que é muito útil. No entanto
Comunicação serial Arduino e Python - Visor do teclado: 4 etapas
Arduino e Python Serial Communication - Keypad Display: Este projeto é feito para usuários de mac mas também pode ser implementado para Linux e Windows, o único passo que deve ser diferente é a instalação