Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Hai! Dalam tutorial ini kita akan mencoba membangun komunikasi USART antara STM32F4 ARM MCU dan Python (bisa diganti dengan bahasa lain). Jadi, mari kita mulai:)
Langkah 1: Persyaratan Perangkat Lunak dan Perangkat Keras
Dalam hal perangkat keras yang Anda butuhkan:
- Papan Penemuan STM32F4 (atau papan STM32 lainnya)
- Konverter USB ke TTL
Dalam hal perangkat lunak:
- STM32CubeMX
- Keil uVision5
- Python dengan perpustakaan serial terpasang
Langkah 2: Konfigurasi STM32CubeMX
Pertama mari kita pahami apa yang ingin kita lakukan. Kami ingin mengirimkan data ke papan dari Python melalui USART dan memeriksa apakah kami memiliki data yang benar dan tombol sakelar. Jadi, kita perlu mengaktifkan USART dan Led.
-
Aktifkan USART2 dari tab Konektivitas.
- Ubah mode ke Asinkron
- Kecepatan baud hingga 9600 Bit/dtk
- Panjang kata hingga 8 Bit tanpa paritas
- Tidak ada paritas sedikit
- Dari pengaturan DMA tambahkan USART2_RX dalam mode cicular
- Dari Pengaturan NVIC, aktifkan interupsi global USART2
- Aktifkan LED dengan mengklik PD12
Kemudian buat kode:)
Langkah 3: Pengembangan Perangkat Lunak Keil
#termasuk
#termasuk
Pustaka ini akan dibutuhkan dalam operasi string dan untuk mendefinisikan variabel boolean.
/* USER CODE BEGIN 2 */ HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1); /* KODE PENGGUNA AKHIR 2 */
Di sini, UART menerima dengan DMA dimulai.
/* USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Cegah peringatan kompilasi argumen yang tidak digunakan */ UNUSED(huart); /* CATATAN: Fungsi ini tidak boleh diubah, ketika panggilan balik diperlukan, HAL_UART_RxCpltCallback dapat diimplementasikan dalam file pengguna */ if(data_buffer[0] != '\n'){ data_full[index_] = data_buffer[0]; indeks_++; }lain{ indeks_ = 0; selesai = 1; } //HAL_UART_Transmit(&huart2, data_buffer, 1, 10); } /* KODE PENGGUNA SELESAI 4 */
Ini adalah ISR yang diaktifkan ketika kita mendapatkan satu byte karakter. Jadi. kita mendapatkan byte itu dan menulisnya ke data_full yang berisi data lengkap yang diterima sampai kita mendapatkan '\n'. Ketika kita mendapatkan '\n' kita membuat flag 1 dan dalam while loop:
while (1) { /* USER CODE AKHIR SEMENTARA */ if(selesai){ if(strcmp(data_full, cmp_) == 0){ HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); } memset(data_penuh, '\0', strlen(data_penuh)); selesai = 0; }else{ _NOP(); } /* KODE PENGGUNA MULAI 3 */ }
Jika flag selesai HIGH kita bandingkan isi full data yang diterima dan data yang kita inginkan dan jika sama kita toggle led. Setelah itu kita clear flag yang sudah jadi dan tunggu data baru dan juga clear array data_full agar tidak overwrite ke array.
Langkah 4: Pengembangan Perangkat Lunak Python
Jadi, di sini kami ingin mengirim nomor kami dengan '/n' di akhir, karena perangkat lunak Keil perlu melihatnya untuk mengetahui akhirnya.
impor serial
ser = serial. Serial('COM17') #periksa port pada perangkat Anda dari Device Manager
ser.write(b'24\n')
Anda akan melihat bahwa LED mati setiap kali Anda mengirim '24\n'. Jika Anda mengirim apa pun, itu seharusnya tidak memengaruhinya.
Langkah 5: Kesimpulan
Kami telah mencapai akhir tutorial. jika Anda memiliki masalah atau pertanyaan jangan ragu untuk bertanya. Saya akan berusaha membantu semampu saya. Terima kasih banyak:)
Direkomendasikan:
Pelacak Kurva Semikonduktor yang Ditingkatkan Dengan Penemuan Analog 2: 8 Langkah
Pelacak Kurva Semikonduktor yang Ditingkatkan Dengan Penemuan Analog 2: Prinsip penelusuran kurva dengan AD2 dijelaskan dalam tautan berikut di bawah ini: https://www.instructables.com/id/Semiconductor-Cur… https://reference.digilentinc .com/reference/instru…Jika arus terukur cukup tinggi, maka ak
PIC MCU dan Komunikasi Serial Python: 5 Langkah
PIC MCU dan Komunikasi Serial Python: Halo guys! Dalam proyek ini saya akan mencoba menjelaskan eksperimen saya pada PIC MCU dan komunikasi serial Python. Melalui internet, ada banyak tutorial dan video tentang cara berkomunikasi dengan PIC MCU melalui terminal virtual yang sangat berguna. Namun
Komunikasi Serial Arduino dan Python - Tampilan Keypad: 4 Langkah
Komunikasi Serial Arduino dan Python - Tampilan Keypad: Proyek ini dibuat untuk pengguna mac tetapi juga dapat diimplementasikan untuk Linux dan Windows, satu-satunya langkah yang harus berbeda adalah instalasi
Komunikasi ESP8266 dan Python Untuk Noobs: 6 Langkah
ESP8266 dan Komunikasi Python Untuk Noobs: Panduan ini memungkinkan Anda untuk mendapatkan data apa pun dari ESP8266 dan mengontrolnya melalui python tanpa perintah AT. Untuk pemula, sebagian besar panduan tentang penggunaan ESP8266 sulit, karena mereka ingin Anda mem-flash “AT COMMANDS” ke dalam chip, yaitu: Pemborosan yang Tidak Perlu
Patung Robot Kinetik Raksasa Dari Bahan Daur Ulang dan Penemuan: 5 Langkah (dengan Gambar)
Patung Robot Kinetik Raksasa Dari Bahan Daur Ulang dan Penemuan: Instruksi ini akan membawa Anda melalui beberapa langkah yang terlibat dalam membangun patung Robot berjudul "Puing Umum". Dia mendapatkan namanya dari banyak benda yang diselamatkan dan ditemukan dari mana dia dibangun. Jenderal adalah salah satu dari banyak pematung