Berbagi teknologi

04 Metode pengenalan dan debugging OLED

2024-07-11

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

Mode debug

Masukkan deskripsi gambar di sini
Komputer dapat mencetak variabel apa pun yang ingin dilihatnya langsung ke layar, tetapi komputer chip tunggal sering kali tidak memiliki evaluasi yang kuat karena keterbatasan biaya dan struktur sirkuit.
Sama seperti belajar bahasa C, tidak ada cara belajar tanpa fungsi printf. Jadi, Anda memerlukan alat debugging.

Proses debug serial

Debugging port serial sangat umum. Menggunakan port serial untuk menghubungkan mikrokontroler ke komputer sama dengan menggantungkan layar komputer pada mikrokontroler, yang memudahkan mikrokontroler menampilkan informasi debugging untuk debugging program (keuntungannya adalah dapat Dengan bantuan komputer yang kuat untuk debugging, perangkat lunak di komputer tidak hanya dapat menampilkan parameter individual, tetapi juga menampilkan kurva, grafik, gambar, dll. Anda juga dapat membuat perangkat lunak sendiri untuk mencapai fungsi interaksi pengguna yang kuat) (Kerugiannya adalah Anda perlu menyeret komputer, dan asisten port serial biasa hanya dapat menyajikan data dalam bentuk aliran informasi, yaitu hanya dapat mencetak baris demi baris. Jika ada banyak perubahan data yang perlu ditampilkan, maka hanya dapat ditampilkan di komputer dengan menggeser layar)

Tampilan debug

Keuntungan dari debugging tampilan adalah bahwa data yang berubah dapat ditimpa dan disegarkan, dan tampilan selalu dapat dihubungkan ke mikrokontroler. Metode tampilan sangat langsung ketika melakukan sesuatu yang sedikit rumit, diperlukan antarmuka interaksi manusia-komputer bahwa lebih mudah menggunakan tampilan sebagai bagian dari produk (kelemahannya adalah layar terlalu kecil dan konten tampilan terbatas)
Layar dapat digunakan untuk debugging, dan fungsi driver akan dibahas nanti.Pertama-tama perlakukan OLED sebagai modul debugging program

Metode debugging lainnya

Ada juga metode debugging pencahayaan. Jika Anda tidak tahu di mana program dijalankan, Anda dapat meletakkan kode pencahayaan di lokasi tersebut.
Metode debugging komentar, jika program awalnya bagus, tetapi mati setelah menambahkan program tertentu, Anda dapat menghapus semua komentar yang baru ditambahkan, mengembalikannya ke status berjalan normal, dan kemudian menghapus komentar baris demi baris hingga muncul kesalahan bagian untuk menguji bagian yang lain, mengurangi bagian program yang berjalan, dan mencari lokasi program yang bermasalah.
Gunakan metode perbandingan untuk menemukan program yang tidak bermasalah, dan ganti logika programnya secara bertahap dengan logika program Anda.

Meringkaskan:

Ide dasar prosedur pengujian: mempersempit ruang lingkup, mengendalikan variabel, pengujian komparatif, dll.

Layar Layar OLED

Perkenalan

Masukkan deskripsi gambar di sini
Setiap piksel OLED merupakan dioda pemancar cahaya terpisah, sedangkan LCD memerlukan lampu latar, sehingga relatif hemat daya.
Kecepatan respons yang cepat memungkinkan OLED memiliki kecepatan refresh yang lebih tinggi
Pengaturan waktu bus yang cepat juga dapat menghindari pemblokiran program
Sudut pandang lebar: Karena OLED dapat menyala sendiri, konten tampilan terlihat jelas dari sudut mana pun.

Mengemudikan OLED sederhana ini hanya memerlukan beberapa kabel dan menggunakan sumber daya yang relatif sedikit.

Warna piksel meliputi: putih, biru, kuning dan biru (1/4 berwarna kuning, 3/4 berwarna biru, ini bukan dua warna asli, tetapi dipasang di area berbeda, cocok untuk membuat antarmuka yang perlu menampilkan a baris judul)

Sirkuit perangkat keras

Masukkan deskripsi gambar di sini
Pin 4 umumnya menggunakan protokol IIC, dan pin 7 umumnya menggunakan protokol SPI.

Fungsi pengemudi OLED

Masukkan deskripsi gambar di sini
Jika pin STM32 tidak diinisialisasi, pin tersebut default ke mode input mengambang.

Untuk menggunakan modul OLED ini, Anda hanya perlu mengganti pin, serta periferal dan jam yang menggunakan pin tersebut.
Masukkan deskripsi gambar di sini

File OLED_FONT.h menyimpan data font OLED. Karena tampilan layar OLED tidak memiliki font, maka jika ingin menampilkan grafik karakter harus terlebih dahulu menentukan data dot matriks karakter tersebut, sehingga menyimpan dot matriks. dari karakter.
Bahasa C tidak dapat menulis bilangan biner dan hanya dapat menggunakan heksadesimal saja. Bahasa C sebagai bahasa pemrograman komputer tingkat rendah tidak mendukung penulisan bilangan biner. Apalagi bahasa C harus diterjemahkan ke dalam bahasa assembly, tetapi bahasa assembly mendukung penulisan bilangan biner. memasuki. Tapi itu mungkin aturannya.

mode debug keil

Metode masuk

Masukkan deskripsi gambar di sini
Opsi proyek Debug dapat mengkonfigurasi opsi debugging. Pilihan default adalah yang di sebelah kanan untuk simulasi online pada perangkat keras.
Yang sebelah kiri menggunakan emulator, sehingga komputer mensimulasikan pengoperasian mikrokontroler.
Sebelum simulasi pastikan tidak ada masalah pada kompilasi proyek (jika ada masalah selesaikan terlebih dahulu)

Klik "merah d" untuk masuk ke mode debugging. Jika STLINK tidak terhubung, kesalahan akan dilaporkan.
Masukkan deskripsi gambar di sini

jendela antarmuka debug keil

Masukkan deskripsi gambar di sini
Jika Anda menggunakan pemrograman perakitan untuk memprogram grup register dan flag status, Anda perlu memahaminya dengan sangat jelas.
Jika Anda menggunakan bahasa C, maka Anda tidak perlu khawatir tentang hal ini.

Masukkan deskripsi gambar di sini

Deskripsi fungsi sederhana

Bagian ini adalah kontrol eksekusi program
1. Reset 2. Jalankan dengan kecepatan penuh 3. Berhenti berlari dengan kecepatan penuh 4. Operasi satu langkah 5. Lewati baris saat ini dan jalankan satu langkah 6. Keluar dari fungsi saat ini dan jalankan satu langkah 7. Pindah ke baris yang ditentukan oleh kursor dan jalankan satu langkah

Masukkan deskripsi gambar di sini
Panah kuning menunjukkan baris kode berikutnya yang akan dieksekusi, dan panah biru menunjukkan baris tempat kursor berada.
Masukkan deskripsi gambar di sini
Klik area abu-abu tua di sebelah kiri untuk mengatur breakpoint. Klik Jalankan dengan kecepatan penuh, dan program akan terus berjalan hingga breakpoint berhenti. Jika tidak ada breakpoint, maka jalankan dengan kecepatan penuh, program tidak akan otomatis berhenti. dan Anda perlu mengklik tombol Stop, program akan berhenti.

Masukkan deskripsi gambar di sini
Klik pertama untuk mereset, dan program akan kembali ke awal. Anda dapat melihat bahwa program berada dalam fungsi interupsi reset, yang menunjukkan bahwa program mulai dijalankan dari sini setelah reset.

Pertama, program akan melompat ke fungsi SystemInit, dan kemudian fungsi tersebut akan dieksekusi ke fungsi utama.

Pendekatan ini memungkinkan kami melacak dengan tepat bagaimana program kami berjalan. Anda dapat menjelajahi bagaimana fungsi dijalankan langkah demi langkah dalam mode ini. Dengan cara ini pemahaman logika program akan lebih dalam.

Ini adalah fungsi sederhana dalam mode debug. Ada fungsi yang lebih kuat dalam mode debug.

Fungsi yang lebih kuat

Masukkan deskripsi gambar di sini
Yang pertama adalah jendela perintah, yang bisa dibuka dan ditutup
Masukkan deskripsi gambar di sini
Jendela pembongkaran kedua
Jendela simbol ketiga memungkinkan Anda melihat nilai semua variabel dalam program secara real time
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Jika Anda ingin melihat perubahan nilai struktur, Anda dapat mengklik kanan dan menambahkannya ke jendela Watch1.
Masukkan deskripsi gambar di sini
Klik satu langkah untuk menjalankan dan Anda dapat melihat perubahan nilai variabel, yang sangat memudahkan.

Ada juga tampilan port serial
Masukkan deskripsi gambar di sini
penganalisa logika
Masukkan deskripsi gambar di sini
Tunggu, Anda dapat meluangkan waktu untuk mempelajarinya sendiri lebih lanjut

Anda juga dapat mengklik menu periferal dan melihat sumber daya sistem untuk melihat semua register periferal.
Masukkan deskripsi gambar di sini
Misalnya, jika Anda memilih GPIOA, semua register periferal GPIOA akan ditampilkan di sebelah kanan.
Masukkan deskripsi gambar di sini

Selama debugging, STM32 juga menjalankan program secara real time. Ketika titik simulasi dihentikan, program stm32 juga berhenti berjalan. Jika Anda mengklik jalankan lagi, stm32 akan terus dijalankan. fungsi debugging online masih sangat kuat. stm32 dijalankan secara real time. Program, perangkat lunak keil menampilkan status register periferal secara real time. Anda juga dapat mengontrol pengoperasian program mulai, berhenti, dan satu langkah kapan saja. Ketika Anda menemui suatu program yang sulit untuk disesuaikan, misalnya Anda tidak tahu bagaimana program tersebut dijalankan, atau Anda ingin melihat banyak variabel tetapi tidak nyaman untuk menampilkannya, atau Anda ingin melihat apakah registernya nilai dikonfigurasi dengan benar, Anda dapat menggunakan keil untuk secara otomatis Dengan mode debug. Jika Anda memodifikasi program, Anda tidak dapat memodifikasinya secara langsung dalam mode debugging. Untuk memodifikasi program, Anda harus keluar dari mode debugging terlebih dahulu, mengkompilasi ulang, lalu masuk ke mode debugging.

Lebih banyak fungsi keil menunggu eksplorasi lebih lanjut.
Masukkan deskripsi gambar di sini
Bantuan membuka dokumen bantuan resmi, yang memiliki pengenalan paling otoritatif dan terperinci, dan memiliki lebih banyak teknologi hitam tentang cara menggunakan keil.