HOLTEK HT32 MCU UART Aplikasi Catetan Manual Pamaké
HOLTEK HT32 MCU UART Aplikasi Catetan

Bubuka

Universal Asynchronous Receiver / Transmitter - UART mangrupikeun antarbeungeut transmisi serial anu seueur dianggo anu nyayogikeun pangiriman data duplex full-duplex Asynchronous anu fleksibel. Kode aplikasi "Module_UART" disadiakeun dina catetan aplikasi ieu migunakeun TX / RX interrupts kalawan panyangga ring software pikeun nerapkeun UART basajan ngirimkeun / narima fungsi ngaliwatan API, anu fungsi patali digambarkeun di handap. Ieu bakal simplify sakabéh prosés pangiriman data sarta ngidinan pamaké pikeun gancang ngartos tur nerapkeun aplikasi komunikasi UART.

  • Fungsi ngirimkeun / nampi: maca bait, nyerat bait, maca panyangga, nyerat panyangga, jsb.
  • fungsi status: ménta panjang panyangga, status TX, jsb.

Dokumén ieu bakal mimiti ngenalkeun protokol komunikasi UART, anu bakal ngabantosan pangguna pikeun langkung ngartos komunikasi UART tina prinsip ka aplikasi. Ieu dituturkeun ku undeuran sareng persiapan sumber daya anu diperyogikeun pikeun kode aplikasi, kalebet perpustakaan firmware, unduhan kode aplikasi, file jeung konfigurasi diréktori ogé bubuka ka alat software terminal dipaké dina catetan aplikasi. Dina Bab Pedaran Fungsional, struktur diréktori kode aplikasi, setélan parameter sareng pedaran API bakal diwanohkeun. Pamakéan API bakal dijelaskeun nganggo kode aplikasi "Module_UART" sareng pamakean sumber daya Flash / RAM anu diperyogikeun pikeun API ogé bakal didaptarkeun. Bab Parentah pikeun Pamakéan bakal ngabimbing pangguna ngalangkungan léngkah-léngkah persiapan lingkungan, kompilasi sareng uji pikeun mastikeun yén kode aplikasi bakal jalanna leres. Ieu lajeng bakal nyadiakeun parentah nu ngajelaskeun kumaha carana ngahijikeun API kana proyék pamaké sarta tungtungna nyadiakeun rujukan pikeun modifikasi jeung masalah umum anu bisa encountered.

Singgetan anu dianggo: 

  • UART: Universal Asynchronous panarima / pamancar
  • API: Antarbeungeut Programming Aplikasi
  • LSB: Pangsaeutikna Signifikan Bit
  • MSB: Bit paling signifikan
  • PC: Komputer Pribadi
  • SK: Starter Kit, dewan ngembangkeun HT32
  • IDE: Lingkungan Pangwangunan Terpadu

Protokol Komunikasi UART

UART mangrupakeun tipe komunikasi serial tina panganteur nu implements paralel-to-serial konversi data dina pamancar na lajeng communicates serially kalawan panarima sarupa. Panarima lajeng ngalakukeun konversi data serial-to-paralel sanggeus panarimaan data. angka 1 nembongkeun diagram schematic komunikasi serial némbongkeun kumaha data ditransferkeun dina urutan bitwise. Ku alatan éta pikeun komunikasi dua arah antara pamancar jeung panarima, ngan dua kawat, TX jeung RX, diperlukeun pikeun mindahkeun data serially antara unggal lianna. TX teh pin on nu UART transmits data serial sarta disambungkeun ka pin RX tina panarima. Ku alatan éta, alat pemancar sareng panarima kedah nyambungkeun silang pin TX sareng RX pikeun ngalakukeun komunikasi dua arah UART, sapertos anu dipidangkeun dina Angka 2.

Gambar 1. Diagram Komunikasi Serial
Diagram Komunikasi Serial

Gambar 2. Diagram Sirkuit UART
Diagram Sirkuit UART

Salila komunikasi serial UART, pangiriman data henteu sinkron. Ieu ngandung harti yén teu aya jam atanapi sinyal sinkronisasi anu sanés antara pamancar sareng panarima. Di dieu laju baud dipaké, nu mangrupa data serial ngirimkeun / narima speed na nu diatur ku dua sisi sateuacanna tina mindahkeun data. Sajaba ti éta, bit husus kayaning mimiti jeung eureun bit ditambahkeun kana awal jeung tungtung pakét data pikeun ngabentuk pakét data UART lengkep. angka 3 nembongkeun struktur pakét data UART bari Gambar 4 nembongkeun pakét data UART 8-bit tanpa bit parity.
Gambar 3. Struktur Pakét Data UART
Struktur Pakét Data UART

angka 4. UART 8-bit Data Packet Format
Format Pakét Data
Unggal bagian tina pakét data UART diwanohkeun dina urutan handap.

  • Mimitian Bit: Ieu nunjukkeun mimiti pakét data. Pin UART TX biasana tetep dina tingkat logika anu luhur sateuacan pangiriman dimimitian. Upami pangiriman data dimimitian, pamancar UART bakal narik pin TX ti luhur ka handap, nyaéta, tina 1 ka 0, teras tahan dina hiji siklus jam. Panarima UART bakal ngamimitian maca data nalika transisi luhur ka handap dideteksi dina pin RX.
  • Data: Ieu mangrupikeun data anu leres anu ditransfer, kalayan panjang data 7, 8 atanapi 9 bit. Data biasana ditransfer sareng LSB heula.
  • Paritas Bit: Jumlah logika "1" dina data dipaké pikeun nangtukeun naha aya data geus robah salila pangiriman. Pikeun parity genap, jumlah total logika "1" dina data kudu angka genap, sabalikna, jumlah total logika "1" dina data kudu angka ganjil pikeun parity ganjil.
  • Stop Bit: Ieu nunjukkeun tungtung pakét data, dimana pamancar UART bakal narik pin TX ti low ka luhur, ie, ti 0 ka 1, lajeng tahan eta aya pikeun 1 atawa 2-bit periode waktu.

Sakumaha didadarkeun di saméméhna, saprak euweuh sinyal jam dina sirkuit UART, data serial sarua ngirimkeun / narima speed, nu katelah laju baud, kudu dihartikeun antara pamancar jeung panarima pikeun nerapkeun transmisi kasalahan-gratis. Laju baud didefinisikeun ku jumlah bit anu ditransfer per detik, dina bps (bit per detik). Sababaraha ongkos baud baku sarta ilahar dipaké nyaéta 4800bps, 9600bps, 19200bps, 115200bps, jsb. Waktu saluyu diperlukeun pikeun mindahkeun bit data tunggal ditémbongkeun di handap ieu.
meja 1. Laju baud vs 1-Bit Waktos Transmisi 

Laju Baud 1-Bit Transmisi Waktos
4800bps 208.33µs
9600bps 104.16µs
19200bps 52.08µs
115200bps 8.68µs

Sumberdaya Download jeung Persiapan

Bab ieu bakal ngenalkeun kode aplikasi sareng alat parangkat lunak anu dianggo, ogé kumaha ngonpigurasikeun diréktori sareng file jalur.

Perpustakaan firmware 

Kahiji, pastikeun perpustakaan firmware Holtek HT32 geus diundeur saméméh ngagunakeun kode aplikasi. Link undeuran dipidangkeun di handap. Di dieu aya dua pilihan, HT32_M0p_Vyyyymmdd.zip pikeun séri HT32F5xxxx jeung HT32_M3_Vyyyymmdd.zip pikeun séri HT32F1xxxx. Unduh sareng unzip anu dipikahoyong file.

Sleting file ngandung sababaraha polder nu bisa digolongkeun kana Dokumén, Perpustakaan firmware, Pakakas jeung item nu sejen, jalur panempatan nu ditémbongkeun dina Gambar 5. Zip perpustakaan firmware HT32. file kalawan a file ngaran HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip perenahna di handapeun folder Firmware_Library.

Gambar 5. HT32_M0p_Vyyyymmdd.zip Eusi
eusi

Kode Aplikasi
Unduh kode aplikasi tina tautan di handap ieu. Kode aplikasi dibungkus kana pos file kalawan a file ngaran HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip. Tingali Gambar 6 pikeun file konvénsi ngaran.

Gambar 6. Kode Aplikasi File Ngaran Bubuka 

Tautan unduh: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/ Kode Aplikasi

File jeung Konfigurasi Diréktori
Salaku kode aplikasi teu ngandung perpustakaan firmware HT32 files, kode aplikasi tur perpustakaan firmware unzipped files kudu ditempatkeun dina jalur bener saméméh dimimitian kompilasi. Kode aplikasi pos file biasana ngandung hiji atawa leuwih polder, kayaning aplikasi jeung perpustakaan, ditémbongkeun saperti dina Gambar 7. Teundeun folder aplikasi dina diréktori akar perpustakaan firmware HT32 pikeun ngalengkepan file konfigurasi jalur, ditémbongkeun saperti dina Gambar 8. Alternatipna, unzip kode aplikasi tur perpustakaan firmware HT32 sakaligus kana jalur anu sarua pikeun ngahontal hasil konfigurasi sarua.

Gambar 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip Eusi
eusi

Gambar 8. Jalur Decompression
Jalur Decompression

Parangkat Lunak Terminal
Kode aplikasi bisa mindahkeun pesen ngaliwatan port COM pikeun nerapkeun pilihan fungsi atawa tampilan status. Ieu merlukeun sisi host boga software terminal dipasang sateuacanna. Pamaké tiasa milih parangkat lunak sambungan anu pas, atanapi nganggo parangkat lunak anu dilisensikeun gratis sapertos Tera Term. Dina kode aplikasi, saluran UART geus ngonpigurasi kalawan panjang kecap 8-bit, euweuh parity, 1 eureun bit sarta laju baud 115200bps.

Pedaran Fungsional

bab ieu bakal nyadiakeun pedaran fungsi pikeun kode aplikasi, kaasup informasi ngeunaan struktur diréktori, arsitéktur API, pedaran setelan, jsb

Struktur Diréktori
Kode aplikasi file ngandung folder aplikasi. Lapisan salajengna nyaéta folder "Module_UART" anu ngandung dua program aplikasi, "UART_Module_Ex.ample" jeung "UART_Bridge". Anu relevan files dibéréndélkeun sarta dijelaskeun di handap.
Tabél 2. Struktur Diréktori Kode Aplikasi

polder / File Ngaran Katerangan
\\aplikasi\Module_UART\UART_Module_Example*1
_CreateProject.bat Skrip angkatan pikeun nyiptakeun proyék files
_ProjectSource.ini Inisialisasi file pikeun nambahkeun kode sumber kana proyék
ht32_board_config.h Disetél file patali jeung IC periferal I / O ngerjakeun
ht32fxxxxx_01_it.c Ngaganggu program layanan file
utama.c Kode sumber program utama
\\aplikasi\Module_UART\UART_Bridge*2
_CreateProject.bat Skrip angkatan pikeun nyiptakeun proyék files
_ProjectSource.ini Inisialisasi file pikeun nambahkeun kode sumber kana proyék
ht32_board_config.h Disetél file patali jeung IC periferal I / O ngerjakeun
ht32fxxxxx_01_it.c Ngaganggu program layanan file
utama.c Kode sumber program utama
uart_bridge.h uart_bridge.c UART sasak lulugu file jeung kode sumber file
\\ utiliti \ middleware
uart_module.h*3 uart_module.c*3 lulugu API file jeung kode sumber file
\\ utiliti \ umum
ringbuffer.h ring_buffer.c Software ring panyangga lulugu file jeung kode sumber file

Catetan: 

  1. Dina "UART_Module_Example" kode aplikasi, operasi maca jeung nulis API dipigawé dina cara loopback, tingal "API Usage Ex.amples" bagian pikeun leuwih rinci.
  2.  Dina kode aplikasi "UART_Bridge", dua saluran UART, UART CH0 sareng UART CH1, diaktipkeun, sareng protokol komunikasi khusus ngalangkungan struktur COMMAND dilaksanakeun antara dua alat UART. Kanggo inpo nu leuwih lengkep, tingal "API Usage Exampbagian les.
  3. Kode aplikasi kedah nganggo uart_module.c/h files nu boga sarat versi perpustakaan firmware. Saratna tiasa robih waktos ka waktos dumasar kana pembaruan. Pikeun ngonfirmasi sarat versi perpustakaan firmware ayeuna, tingal eusi cek dependensi ku milarian kecap konci "Cék dependensi" dina main.c file. Upami versi perpustakaan firmware henteu nyumponan sarat, unduh versi énggal tina tautan anu disayogikeun dina bagian "Perpustakaan Firmware".

Arsitéktur API
Unggal API boga parameter penting CH, nu Channel UART. Ieu nangtukeun saluran UART mana anu kedah dikontrol. Ayeuna nepi ka opat saluran UART dirojong ku kituna opat simbol konstan diartikeun kieu. Ieu dipaké salaku parameter CH nyadiakeun API dasar pikeun kontrol.

  • UARTM_CH0: parameter input - ngadalikeun atawa ngonpigurasikeun UART CH0
  • UARTM_CH1: parameter input - ngadalikeun atawa ngonpigurasikeun UART CH1
  • UARTM_CH2: parameter input - ngadalikeun atawa ngonpigurasikeun UART CH2
  • UARTM_CH3: parameter input - ngadalikeun atawa ngonpigurasikeun UART CH3

spasi memori moal wasted lamun ngan hiji saluran UART dipaké. Ieu kusabab jumlah saluran UART anu dirojong tiasa diatur sareng kode saluran UART anu henteu kapake bakal dipiceun ku preprocessor pikeun ningkatkeun rohangan mémori anu sayogi. Arsitéktur API dipidangkeun dina Gambar 9.

Gambar 9. Diagram Blok Arsitéktur API
Diagram Blok Arsitéktur

Unggal API diwangun ku opat grup setelan atawa kadali nu patali channel UART jadi pamaké ngan perlu input parameter CH nu dipikahoyong. Pikeun ngonpigurasikeun API relevan, eta ngan diperlukeun hiji tambahan UART tabel parameter konfigurasi dasar kalayan formulir struktur, USART_InitTypeDef. API bakal nerapkeun konfigurasi dasar UART nurutkeun eusi parameter dina tabél. Tingal bagian "API Déskripsi" pikeun tabel struktur konfigurasi dasar UART.

The uart_module.c/.h files ngan ngandung interupsi (CHx_IRQ) ​​jeung tabel status (CHx Status) unggal channel UART bari sagala setélan diperlukeun pikeun komunikasi UART disadiakeun ku ht32_board_config.h. Parameter relevan hardware dina ht32_board_config.h file dipidangkeun dina tabél ieu di handap. Langkung seueur rinci disayogikeun dina bagian "Setélan Katerangan".

Parameter relevan hardware dina ht32_board_config.h ngawengku I / O setélan jeung setélan port UART fisik, saperti kieu.

meja 3. Harti Lambang dina ht32_board_config.h

Lambang Katerangan
HTCFG_UARTM_CH0 Ngaran port UART fisik; Misalample: UART0, UART1…
HTCFG_UARTM0_TX_GPIO_PORT Nangtukeun ngaran port of TX pikeun CH0; Misalample: A, B, C…
HTCFG_UARTM0_TX_GPIO_PIN Nangtukeun jumlah pin TX pikeun CH0; Misalample: 0~15
HTCFG_UARTM0_RX_GPIO_PORT Nangtukeun ngaran port RX pikeun CH0; Misalample: A, B, C…
HTCFG_UARTM0_RX_GPIO_PIN Nangtukeun jumlah pin TX pikeun CH0; Misalample: 0~15
HTCFG_UARTM0_TX_BUFFER_SIZE Nangtukeun ukuran panyangga TX pikeun CH0; Misalampieu: 128
HTCFG_UARTM0_RX_BUFFER_SIZE Nangtukeun ukuran panyangga RX pikeun CH0; Misalampieu: 128

Pikeun ngarobih konfigurasi AFIO saluran UART, tingal lembar data alat anu sasuai. Ayeuna ngan ukur I / O definisi pikeun UART CH0 mawa pangaruh sabab ngan UART CH0 geus ngonpigurasi dina ht32_board_config.h. Pikeun nambahkeun UART CH1~3, definisi I/O maranéhanana kudu réngsé ku ngarujuk kana harti UART CH0 atawa ngarujuk kana bagian "Setelan Modifikasi jeung FAQs".

Aya tilu fitur utama arsitéktur API: 

  1. Nepi ka opat saluran UART dirojong. Parameter inputna nyaéta UARTM_CH0, UARTM_CH1, UARTM_CH2 sareng UARTM_CH3.
  2.  Jumlah saluran UART tiasa diatur sareng saluran anu henteu dianggo moal ngirangan rohangan mémori anu sayogi.
  3. Sadaya setélan UART sareng definisi I / O lengkep dipisahkeun tina API. Ieu ngaronjatkeun genah manajemén nilai netepkeun sarta ngurangan kamungkinan setelan salah atawa leungit.

Setting Katerangan 

bagian ieu bakal ngawanohkeun setélan parameter dina ht32_board_config.h na uart_module.h files.

  1. ht32_board_config.h: Ieu file dipaké pikeun definisi pin na dewan ngembangkeun setélan relevan, nu ngawengku saluran UART IP (UART0, UART1, USART0 ...) dipaké ku Starter Kit (SK), pakait TX / RX lokasi pin na TX / RX ukuran panyangga. angka 10 nembongkeun eusi setelan HT32F52352 Starter Kit. Gumantung kana integrasi fungsional pangwangunan, pangguna tiasa ngarujuk kana bagian "Pin Assignment" tina lembar data alat anu dianggo pikeun nerapkeun definisi pin. Langkung rinci ngeunaan modifikasi setelan bakal dijelaskeun dina bagian "Setelan modifikasi sareng FAQ".
    Gambar 10. ht32_board_config.h Setélan (HT32F52352)
    Setélan
  2. uart_module.h: Ieu lulugu API file dipaké ku kode aplikasi, nu ngawengku setélan standar relevan, harti fungsi, jeung sajabana Saperti dina Gambar 11, eusi setelan standar bisa overwritten ku konfigurasi éksternal, kayaning setélan dina ht32_board_config.h. file.
    angka 11. Setélan Default dina uart_module.h
    Setélan standar
Pedaran API
  1. Pedaran tipe data kode aplikasi.
    • USART_InitTypeDef
      Ieu struktur konfigurasi dasar UART nu diwangun ku BaudRate, WordLength, StopBits, Parity jeung konfigurasi Mode, ditémbongkeun saperti di handap ieu.
      Variabel Ngaran Tipe Katerangan
      USART_BaudRate u32 Laju baud komunikasi UART
      USART_WordLength u16 Panjang kecap komunikasi UART: 7, 8 atawa 9 bit
      USART_StopBits u16 Panjang bit eureun komunikasi UART: 1 atawa 2 bit
      USART_parity u16 Parity komunikasi UART: genap, ganjil, tanda, spasi atawa euweuh parity
      USART_Mode u16 modeu komunikasi UART; API ngan ngarojong mode normal
  2. Sateuacan nganggo fungsi API, ngalengkepan konfigurasi dasar UART dina program utama. Konfigurasi dasar UART pikeun kode aplikasi ieu ditémbongkeun dina Gambar 12. Di dieu laju baud 115200bps, panjang kecap 8-bit, eureun bit panjangna 1-bit, tur euweuh parity.
    angka 12. UART Konfigurasi Dasar
    Konfigurasi Dasar
  3. angka 13 nembongkeun fungsi API dinyatakeun dina uart_module.h file. Tabel di handap ieu ngajelaskeun fungsi, parameter input sareng panggunaan fungsi API.
    angka 13. Déklarasi Fungsi API dina uart_module.h 
    Déklarasi Fungsi API
Ngaran batal UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue)
Fungsi inisialisasi modul UART
  Input CH saluran UART
pUART_Init UART struktur konfigurasi dasar pointer
 uRxTimeOutValue Nilai waktos kaluar UART RX FIFO. Nalika RX FIFO narima data anyar counter bakal ngareset tur balikan deui. Sakali loket ngahontal nilai prasetél waktu-kaluar jeung pakait waktu-kaluar interrupts geus diaktipkeun, a interrupts waktos-out bakal dihasilkeun.
 Pamakéan UARTM_Init (UARTM_CH0, & USART_InitStructure, 40); // Jalankeun konfigurasi dasar UART // Tingal Gambar 12 pikeun konfigurasi USART_InitStructure
Ngaran u32 UARTM_WriteByte(u32 CH, u8 uData)
Fungsi UART modul nulis byte operasi (TX)
Input CH saluran UART
uData Data anu bakal ditulis
Kaluaran SUKSES Suksés
ERROR Gagal
Pamakéan UARTM_WriteByte(UARTM_CH0, 'A'); //UART nyerat 1 bait - 'A'
Ngaran u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength)
Fungsi Operasi nulis modul UART (TX)
 Input CH saluran UART
pBuffer Panyangga pointer
uPanjang Panjang data anu bakal ditulis
Kaluaran SUKSES Suksés
ERROR Gagal
 Pamakéan u8 Test[] = "Ieu tés!\r\n"; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); // UART nyerat data pBuffer
Ngaran u32 UARTM_ReadByte(u32 CH, u8 *pData)
Fungsi Operasi bait baca modul UART (RX)
Input CH saluran UART
pData Alamat pikeun nempatkeun data dibaca
Kaluaran SUKSES Suksés
ERROR Gagal (teu aya data)
   Pamakéan u8 TempData; lamun (UARTM_ReadByte (UARTM_CH0, & TempData) == SUCCESS) {UARTM_WriteByte (UARTM_CH0, TempData);} // Lamun UARTM_ReadByte () mulih SUCCESS lajeng UART nyerat bait data ieu
Ngaran u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength)
Fungsi Operasi baca modul UART (RX)
 Input CH saluran UART
pBuffer Panyangga pointer
uPanjang Panjang data anu dibaca
Kaluaran Jumlah bacaan Panjang data geus dibaca
     Pamakéan u8 Tés2[10]; u32 Lén; Len = UARTM_Read(UARTM_CH0, Test2, 5);lamun (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() maca 5 bait data jeung nyimpen data kana Test2, sarta nangtukeun count bait dibaca mun Len // Tulis data sourced tina Test2
Ngaran u32 UARTM_GetReadBufferLength(u32 CH)
Fungsi Kéngingkeun panjang panyangga baca (RX)
Input CH saluran UART
Kaluaran uPanjang Baca panjangna panyangga
  Pamakéan UARTM_Init (UARTM_CH0, & USART_InitStructure, 40); //Inisialisasi modul UART bari (UARTM_GetReadBufferLength (UARTM_CH0) <5); // Antosan dugi UARTM_ReadBuffer nampi 5 bait data
Ngaran u32 UARTM_GetWriteBufferLength(u32 CH)
Fungsi Kéngingkeun panjang panyangga nyerat (TX)
Input CH saluran UART
Kaluaran uPanjang Tulis panjang panyangga
Ngaran u8 UARTM_IsTxRengse(u32 CH)
Fungsi Kéngingkeun status TX
Input CH saluran UART
Kaluaran BENER status TX: rengse
PALSU Status TX: teu réngsé
      Pamakéan UARTM_WriteByte(UARTM_CH0, 'O'); #lamun 1 // "uart_module.c" SVN>= 525 requiredwhile (UARTM_IsTxFinished (UARTM_CH0) == PALSU) #elsewhile (1) #endif // API Ieu bisa dipaké pikeun pariksa status TX, ditémbongkeun saperti di luhur; antosan dugi UARTM_WriteByte () API geus rengse, ie, status TX BENER, lajeng neraskeun lampah salajengna.//A pangwatesan ditambahkeun sabab fungsi ieu teu acan ditambahkeun dugi angka versi SVN di uart_module.c nyaeta 525.
Ngaran batal UARTM_DiscardReadBuffer(u32 CH)
Fungsi Piceun data dina panyangga dibaca
Input CH saluran UART

Pamakéan API Examples 

bagian ieu bakal demonstrate API nulis jeung maca examples tina kode aplikasi "Module_UART" ngagunakeun prosés initialization jeung "UART_Module_Ex".ample" prosés kode aplikasi. Sateuacan nganggo API, pangguna kedah ngalebetkeun lulugu API file kana kode sumber program utama file (#include “middleware/uart_module.h”).

Ditémbongkeun saperti dina Gambar 14, nalika asup kana prosés inisialisasi, tangtukeun heula struktur konfigurasi dasar UART. Lajeng ngonpigurasikeun anggota struktur konfigurasi dasar UART kaasup BaudRate, WordLength, StopBits, Parity jeung Mode. Tungtungna, nelepon fungsi inisialisasi API, anu parantosan nunjukkeun tungtung prosés inisialisasi. Sanggeus ieu pamaké bisa neruskeun nulis jeung maca operasi dumasar kana prasetél UART konfigurasi dasar.

Gambar 14. Bagan Alur Inisialisasi
Bagan Alir Inisialisasi

The "UART_Module_Example" kode aplikasi nunjukkeun API maca jeung nulis operasi di ragam loopback. The flowchart pikeun ieu ditémbongkeun dina Gambar 15. Fungsi API dipaké kaasup UARTM_WriteByte (), UARTM_Write (), UARTM_ReadByte (), UARTM_Read () sarta UARTM_GetReadBufferLength (). Kateranganana disayogikeun dina bagian "Pedaran API".

Gambar 15. Bagan Alur Nulis jeung Maca Examples
Bagan alur Nulis jeung Maca Examples

Aya deui kode aplikasi "UART_Bridge" dina folder "Module_UART" anu aya hubunganana file déskripsi diwanohkeun dina bagian "Struktur Diréktori". Kode aplikasi "UART_Bridge" ngaktifkeun dua saluran UART, UART CH0 jeung UART CH1, lajeng customizes protokol komunikasi antara dua alat UART ngaliwatan struktur COMMAND, gCMD1 na gCMD2. Ieu didefinisikeun dina uart_bridge.c, ditémbongkeun saperti di handap ieu. UARTBridge_CMD1TypeDef gCMD1:

Variabel Ngaran Tipe Katerangan
uHeader u8 lulugu
uCmd u8 Paréntah
uData[3] u8 Data

UARTBridge_CMD2TypeDef gCMD2:

Variabel Ngaran Tipe Katerangan
uHeader u8 lulugu
uCmdA u8 Komando A
uCmdB u8 Paréntah B
uData[3] u8 Data

Dina kode aplikasi "UART_Bridge", paké gCMD1 pikeun nampi data salaku pakét paréntah teras nganalisis éta. Lajeng nurutkeun protokol komunikasi ngaropéa, set gCMD2 salaku pakét respon sarta ngirimkeunana. Di handap ieu mangrupa example tina hiji pakét paréntah gCMD1) jeung pakét respon (gCMD2). Pakét Paréntah (UARTBridge_CMD1TypeDef gCMD1):

Bait 0 Bait 1 Bait 2 ~ Bait 4
uHeader uCmd uData [3]
"A" "1" "x, y, z"

Paket Tanggapan (UARTBridge_CMD2TypeDef gCMD2):

Bait 0 Bait 1 Bait 2 Bait 3 ~ Bait 5
uHeader uCmdA uCmdB uData [3]
"B" "a" "1" "x, y, z"

Pakasaban Sumberdaya
Nyandak HT32F52352 salaku example, sumberdaya dikawasaan ku modul UART ditémbongkeun di handap.

HT32F52352
Ukuran ROM 946 bait
Ukuran RAM 40*1 + 256*2 Bait

Catetan:

  1. Variabel global kaasup bandéra sareng status pikeun saluran tunggal ngeusian 40 bait RAM.
  2.  Ieu kanggo kaayaan dimana saluran tunggal dianggo sareng ukuran panyangga TX / RX nyaéta 128/128 bait. Ukuran panyangga bisa diatur nurutkeun sarat aplikasi.

Tabél 4. Kode Aplikasi Pakasaban Sumberdaya 

  • Lingkungan kompilasi: MDK-Arm V5.36, ARMCC V5.06 update 7 (ngawangun 960)
  • Pilihan Optimalkeun: Tingkat 2 (-O2)

Parentah pikeun Paké

Bab ieu bakal ngenalkeun préparasi lingkungan pikeun kode aplikasi "Module_UART", kitu ogé léngkah-léngkah kompilasi sareng tés.

Persiapan Lingkungan
Parangkat lunak sareng parangkat lunak anu diperyogikeun pikeun kode aplikasi "Module_UART" dibéréndélkeun di handap.
meja 5. Hardware / Software Persiapan Lingkungan 

Hardware/Software Ngitung Catetan
Starter Kit 1 Catetan aplikasi ieu nganggo Kit Starter HT32F52352 salaku mantanample
Kabel USB 1 Micro USB, disambungkeun ka PC
Kode Aplikasi Jalur download, file jeung konfigurasi diréktori diwanohkeun dina "Resource Download na Persiapan" section.Path: "\\application\Module_UART\UART_Module_Example ”
Istilah Tera Tingali kana bagian "Software Terminal".
Keil IDE Keil uVision V5.xx

Kahiji, make HT32F52352 Starter Kit digabungkeun jeung Virtual COM Port (VCP) fungsi e-Link32 Lite pikeun bubuka aplikasi UART. Ieu merlukeun persiapan lingkungan handap pikeun dilaksanakeun:

  1. Aya dua interfaces USB dina dewan. Paké kabel USB pikeun nyambungkeun PC na eLink32 Lite panganteur dina dewan ditémbongkeun saperti dina Gambar 16- (a).
  2. Salaku kode aplikasi perlu ngagunakeun e-Link32 Lite Virtual COM Port (VCP) fungsi, mastikeun yén PAx * 2 na DAP_Tx of UART Jumper-J2 * 1 geus shorted maké jumper a. Lokasi J2 dituduhkeun ku Gambar 16-(b).

Catetan

  1. J2 dina Starter Kit boga dua pilihan, PAx na DAP_Tx shorted atanapi PAx na RS232_Tx shorted. Tingal manual pamaké Starter Kit pikeun pungsi setelan lengkep.
  2. Lokasi pin MCU UART RX dina Kit Starter béda béda. Mantan ieuample ngagunakeun PAx pikeun nunjukkeun pin RX.

angka 16. HT32 Starter Kit Blok Diagram
Kit Blok Diagram

Ayeuna nganggo papan target pamaké digabungkeun jeung Virtual COM Port (VCP) fungsi e-Link32 Pro pikeun bubuka aplikasi UART. Ieu merlukeun persiapan lingkungan handap pikeun dilaksanakeun:

  1. Hiji sisi e-Link32 Pro disambungkeun ka PC maké kabel Mini USB jeung sisi séjén disambungkeun ka papan target pamaké ngaliwatan kabel abu 10-bit na. Sambungan antara interfaces SWD tina kabel jeung dewan target dilaksanakeun ngagunakeun garis Dupont, ditémbongkeun saperti dina Gambar 17- (a).
  2. Pin komunikasi serial tina e-Link32 Pro nyaéta Pin # 7 VCOM_RXD sareng Pin # 8- VCOM_TXD. Ieu kudu disambungkeun ka TX na RX pin dewan target pamaké, ditémbongkeun saperti dina Gambar 17- (b).
    angka 17. e-Link32 Pro + Pamaké Target Board Blok Diagram
    Board Target pamaké

Kompilasi jeung Test
Bagian ieu bakal nyandak "aplikasi\Module_UART\UART_Module_Example" salaku urutample pikeun ngawanohkeun prosés kompilasi jeung tés. Sateuacan ieu, pastikeun yén sadaya persiapan anu dijelaskeun dina bagian sateuacana parantos dilaksanakeun sareng parangkat lunak terminal Tera Term parantos diunduh.

Léngkah-léngkah operasi anu lengkep diringkeskeun di handap.
Lengkah 1. Power-on test

Nyetél lingkungan hardware sakumaha ditétélakeun dina bagian saméméhna. Saatos kakuatan-on, LED kakuatan D9 di kénca handap Starter Kit bakal cahayana. D1 USB LED dina e-Link32 Lite di katuhu luhur bakal cahayana sanggeus enumeration USB geus réngsé. Upami D1 henteu bercahya saatos waktos anu lami, pastikeun yén kabel USB tiasa komunikasi. Upami henteu teras cabut teras selapkeun deui.

Lengkah 2. Ngahasilkeun proyék
Buka aplikasi\Module_UART\UART_Module_Example folder, klik dina _CreateProject.bat file pikeun ngahasilkeun proyék, ditémbongkeun saperti dina Gambar 18. Kusabab catetan aplikasi ieu ngagunakeun HT32F52352 Starter Kit, buka proyek Keil IDE "Project_52352.uvprojx" lokasina di handapeun folder MDK_ARMv5.

angka 18. Ngaéksekusi _CreateProject.bat pikeun ngahasilkeun Project
Ngahasilkeun Proyék

Lengkah 3. Compile jeung program
Saatos proyék dibuka, klik heula "Bangun" (atanapi nganggo potong kompas "F7"), teras klik "Unduh" (atanapi nganggo potong kompas "F8"). Saatos ieu, hasil ngawangun sareng unduh bakal ditingalikeun dina jandela Build Output. Tempo Gambar 19.

Gambar 19. Ngawangun jeung Ngundeur Hasil
Ngawangun sareng Ngundeur Hasil

Lengkah 4. Buka software Tera Term tur ngonpigurasikeun port serial
Buka software Tera Term sareng port COM. Nengetan naha jumlah port COM dihasilkeun ku Starter Kit bener atanapi henteu. Teras klik "Setup >> Port Serial" pikeun asupkeun antarmuka konfigurasi. Konfigurasi antarmuka UART tina kode aplikasi "Module_UART" dijelaskeun dina bagian "Software Terminal". Hasil setelan ditémbongkeun dina Gambar 20.

angka 20. Tera Istilah Serial Port Setup Hasil
Hasil Setup
Lengkah 5. Reset sistem jeung test
Pencét konci SK reset - B1 Reset. Saatos ieu, "ABCThis is test!" pesen bakal
dikirimkeun ngaliwatan API tur bakal dipintonkeun dina jandela Tera Istilah, ditémbongkeun saperti dina Gambar 21. Ngeunaan fungsi narima, lamun ngasupkeun data kana jandela Tera Istilah, API relevan bakal dipaké pikeun nangtukeun panjangna panyangga narima. Nalika data anu ditampi ku PC ngahontal 5 bait, anu nampi 5 bait data bakal dikirim sacara berurutan. Ditémbongkeun saperti dina Gambar 22, data sequentially diasupkeun nyaeta "1, 2, 3, 4, 5", nu narima tur ditangtukeun ngaliwatan API. Saatos ieu, data "1, 2, 3, 4, 5" bakal dicitak saatos lima input.

angka 21. "Module_UART" Kode Aplikasi Test Fungsional - ngirimkeun
Tés Fungsional Kode Aplikasi

angka 22. "Module_UART" Aplikasi Code Test Fungsional - Nampa
Tés Fungsional Kode Aplikasi

Parentah Transplantasi
Bagian ieu bakal ngawanohkeun kumaha ngahijikeun API kana proyék pamaké.
Lengkah 1. Tambahkeun uart_module.c file kana proyék. Klik katuhu dina folder pamaké. Pilih "Tambahkeun Aya Files ka Grup 'Pamaké'…”, teras pilih uart_module.c file teras klik dina "Tambahkeun", ditémbongkeun saperti dina Gambar 23. Tingal kana bagian "Struktur Diréktori" pikeun file pedaran jalur.

Gambar 23. Tambahkeun uart_module.c File pikeun Project
File pikeun Project

Lengkah 2. Tambahkeun ring_buffer.c file kana proyék. Klik katuhu dina folder pamaké. Pilih "Tambahkeun Aya Files ka Grup 'Pamaké'…”, teras pilih ring_buffer.c file teras klik dina "Tambahkeun", ditémbongkeun saperti dina Gambar 24.\ Rujuk kana bagian "Struktur Diréktori" pikeun file pedaran jalur.
Gambar 24. Tambahkeun ring_buffer.c File pikeun Project 
File pikeun Project

Lengkah 3. Kaasup lulugu API file kana awal main.c, ditémbongkeun saperti dina Gambar 25. (Ext: #include "middleware/uart_module.h")
angka 25. Kaasup lulugu API File ka utama.c
Kaasup lulugu API File

Lengkah 4. Nerapkeun setélan diperlukeun pikeun komunikasi UART ngagunakeun ht32_board_config.h file. Ieu diwanohkeun sacara rinci dina bagian "Setélan Katerangan" sareng "Setélan Modifikasi sareng FAQ".

Setélan Modifikasi jeung FAQs 

Bagian ieu bakal ngenalkeun kumaha cara ngarobih setélan UART sareng ngajelaskeun sababaraha patarosan umum anu dipendakan nalika dianggo.

Robah UART Pin Assignment 

  1. Ngarujuk kana bab HT32F52352 Datasheet "Pin Assignment", tingali tabel Pemetaan Fungsi Alternatip anu daptar fungsi AFIO tina jinis alat. Pikeun pin UART relevan, tingal kolom "AF6 USART / UART", ditémbongkeun saperti dina Gambar 26.
    angka 26. HT32F52352 Méja Mapping Fungsi Silih
    Méja Pemetaan Fungsi Silih
  2. Léngkah ieu bakal nungtun pangguna pikeun milarian pin UART anu saluyu nganggo tabel di luhur. HT32F52352 example ngagunakeun USART1 salaku saluran standar. Di dieu, pin TX sareng RX nyaéta USR1_TX sareng USR1_RX sareng ayana dina PA4 sareng PA5 masing-masing. angka 27 nembongkeun susuratan pin ogé harti pin dina "ht32_board_config.h". Widang kosong tina "Pakét" dina tabel ngerjakeun pin hartina euweuh GPIOs relevan dina pakét ieu. Pikeun ngarobih pin UART, panggihan lokasi pin udagan sareng ngartikeun deui pin nganggo "ht32_board_config.h" file.
    angka 27. Pin korespondensi jeung Setting Modifikasi
    Setélan Modifikasi

Tambahkeun Saluran UART
Nyandak HT32F52352 HTCFG_UARTM_CH1 salaku example, dieu eta digambarkeun kumaha carana nambahkeun saluran UART anyar.

Ngaropea ht32_board_config.h file
Ngarujuk kana bab HT32F52352 Datasheet "Pin Assignment", tingali tabel Pemetaan Fungsi Alternatip anu daptar fungsi AFIO tina jinis alat. Salaku USART1 geus dipaké salaku HTCFG_UARTM_CH0, nu anyar ditambahkeun HTCFG_UARTM_CH1 bisa milih USART0. Di dieu, TX na RX pin lokasina di PA2 na PA3 mungguh, ditémbongkeun saperti dina satengah luhur Gambar 28. modifikasi pakait dilaksanakeun ngagunakeun garis kode 120 ~ 126 di ht32_board_config.h, ditémbongkeun saperti ku kotak dotted beureum dina Gambar. 28.

angka 28. Tambahkeun Saluran UART
Saluran UART

FAQs
Q: Dina léngkah 5 tina bagian Kompilasi sareng Uji, tés fungsional ngirimkeun normal. Di dieu, "ABCThis téh tés!" pesen geus ditémbongkeun hasil, kumaha oge, pikeun fungsi narima, naha lima nilai input teu balik sarta ditampilkeun?
A: Pariksa naha pin MCU UART RX na DAP_Tx UART Jumper-J2 geus shorted maké jumper a. Kusabab kode aplikasi "Module_UART" kedah nganggo Virtual COM Port (VCP) tina e-Link32 Lite, setelan sirkuit pondok kedah diterapkeun kana dua pin kénca UART Jumper-J2, sapertos anu dipidangkeun dina Gambar 29.

angka 29. UART Jumper-J2 Setélan
UART Jumper

P: Sanggeus ngaéksekusi "Bangun" (atanapi potong kompas "F7"), pesen kasalahan muncul nunjukkeun yén versi perpustakaan firmware langkung lami tibatan anu diperyogikeun? Tempo Gambar 30.
A: Palaksanaan "Module_UART" kode aplikasi perlu ngawengku uart_module.c/h files nu boga sarat pikeun versi perpustakaan firmware tangtu. Nalika pesen kasalahan sapertos muncul, éta hartosna perpustakaan firmware anu ayeuna dianggo mangrupikeun versi anu langkung lami. Ku sabab eta perlu pikeun ngundeur versi newest ngaliwatan link disadiakeun dina bagian "Firmware Library".

Gambar 30. Firmware Library Vérsi Kasalahan Pesen
Pesen Kasalahan Vérsi

kacindekan

Dokumén ieu parantos nyayogikeun bubuka dasar pikeun ngabantosan pangguna pikeun ngartos kode aplikasi "Module_UART" sareng protokol komunikasi UART. Ieu dituturkeun ku download sumberdaya jeung persiapan. Bab Pedaran Fungsional ngawanohkeun file struktur diréktori, arsitéktur API, pedaran API tur pamakéan API examples. Bab Parentah pikeun Pamakéan nunjukkeun persiapan lingkungan, kompilasi sareng uji kode aplikasi "Module_UART". Éta ogé nyayogikeun petunjuk pikeun cangkok kode sareng setélan modifikasi ogé ngajelaskeun sababaraha masalah umum anu tiasa dipendakan. Sadaya gabungan ieu bakal ngamungkinkeun para pangguna gancang ngartos kumaha ngagunakeun API sareng salajengna ngirangan jumlah waktos pikeun ngamimitian.

Bahan Rujukan

Kanggo inpo nu leuwih lengkep, tingal Holtek websitus: www.holtek.com

Vérsi sarta Émbaran Modifikasi

titimangsa Pangarang Leupaskeun Émbaran modifikasi
2022.04.30 蔡期育(Chi-Yu Tsai) V1.00 Vérsi munggaran

Bantahan

Sadaya inpo, mérek dagang, logos, grafik, video, klip audio, Tumbu jeung item nu sejen muncul dina ieu websitus ('Inpormasi') ngan ukur kanggo rujukan sareng tiasa robih iraha waé tanpa aya bewara sateuacanna sareng kawijaksanaan Holtek Semiconductor Inc. urang' atawa 'urang'). Whilst Holtek endeavors pikeun mastikeun katepatan tina Émbaran ngeunaan ieu websitus, euweuh jaminan express atanapi tersirat dirumuskeun ku Holtek ka katepatan tina Émbaran. Holtek moal nanggung tanggung jawab pikeun kasalahan atanapi bocor.
Holtek moal nanggungjawaban kanggo karusakan naon waé (kalebet tapi henteu dugi ka virus komputer, masalah sistem atanapi leungitna data) naon waé anu timbul dina ngagunakeun atanapi aya hubunganana sareng panggunaan ieu. websitus ku pihak mana wae. Meureun aya tumbu di wewengkon ieu, nu ngidinan Anjeun pikeun nganjang ka websitus pausahaan séjén.
Ieu websitus teu dikawasa ku Holtek. Holtek moal nanggung tanggung jawab sareng henteu ngajamin naon waé inpormasi anu ditampilkeun dina situs sapertos kitu. Hyperlinks ka séjén websitus aya dina resiko sorangan.

Watesan Tanggung jawab

Dina hal naon wae Holtek Limited moal nanggungjawaban kana sadaya pihak séjén pikeun sagala karugian atawa karuksakan naon atawa kumaha ogé disababkeun langsung atawa henteu langsung dina sambungan kalawan aksés anjeun ka atawa pamakéan ieu. websitus, eusi eta atawa barang, bahan atawa jasa.

Hukum Ngatur
The Bantahan dikandung dina websitus bakal diatur ku tur diinterpretasi luyu jeung hukum Republik Cina. Pamaké bakal ngalebetkeun kana yurisdiksi non-ekslusif ti pangadilan Republik Cina.

Update tina Bantahan
Holtek boga hak pikeun ngamutahirkeun Bantahan iraha wae sareng atanapi tanpa aya bewara sateuacanna, sadaya parobihan efektif langsung saatos ngeposkeun ka websitus.

Dokumén / Sumberdaya

HOLTEK HT32 MCU UART Aplikasi Catetan [pdf] Manual pamaké
HT32 MCU, UART Aplikasi Catetan, HT32 MCU UART, Aplikasi Catetan, HT32, MCU UART Aplikasi Catetan, HT32 MCU UART Aplikasi Catetan

Rujukan

Ninggalkeun komentar

alamat surélék anjeun moal diterbitkeun. Widang diperlukeun ditandaan *