Compartilhamento de tecnologia

Introdução 04OLED e métodos de depuração

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Modo de depuração

Insira a descrição da imagem aqui
O computador pode imprimir qualquer variável que desejar ver diretamente na tela, mas os computadores de chip único geralmente não têm uma avaliação forte devido a limitações de custo e estrutura do circuito.
Assim como aprender a linguagem C, não há como aprender sem a função printf. Então você precisa de uma ferramenta de depuração.

Depuração serial

A depuração da porta serial é muito comum. Usar uma porta serial para conectar um microcontrolador a um computador equivale a pendurar a tela do computador no microcontrolador, o que facilita ao microcontrolador exibir informações de depuração. Ao projetar o PCB, haverá um pino de comunicação serial. para depuração de programas (a vantagem é que pode Com a ajuda de um computador poderoso para depuração, o software no computador pode não apenas exibir parâmetros individuais, mas também exibir curvas, gráficos, imagens, etc. Você também pode criar seu próprio software para obter funções poderosas de interação com o usuário) (A desvantagem é que você precisa arrastar o computador, e o assistente de porta serial usual só pode apresentar dados na forma de fluxo de informações, ou seja, só pode imprimir linha por linha. Se houver muitos dados alterados que precisam ser exibidos, então eles só podem ser exibidos no computador deslizando a tela)

Depuração de exibição

A vantagem da depuração do display é que os dados alterados podem ser substituídos e atualizados, e o display sempre pode ser conectado ao microcontrolador. O método de exibição é muito direto. Ao fazer algo um pouco complicado, é necessária uma interface de interação homem-computador. que É mais fácil usar o display como parte do produto (a desvantagem é que a tela é muito pequena e o conteúdo do display é limitado)
A tela pode ser usada para depuração e a função do driver será discutida posteriormente.Primeiro trate o OLED como um módulo de depuração de programa

Outros métodos de depuração

Existe também um método de depuração de iluminação. Se você não sabe onde o programa é executado, você pode colocar um código de iluminação nesse local.
Método de depuração de comentários, se o programa era originalmente bom, mas morreu após adicionar um determinado programa, você pode remover todos os comentários recém-adicionados, restaurá-los ao status de execução normal e, em seguida, descomentar linha por linha até que o erro apareça ou comente um. parte para testar outra parte, reduza a parte do programa que é executada e localize o programa problemático.
Use o método de comparação para encontrar um programa que não tenha problemas e substitua gradualmente a lógica do programa pela lógica do programa.

Resumir:

Ideias básicas de procedimentos de teste: estreitamento do escopo, controle de variáveis, testes comparativos, etc.

OLED

Introdução

Insira a descrição da imagem aqui
Cada pixel do OLED é um diodo emissor de luz separado, enquanto o LCD requer luz de fundo, por isso economiza relativamente energia.
A velocidade de resposta rápida permite que o OLED tenha uma taxa de atualização mais alta
A temporização rápida do barramento também pode evitar o bloqueio de programas
Amplo ângulo de visão: como o OLED é autoluminoso, o conteúdo da tela é nítido de qualquer ângulo.

A condução deste OLED simples requer apenas alguns fios e relativamente poucos recursos.

As cores dos pixels incluem: branco, azul, amarelo e azul (1/4 é amarelo, 3/4 é azul, não é bicolor real, mas fixo em áreas diferentes, adequado para fazer uma interface que precisa exibir um linha do título)

Circuito de hardware

Insira a descrição da imagem aqui
O pino 4 geralmente usa o protocolo IIC e o pino 7 geralmente usa o protocolo SPI.

Função de driver OLED

Insira a descrição da imagem aqui
Se os pinos STM32 não forem inicializados, eles serão padronizados para o modo de entrada flutuante.

Para usar este módulo OLED, você só precisa trocar os pinos, assim como os periféricos e relógios que utilizam os pinos. O restante das funções está empacotado.
Insira a descrição da imagem aqui

O arquivo OLED_FONT.h armazena os dados da fonte do OLED. Como a tela OLED não possui uma fonte, se você deseja exibir gráficos de caracteres, você deve primeiro definir os dados da matriz de pontos dos caracteres, para que isso armazene a matriz de pontos. dos caracteres.
A linguagem C não pode escrever números binários e só pode usar hexadecimal. A linguagem C, como uma linguagem de programação de computador de baixo nível, não suporta a escrita de números binários. digitar. Mas essa pode ser a regra.

modo de depuração keil

Método de entrada

Insira a descrição da imagem aqui
A opção de projeto Debug pode configurar as opções de depuração. A seleção padrão é a da direita para simulação online no hardware que precisa ser conectado ao microcontrolador.
O da esquerda utiliza um emulador, para que o computador simule o funcionamento do microcontrolador.
Antes da simulação, certifique-se de que não haja problemas na compilação do projeto (se houver problemas, resolva-os primeiro)

Clique em "red d" para entrar no modo de depuração. Se o STLINK não estiver conectado, um erro será relatado.
Insira a descrição da imagem aqui

janela da interface de depuração keil

Insira a descrição da imagem aqui
Se você usa programação assembly para programar o grupo de registros e sinalizadores de status, precisa entendê-los muito claramente.
Se você usa a linguagem C, não precisa se preocupar com isso.

Insira a descrição da imagem aqui

Descrição simples da função

Esta parte é o controle de execução do programa
1. Redefinir 2. Executar em velocidade máxima 3. Parar de executar em velocidade máxima 4. Operação de etapa única 5. Ignorar a linha atual e executar etapa única 6. Sair da função atual e executar etapa única 7. Mover para a linha especificada pelo cursor e execute uma única etapa

Insira a descrição da imagem aqui
A seta amarela indica a próxima linha de código a ser executada e a seta azul indica a linha onde está o cursor.
Insira a descrição da imagem aqui
Clique na área cinza escuro à esquerda para definir um ponto de interrupção. Clique em Executar em velocidade máxima e o programa continuará a ser executado até que o ponto de interrupção seja interrompido. Se não houver ponto de interrupção, execute em velocidade máxima, o programa não será interrompido automaticamente. e você precisa clicar no botão Parar, o programa irá parar.

Insira a descrição da imagem aqui
Clique em RST para reiniciar e o programa retornará ao início. Você pode ver que o programa está na função de interrupção de reinicialização, indicando que o programa começa a ser executado a partir daqui após a reinicialização.

Primeiro, o programa irá para a função SystemInit e, em seguida, a função será executada para a função principal.

Essa abordagem nos permite acompanhar exatamente como nosso programa está sendo executado. Você pode explorar como a função é executada passo a passo neste modo. Desta forma, a compreensão lógica do programa será mais profunda.

Esta é uma função simples no modo de depuração. Existem funções mais poderosas no modo de depuração.

Funções mais poderosas

Insira a descrição da imagem aqui
A primeira é a janela de comando, que pode ser aberta e fechada
Insira a descrição da imagem aqui
Segunda janela de desmontagem
A terceira janela de símbolos permite visualizar os valores de todas as variáveis ​​do programa em tempo real
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Se quiser ver as alterações no valor da estrutura, você pode clicar com o botão direito e adicioná-lo à janela Watch1.
Insira a descrição da imagem aqui
Clique em etapa única para executar e você poderá ver as alterações nos valores das variáveis, o que é muito conveniente.

Há também um display de porta serial
Insira a descrição da imagem aqui
analisador lógico
Insira a descrição da imagem aqui
Espere, você pode reservar um tempo para aprender mais sobre isso sozinho

Você também pode clicar no menu de periféricos e visualizar os recursos do sistema para ver todos os registros periféricos.
Insira a descrição da imagem aqui
Por exemplo, se você selecionar GPIOA, todos os registros dos periféricos GPIOA serão exibidos à direita.
Insira a descrição da imagem aqui

Durante a depuração, o STM32 também executa o programa em tempo real. Quando o ponto de simulação é interrompido, o programa stm32 também para de ser executado. Se você clicar em executar novamente, o stm32 continuará a ser executado. a função de depuração on-line ainda é muito poderosa. O stm32 é executado em tempo real. O software keil exibe o status do registro periférico em tempo real. Você também pode controlar o início, a parada e a operação de etapa única do programa a qualquer momento. Quando você encontra um programa difícil de ajustar, por exemplo, você não sabe como o programa é executado, ou deseja ver muitas variáveis, mas é inconveniente exibi-las, ou deseja ver se o registro os valores estão configurados corretamente, você pode usar o keil para automaticamente no modo de depuração. Se você modificar o programa, não poderá modificá-lo diretamente no modo de depuração. Para modificar o programa, você deve primeiro sair do modo de depuração, recompilar e, em seguida, entrar no modo de depuração.

Mais funções do keil aguardam mais exploração.
Insira a descrição da imagem aqui
Ajuda abre o documento de ajuda oficial, que tem a introdução mais confiável e detalhada, e tem mais tecnologias negras sobre como usar o keil.