HOLTEK HT32 MCU UART lietojumprogrammas piezīme lietotāja rokasgrāmata
Ievads
Universālais asinhronais uztvērējs/raidītājs – UART ir plaši izmantots seriālās pārraides interfeiss, kas nodrošina elastīgu asinhronu pilndupleksu datu pārraidi. Lietojumprogrammas kods “Module_UART”, kas sniegts šajā pieteikuma piezīmē, izmanto TX/RX pārtraukumus ar programmatūras zvana buferiem, lai ieviestu vienkāršas UART pārraidīšanas/saņemšanas funkcijas, izmantojot API, kuru saistītās funkcijas ir aprakstītas tālāk. Tas vienkāršos visu datu pārraides procesu un ļaus lietotājiem ātri saprast un ieviest UART komunikācijas lietojumprogrammas.
- Nosūtīšanas/saņemšanas funkcijas: baitu lasīšana, baitu rakstīšana, bufera lasīšana, bufera rakstīšana utt.
- Statusa funkcijas: iegūstiet bufera garumu, TX statusu utt.
Šis dokuments vispirms iepazīstinās ar UART sakaru protokolu, kas lietotājiem palīdzēs labāk izprast UART komunikāciju no principa līdz pielietojumam. Pēc tam tiek lejupielādēti un sagatavoti lietojumprogrammas kodam nepieciešamie resursi, tostarp programmaparatūras bibliotēka, lietojumprogrammas koda lejupielāde, file un direktoriju konfigurācija, kā arī ievads termināļa programmatūras rīkā, kas izmantots lietojumprogrammas piezīmē. Nodaļā Funkcionālais apraksts tiks iepazīstināta ar lietojumprogrammas koda direktoriju struktūru, parametru iestatījumiem un API aprakstu. API lietojums tiks aprakstīts, izmantojot lietojumprogrammas kodu “Module_UART”, un tiks norādīts arī API nepieciešamais Flash/RAM resursu patēriņš. Lietošanas instrukciju sadaļā lietotājs palīdzēs veikt vides sagatavošanas, apkopošanas un pārbaudes darbības, lai pārliecinātos, ka lietojumprogrammas kods darbosies pareizi. Pēc tam tas sniegs norādījumus, kas izskaidro, kā integrēt API lietotāja projektos, un visbeidzot sniegs atsauci uz izmaiņām un izplatītākajām problēmām, ar kurām var saskarties.
Izmantotie saīsinājumi:
- UART: Universāls asinhronais uztvērējs/raidītājs
- API: Lietojumprogrammu interfeiss
- LSB: Mazāk nozīmīgais bits
- MSB: Visnozīmīgākais bits
- Dators: Personālais dators
- SK: Starta komplekts, HT32 izstrādes dēlis
- IDE: Integrētā attīstības vide
UART sakaru protokols
UART ir seriālās komunikācijas veida saskarne, kas savā raidītājā ievieš paralēlu uz seriālo datu pārveidi un pēc tam sazinās seriāli ar līdzīgu uztvērēju. Pēc tam uztvērējs pēc datu saņemšanas veic datu pārveidošanu no sērijas uz paralēlu. 1. attēlā parādīta seriālās komunikācijas shematiska diagramma, kas parāda, kā dati tiek pārsūtīti bitu secībā. Tāpēc divvirzienu saziņai starp raidītāju un uztvērēju ir nepieciešami tikai divi vadi, TX un RX, lai sērijveidā pārsūtītu datus. TX ir kontakts, uz kura UART pārraida sērijas datus un ir savienots ar uztvērēja RX kontaktu. Tāpēc raidītāja un uztvērēja ierīcēm ir jāsavieno TX un RX tapas, lai veiktu UART divvirzienu saziņu, kā parādīts attēls 2.
1. attēls. Sērijas komunikācijas diagramma
2. attēls. UART shēmas shēma
UART seriālās komunikācijas laikā datu pārraide ir asinhrona. Tas nozīmē, ka starp raidītāju un uztvērēju nav pulksteņa vai cita sinhronizācijas signāla. Šeit tiek izmantots datu pārraides ātrums, kas ir sērijas datu pārraides/saņemšanas ātrums un ko abas puses nosaka pirms datu pārsūtīšanas. Turklāt datu paketes sākumam un beigām tiek pievienoti īpaši biti, piemēram, sākuma un beigu biti, lai izveidotu pilnīgu UART datu paketi. 3. attēlā parādīta UART datu pakešu struktūra, savukārt 4. attēlā parādīta UART 8 bitu datu pakete bez paritātes bita.
3. attēls. UART datu pakešu struktūra
4. attēls. UART 8 bitu datu pakešu formāts
Katra UART datu paketes daļa ir ieviesta secībā zemāk.
- Sākuma bits: Tas norāda datu paketes sākumu. Pirms pārraides sākuma UART TX tapa parasti paliek augstā loģikas līmenī. Ja tiek sākta datu pārraide, UART raidītājs izvilks TX tapu no augsta uz zemu, ti, no 1 līdz 0, un pēc tam tur to tur vienu pulksteņa ciklu. UART uztvērējs sāks nolasīt datus, kad RX kontaktā tiks konstatēta pāreja no augstas uz zemu.
- Dati: Šie ir faktiskie pārsūtītie dati ar datu garumu 7, 8 vai 9 biti. Dati parasti tiek pārsūtīti ar LSB vispirms.
- Paritātes bits: Loģisko skaitli “1” datos izmanto, lai noteiktu, vai pārraides laikā ir mainījušies dati. Pāra paritātei kopējam loģikas “1” skaitam datos ir jābūt pāra skaitlim, un otrādi, kopējam loģikas “1” skaitam datos jābūt nepāra skaitlim nepāra paritātei.
- Stop bits: Tas norāda datu paketes beigas, kur UART raidītājs izvilks TX tapu no zemas uz augstu, ti, no 0 līdz 1, un pēc tam tur to tur 1 vai 2 bitu laika periodu.
Kā minēts iepriekš, tā kā UART ķēdē nav pulksteņa signāla, starp raidītāju un uztvērēju ir jānosaka tāds pats sērijas datu pārraides/saņemšanas ātrums, kas ir zināms kā bodu ātrums, lai nodrošinātu pārraidi bez kļūdām. Bodu pārraides ātrumu nosaka sekundē pārsūtīto bitu skaits bps (biti sekundē). Daži standarta un parasti izmantotie datu pārraides ātrumi ir 4800bps, 9600bps, 19200bps, 115200bps utt. Atbilstošais laiks, kas nepieciešams viena datu bita pārsūtīšanai, ir parādīts zemāk.
1. tabula. Pārraides ātrums pret 1 bitu pārraides laiku
Pārbaudes ātrums | 1 bitu pārraide Laiks |
4800bps | 208.33 µs |
9600bps | 104.16 µs |
19200bps | 52.08 µs |
115200bps | 8.68 µs |
Resursu lejupielāde un sagatavošana
Šajā nodaļā tiks iepazīstināts ar lietojumprogrammas kodu un izmantoto programmatūras rīku, kā arī par to, kā konfigurēt direktoriju un file ceļš.
Programmaparatūras bibliotēka
Pirmkārt, pirms lietojumprogrammas koda izmantošanas pārliecinieties, vai ir lejupielādēta Holtek HT32 programmaparatūras bibliotēka. Lejupielādes saite ir parādīta zemāk. Šeit ir divas iespējas: HT32_M0p_Vyyyymmdd.zip sērijai HT32F5xxxx un HT32_M3_Vyyyymmdd.zip sērijai HT32F1xxxx. Lejupielādējiet un izpakojiet vajadzīgo file.
Rāvējslēdzējs file satur vairākas mapes, kuras var klasificēt kā dokuments, programmaparatūras bibliotēka, rīki un citi vienumi, kuru izvietojuma ceļš parādīts 5. attēlā. HT32 programmaparatūras bibliotēkas zip. file ar a file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip nosaukums atrodas zem mapes Firmware_Library.
5. attēls. HT32_M0p_Vyyyymmdd.zip Saturs
Pieteikuma kods
Lejupielādējiet lietojumprogrammas kodu no šīs saites. Lietojumprogrammas kods ir iesaiņots zip file ar a file HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip nosaukums. Skat 6. attēls priekš file nosaukumu konvencijas.
6. attēls. Pieteikuma kods File Nosaukums Ievads
Lejupielādes saite: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/
File un direktorija konfigurācija
Tā kā lietojumprogrammas kods nesatur HT32 programmaparatūras bibliotēku files, lietojumprogrammas kods un programmaparatūras bibliotēka ir atarhivēta files jānovieto pareizajā ceļā pirms kompilācijas sākšanas. Lietojumprogrammas koda zip file parasti satur vienu vai vairākas mapes, piemēram, lietojumprogrammu un bibliotēku, kā parādīts 7. attēlā. Novietojiet lietojumprogrammas mapi zem HT32 programmaparatūras bibliotēkas saknes direktorija, lai pabeigtu file ceļa konfigurācija, kā parādīts 8. attēlā. Alternatīvi, izsaiņojiet lietojumprogrammas kodu un HT32 programmaparatūras bibliotēku vienlaikus tajā pašā ceļā, lai sasniegtu tādus pašus konfigurācijas rezultātus.
7. attēls. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip Saturs
8. attēls. Dekompresijas ceļš
Termināla programmatūra
Lietojumprogrammas kods var pārsūtīt ziņojumus caur COM portu, lai īstenotu funkciju atlasi vai statusa displeju. Tas prasa, lai resursdatora puse būtu iepriekš instalēta termināļa programmatūra. Lietotāji var izvēlēties piemērotu savienojuma programmatūru vai izmantot bezmaksas licencētu programmatūru, piemēram, Tera Term. Lietojumprogrammas kodā UART kanāls ir konfigurēts ar vārda garumu 8 biti, bez paritātes, 1 stopbitu un bodu ātrumu 115200 XNUMX bps.
Funkcionālais apraksts
Šajā nodaļā tiks sniegts lietojumprogrammas koda funkcionālais apraksts, tostarp informācija par direktoriju struktūru, API arhitektūru, iestatījumu aprakstu utt
Direktoriju struktūra
Lietojumprogrammas kods file satur lietojumprogrammu mapi. Nākamais slānis ir mape "Module_UART", kurā ir divas lietojumprogrammas "UART_Module_Ex".ample” un “UART_Bridge”. Attiecīgais files ir uzskaitīti un aprakstīti tālāk.
2. tabula. Lietojumprogrammu kodu direktorija struktūra
Mape / File Vārds | Apraksts |
\\application\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | Pakešu skripti projekta izveidei files |
_ProjectSource.ini | Inicializācija file avota koda pievienošanai projektiem |
ht32_board_config.h | Iestatīšana file kas saistīti ar IC perifērijas I/O piešķiršanu |
ht32fxxxxx_01_it.c | Pārtraukt pakalpojumu programmu file |
galvenais.c | Galvenās programmas pirmkods |
\\application\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | Pakešu skripti projekta izveidei files |
_ProjectSource.ini | Inicializācija file avota koda pievienošanai projektiem |
ht32_board_config.h | Iestatīšana file kas saistīti ar IC perifērijas I/O piešķiršanu |
ht32fxxxxx_01_it.c | Pārtraukt pakalpojumu programmu file |
galvenais.c | Galvenās programmas pirmkods |
uart_bridge.h uart_bridge.c | UART tilta galvene file un pirmkods file |
\\utilities\middleware | |
uart_module.h*3 uart_module.c*3 | API galvene file un pirmkods file |
\\utilities\common | |
ringbuffer.h ring_buffer.c | Programmatūras zvana bufera galvene file un pirmkods file |
Piezīme:
- Sadaļā “UART_Module_Example” lietojumprogrammas kods, API lasīšanas un rakstīšanas darbības tiek veiktas atpakaļcilpas veidā, skatiet sadaļu “API lietošanas piem.amples” sadaļā, lai iegūtu sīkāku informāciju.
- Lietojumprogrammas kodā “UART_Bridge” tiek aktivizēti divi UART kanāli – UART CH0 un UART CH1, un starp abām UART ierīcēm tiek ieviests pielāgots saziņas protokols, izmantojot COMMAND struktūras. Lai iegūtu papildinformāciju, skatiet “API lietošanas piemamples” sadaļā.
- Lietojumprogrammas kodam ir jāizmanto uart_module.c/h files, kurām ir programmaparatūras bibliotēkas versijas prasība. Atbilstoši atjauninājumam prasība laiku pa laikam var mainīties. Lai apstiprinātu pašreizējo programmaparatūras bibliotēkas versijas prasību, skatiet atkarības pārbaudes saturu, meklējot atslēgvārdu “Atkarības pārbaude” galvenajā.c. file. Ja programmaparatūras bibliotēkas versija neatbilst prasībām, lejupielādējiet jaunāko versiju no sadaļā “Aparātprogrammatūras bibliotēka” esošās saites.
API arhitektūra
Katrai API ir svarīgs parametrs CH, kas ir UART kanāls. Tas nosaka, kurš UART kanāls ir jāvada. Pašlaik tiek atbalstīti līdz četriem UART kanāliem, tāpēc četri nemainīgie simboli ir definēti šādi. Tie tiek izmantoti kā parametrs CH, kas nodrošina API vadības pamatu.
- UARTM_CH0: ievades parametrs – kontrolē vai konfigurē UART CH0
- UARTM_CH1: ievades parametrs – kontrolē vai konfigurē UART CH1
- UARTM_CH2: ievades parametrs – kontrolē vai konfigurē UART CH2
- UARTM_CH3: ievades parametrs – kontrolē vai konfigurē UART CH3
Atmiņas vieta netiks tērēta, ja tiks izmantots tikai viens UART kanāls. Tas ir tāpēc, ka var iestatīt atbalstīto UART kanālu skaitu un priekšprocesors noņems neizmantoto UART kanāla kodu, lai palielinātu pieejamo atmiņas vietu. API arhitektūra ir parādīta 9. attēls.
9. attēls. API arhitektūras blokshēma
Katra API sastāv no četrām ar UART kanālu saistītu iestatījumu vai vadīklu grupām, lai lietotājiem būtu jāievada tikai vēlamais CH parametrs. Lai konfigurētu attiecīgo API, ir nepieciešama tikai papildu UART pamata konfigurācijas parametru tabula ar struktūras formu USART_InitTypeDef. API ieviesīs UART pamata konfigurāciju atbilstoši parametru saturam tabulā. UART pamata konfigurācijas struktūras tabulai skatiet sadaļu “API apraksts”.
uart_module.c/.h files satur tikai katra UART kanāla pārtraukumu (CHx_IRQ) un statusa tabulu (CHx statuss), savukārt visus UART saziņai nepieciešamos iestatījumus nodrošina ht32_board_config.h. Aparatūrai atbilstošie parametri failā ht32_board_config.h file ir parādīti zemāk esošajā tabulā. Sīkāka informācija ir sniegta sadaļā “Iestatījumu apraksts”.
Aparatūrai atbilstošie parametri ht32_board_config.h ietver I/O iestatījumus un fizisko UART porta iestatījumus, kā norādīts tālāk.
3. tabula. Definīcijas simboli ht32_board_config.h
Simbols | Apraksts |
HTCFG_UARTM_CH0 | Fiziskā UART porta nosaukums; Piemample: UART0, UART1… |
HTCFG_UARTM0_TX_GPIO_PORT | Definē TX porta nosaukumu CH0; Piemample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | Definē TX PIN numuru CH0; Piemample: 0-15 |
HTCFG_UARTM0_RX_GPIO_PORT | Definē CH0 RX porta nosaukumu; Piemample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | Definē TX PIN numuru CH0; Piemample: 0-15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | Definē TX bufera izmēru CH0; Piemamptālr .: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | Definē RX bufera izmēru CH0; Piemamptālr .: 128 |
Lai mainītu UART kanāla AFIO konfigurāciju, skatiet attiecīgās ierīces datu lapu. Pašlaik spēkā ir tikai UART CH0 I/O definīcijas, jo ht0_board_config.h ir konfigurēts tikai UART CH32. Lai pievienotu UART CH1~3, to I/O definīcijas ir jāaizpilda, atsaucoties uz UART CH0 definīciju vai sadaļu "Iestatījumu modifikācijas un bieži uzdotie jautājumi".
Ir trīs API arhitektūras galvenās iezīmes:
- Tiek atbalstīti līdz četriem UART kanāliem. To ievades parametri ir UARTM_CH0, UARTM_CH1, UARTM_CH2 un UARTM_CH3.
- UART kanālu skaitu var iestatīt, un neizmantotie kanāli nesamazinās pieejamo atmiņas vietu.
- Visi UART iestatījumi un I/O definīcijas ir pilnībā atdalītas no API. Tas palielina iestatīšanas vērtību pārvaldības ērtības un samazina nepareizu vai trūkstošu iestatījumu iespējamību.
Iestatījuma apraksts
Šajā sadaļā tiks iepazīstināti ar parametru iestatījumiem failos ht32_board_config.h un uart_module.h files.
- ht32_board_config.h: Šis file tiek izmantots tapu definīcijām un izstrādes paneļa attiecīgajiem iestatījumiem, kas ietver UART IP kanālu (UART0, UART1, USART0…), ko izmanto sākuma komplekts (SK), atbilstošās TX/RX tapu atrašanās vietas un TX/RX bufera izmēru. 10. attēlā parādīts HT32F52352 sākuma komplekta iestatījuma saturs. Atkarībā no izstrādes funkcionālās integrācijas, lai ieviestu tapu definīcijas, lietotāji var atsaukties uz lietotās ierīces datu lapas sadaļu "Pin Assignment". Sīkāka informācija par iestatījumu modifikāciju tiks aprakstīta sadaļā “Iestatījumu modifikācijas un FAQ”.
10. attēls. ht32_board_config.h iestatījumi (HT32F52352)
- uart_module.h: Šī ir API galvene file izmanto lietojumprogrammas kods, kas ietver attiecīgos noklusējuma iestatījumus, funkciju definīcijas utt. Kā parādīts 11. attēlā, noklusējuma iestatījumu saturu var pārrakstīt ar ārējām konfigurācijām, piemēram, iestatījumiem ht32_board_config.h. file.
11. attēls. Noklusējuma iestatījumi failā uart_module.h
API apraksts
- Lietojumprogrammas koda datu tipa apraksts.
- USART_InitTypeDef
Šī ir UART pamata konfigurācijas struktūra, kas sastāv no BaudRate, WordLength, StopBits, Parity un Mode konfigurācijām, kā parādīts tālāk.Mainīgs Vārds Tips Apraksts USART_BaudRate u32 UART sakaru pārraides ātrums USART_WordLength u16 UART komunikācijas vārda garums: 7, 8 vai 9 biti USART_StopBits u16 UART komunikācijas apturēšanas bitu garums: 1 vai 2 biti USART_Paritāte u16 UART komunikācijas paritāte: pāra, nepāra, atzīme, atstarpe vai bez paritātes USART_Mode u16 UART sakaru režīms; API atbalsta tikai parasto režīmu
- USART_InitTypeDef
- Pirms API funkciju izmantošanas galvenajā programmā pabeidziet UART pamata konfigurāciju. Šī lietojumprogrammas koda UART pamata konfigurācija ir parādīta 12. attēlā. Šeit datu pārraides ātrums ir 115200 8 bps, vārda garums ir 1 biti, stopbita garums ir XNUMX bits, un nav paritātes.
12. attēls. UART pamata konfigurācija
- 13. attēlā parādītas API funkcijas, kas deklarētas failā uart_module.h file. Šajās tabulās ir izskaidrota API funkciju funkcija, ievades parametri un lietojums.
13. attēls. API funkciju deklarācijas failā uart_module.h
Vārds | nederīgs UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
Funkcija | UART moduļa inicializācija | |
Ievade | CH | UART kanāls |
pUART_Init | UART pamata konfigurācijas struktūras rādītājs | |
uRxTimeOutValue | UART RX FIFO taimauta vērtība. Kad RX FIFO saņem jaunus datus, skaitītājs tiks atiestatīts un restartēts. Tiklīdz skaitītājs sasniedz iepriekš iestatīto taimauta vērtību un ir iespējots atbilstošais taimauta pārtraukums, tiks ģenerēts taimauta pārtraukums. | |
Lietošana | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//Izpildīt UART pamata konfigurāciju//Skatiet 12. attēlu par USART_InitStructure konfigurāciju |
Vārds | u32 UARTM_WriteByte (u32 CH, u8 uData) | |
Funkcija | UART moduļa rakstīšanas baitu darbība (TX) | |
Ievade | CH | UART kanāls |
uData | Rakstāmie dati | |
Izvade | VEIKSMES | Veiksmīgi |
KĻŪDA | Neizdevās | |
Lietošana | UARTM_WriteByte(UARTM_CH0, 'A'); //UART raksta 1 baitu — "A" |
Vārds | u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength) | |
Funkcija | UART moduļa rakstīšanas darbība (TX) | |
Ievade | CH | UART kanāls |
pBuferis | Bufera rādītājs | |
u garums | Rakstāmo datu garums | |
Izvade | VEIKSMES | Veiksmīgi |
KĻŪDA | Neizdevās | |
Lietošana | u8 Test[] = "Tas ir tests!\r\n"; UARTM_Write(UARTM_CH0, Test, izmērs(Pārbaude) -1); //UART raksta pBuffer datus |
Vārds | u32 UARTM_ReadByte (u32 CH, u8 *pData) | |
Funkcija | UART moduļa lasīšanas baitu darbība (RX) | |
Ievade | CH | UART kanāls |
pData | Adrese nolasīto datu ievietošanai | |
Izvade | VEIKSMES | Veiksmīgi |
KĻŪDA | Neizdevās (nav datu) | |
Lietošana | u8 TempData; if (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//Ja UARTM_ReadByte() atgriež SUCCESS, UART ieraksta šo datu baitu |
Vārds | u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength) | |
Funkcija | UART moduļa lasīšanas darbība (RX) | |
Ievade | CH | UART kanāls |
pBuferis | Bufera rādītājs | |
u garums | Lasāmo datu garums | |
Izvade | Lasīt skaits | Datu garums ir nolasīts |
Lietošana | u8 Test2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() nolasa 5 baitus datu un saglabā datus testā 2 un piešķir lasīšanas baitu skaitu uz Len//Uzrakstiet datus, kas iegūti no Test2 |
Vārds | u32 UARTM_GetReadBufferLength(u32 CH) | |
Funkcija | Iegūstiet lasīšanas bufera garumu (RX) | |
Ievade | CH | UART kanāls |
Izvade | u garums | Lasīt bufera garumu |
Lietošana | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART moduļa inicializācija while (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//Pagaidiet, līdz UARTM_ReadBuffer ir saņēmis 5 baitus datu |
Vārds | u32 UARTM_GetWriteBufferLength(u32 CH) | |
Funkcija | Iegūstiet rakstīšanas bufera garumu (TX) | |
Ievade | CH | UART kanāls |
Izvade | u garums | Ierakstiet bufera garumu |
Vārds | u8 UARTM_IsTxFinished(u32 CH) | |
Funkcija | Iegūstiet TX statusu | |
Ievade | CH | UART kanāls |
Izvade | PATIESA | TX statuss: pabeigts |
FALSE | TX statuss: nav pabeigts | |
Lietošana | UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 obligāti (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif //Šo API var izmantot, lai pārbaudītu TX statusu, kā parādīts iepriekš; uzgaidiet, līdz UARTM_WriteByte() API ir pabeigta, ti, TX statuss ir TRUE, un pēc tam turpiniet turpmākās darbības.//Ir pievienots ierobežojums, jo šī funkcija nav pievienota, kamēr SVN versijas numurs uart_module.c nav 525. |
Vārds | nederīgs UARTM_DiscardReadBuffer(u32 CH) | |
Funkcija | Izmetiet datus lasīšanas buferī | |
Ievade | CH | UART kanāls |
API lietošanas piemamples
Šajā sadaļā tiks parādīta API rakstīšana un lasīšana, piemamplietojumprogrammas kodu “Module_UART”, izmantojot inicializācijas procesu, un “UART_Module_Ex”ample” pieteikuma koda process. Pirms API izmantošanas lietotājiem ir jāiekļauj API galvene file galvenajā programmas pirmkodā file (#include “middleware/uart_module.h”).
Kā parādīts 14. attēlā, ievadot inicializācijas procesu, vispirms definējiet UART pamata konfigurācijas struktūru. Pēc tam konfigurējiet UART pamata konfigurācijas struktūras elementus, tostarp BaudRate, WordLength, StopBits, Parity un Mode. Visbeidzot, izsauciet API inicializācijas funkciju, kuras pabeigšana norāda uz inicializācijas procesa beigām. Pēc tam lietotāji var turpināt rakstīšanas un lasīšanas darbības, pamatojoties uz iepriekš iestatīto UART pamata konfigurāciju.
14. attēls. Inicializācijas blokshēma
“UART_Module_Example” lietojumprogrammas kods demonstrē API lasīšanas un rakstīšanas darbības cilpas veidā. Plūsmas diagramma ir parādīta 15. attēlā. Izmantotās API funkcijas ietver UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() un UARTM_GetReadBufferLength(). To apraksts ir sniegts sadaļā “API apraksts”.
15. attēls. Rakstīšanas un lasīšanas blokshēma Piemamples
Mapē “Module_UART” ir vēl viens lietojumprogrammas kods “UART_Bridge”, kas ir saistīts file apraksts ir ieviests sadaļā “Kataloga struktūra”. Lietojumprogrammas kods “UART_Bridge” aktivizē divus UART kanālus, UART CH0 un UART CH1, un pēc tam pielāgo sakaru protokolu starp abām UART ierīcēm, izmantojot COMMAND struktūras gCMD1 un gCMD2. Tie ir definēti uart_bridge.c, kā parādīts tālāk. UARTBridge_CMD1TypeDef gCMD1:
Mainīgs Vārds | Tips | Apraksts |
uHeader | u8 | Virsraksts |
uCmd | u8 | Komanda |
uData[3] | u8 | Dati |
UARTBridge_CMD2TypeDef gCMD2:
Mainīgs Vārds | Tips | Apraksts |
uHeader | u8 | Virsraksts |
uCmdA | u8 | Komanda A |
uCmdB | u8 | Komanda B |
uData[3] | u8 | Dati |
Lietojumprogrammas kodā “UART_Bridge” izmantojiet gCMD1, lai saņemtu datus kā komandu paketi un pēc tam analizētu tos. Pēc tam saskaņā ar pielāgoto sakaru protokolu iestatiet gCMD2 kā atbildes paketi un pārsūtiet to. Tālāk ir norādīts bijušaisample no komandu paketes gCMD1) un atbildes paketes (gCMD2). Komandu pakete (UARTBridge_CMD1TypeDef gCMD1):
0. baits | 1. baits | 2. baits ~ 4. baits |
uHeader | uCmd | uData [3] |
“A” | "1" | “x, y, z” |
Atbildes pakete (UARTBridge_CMD2TypeDef gCMD2):
0. baits | 1. baits | 2. baits | 3. baits ~ 5. baits |
uHeader | uCmdA | uCmdB | uData [3] |
“B” | "a" | "1" | “x, y, z” |
Resursu nodarbošanās
Ņemot HT32F52352 kā bijušoample, UART moduļa aizņemtie resursi ir parādīti zemāk.
HT32F52352 | |
ROM izmērs | 946 baiti |
RAM lielums | 40*1 + 256 XNUMX XNUMX XNUMX*2 Baiti |
Piezīme:
- Globālie mainīgie, tostarp karodziņi un viena kanāla statuss, aizņem 40 baitus RAM.
- Tas ir paredzēts stāvoklim, kad tiek izmantots viens kanāls un TX/RX bufera lielums ir 128/128 baiti. Bufera izmēru var iestatīt atbilstoši lietojumprogrammas prasībām.
4. tabula. Lietojumprogrammas koda resursa aizņemšanās
- Kompilācijas vide: MDK-Arm V5.36, ARMCC V5.06 7. jauninājums (960. būvējums)
- Optimizācijas opcija: 2. līmenis (-O2)
Lietošanas instrukcijas
Šajā nodaļā tiks iepazīstināta ar vides sagatavošanu lietojumprogrammas “Module_UART” kodam, kā arī kompilācijas un pārbaudes soļiem.
Vides sagatavošana
Programmas “Module_UART” kodam nepieciešamā aparatūra un programmatūra ir norādīta zemāk.
5. tabula. Aparatūras/programmatūras vides sagatavošana
Aparatūra/Programmatūra | Skaitīt | Piezīme |
Sākuma komplekts | 1 | Šajā lietojumprogrammas piezīmē kā eksemplārs tiek izmantots sākuma komplekts HT32F52352ample |
USB kabelis | 1 | Micro USB, savienots ar datoru |
Pieteikuma kods | — | Lejupielādes ceļš, file un direktoriju konfigurācija ir ieviesti sadaļā “Resursu lejupielāde un sagatavošana”.Ceļš: “\\application\Module_UART\UART_Module_Example ” |
Tera termins | — | Skatiet sadaļu "Termināla programmatūra". |
Keil IDE | — | Keil uVision V5.xx |
Vispirms UART lietojumprogrammas ievadīšanai izmantojiet HT32F52352 sākuma komplektu kopā ar e-Link32 Lite virtuālo COM portu (VCP). Tam nepieciešama šāda vides sagatavošana:
- Uz tāfeles ir divas USB saskarnes. Izmantojiet USB kabeli, lai savienotu datoru un eLink32 Lite interfeisu uz plates, kā parādīts 16. (a) attēlā.
- Tā kā lietojumprogrammas kodam ir jāizmanto e-Link32 Lite virtuālā COM porta (VCP) funkcija, pārliecinieties, vai UART Jumper-J2*2 PAx*1 un DAP_Tx ir īssavienojums, izmantojot džemperi. J2 atrašanās vieta ir norādīta 16. (b) attēlā.
Piezīme
- Sākuma komplekta J2 ir divas iespējas: PAx un DAP_Tx īssavienojums vai PAx un RS232_Tx īssavienojums. Detalizētas iestatīšanas funkcijas skatiet Starter Kit lietotāja rokasgrāmatā.
- MCU UART RX tapas atrašanās vieta dažādos sākuma komplektos ir atšķirīga. Šis bijušaisample izmanto PAx, lai norādītu RX tapu.
16. attēls. HT32 sākuma komplekta blokshēma
Tagad UART lietojumprogrammas ieviešanai izmantojiet lietotāja mērķa plati kopā ar e-Link32 Pro virtuālā COM porta (VCP) funkciju. Tam nepieciešama šāda vides sagatavošana:
- Viena e-Link32 Pro puse ir savienota ar datoru, izmantojot Mini USB kabeli, bet otra puse ir savienota ar lietotāja mērķa plati, izmantojot 10 bitu pelēko kabeli. Savienojums starp kabeļa un mērķa plates SWD saskarnēm tiek realizēts, izmantojot Dupont līnijas, kā parādīts 17. (a) attēlā.
- e-Link32 Pro seriālās komunikācijas tapas ir Pin#7 VCOM_RXD un Pin#8- VCOM_TXD. Tiem jābūt savienotiem ar lietotāja mērķa plates TX un RX tapām, kā parādīts 17. (b) attēlā.
17. attēls. e-Link32 Pro + lietotāja mērķa plates blokshēma
Kompilācija un pārbaude
Šajā sadaļā būs “application\Module_UART\UART_Module_Example” kā bijušaisample iepazīstināt ar kompilācijas un testēšanas procesiem. Pirms tam pārliecinieties, vai ir veikti visi iepriekšējā sadaļā aprakstītie sagatavošanās darbi un vai ir lejupielādēta Tera Term termināļa programmatūra.
Detalizēti darbības soļi ir apkopoti zemāk.
1. darbība. Ieslēgšanas tests
Iestatiet aparatūras vidi, kā aprakstīts iepriekšējā sadaļā. Pēc ieslēgšanas sāks komplekta apakšējā kreisajā stūrī iedegsies D9 barošanas gaismas diode. Kad USB uzskaite būs pabeigta, e-Link1 Lite augšējā labajā stūrī iedegsies D32 USB gaismas diode. Ja D1 pēc ilgāka laika nav izgaismots, pārbaudiet, vai USB kabelis var sazināties. Ja nē, noņemiet to un ievietojiet vēlreiz.
2. darbība. Izveidojiet projektu
Atveriet lietojumprogrammu\Module_UART\UART_Module_Example mapi, noklikšķiniet uz _CreateProject.bat file lai ģenerētu projektu, kā parādīts 18. attēlā. Tā kā šī lietojumprogrammas piezīme izmanto sākuma komplektu HT32F52352, atveriet Keil IDE projektu “Project_52352.uvprojx”, kas atrodas zem mapes MDK_ARMv5.
18. attēls. Izpildiet _CreateProject.bat, lai ģenerētu projektu
Solis 3. Kompilējiet un ieprogrammējiet
Pēc projekta atvēršanas vispirms noklikšķiniet uz “Build” (vai izmantojiet saīsni “F7”), pēc tam noklikšķiniet uz “Lejupielādēt” (vai izmantojiet saīsni “F8”). Pēc tam izveides un lejupielādes rezultāti tiks parādīti logā Build Output. Skatīt 19. attēlu.
19. attēls. Veidošanas un lejupielādes rezultāti
4. darbība. Atveriet programmatūru Tera Term un konfigurējiet seriālo portu
Atveriet programmatūru Tera Term un COM portu. Pievērsiet uzmanību tam, vai sākuma komplekta ģenerētais COM porta numurs ir pareizs. Pēc tam noklikšķiniet uz “Iestatīšana >> Serial Port”, lai atvērtu konfigurācijas saskarni. Lietojumprogrammas “Module_UART” koda UART interfeisa konfigurācija ir aprakstīta sadaļā “Termināla programmatūra”. Iestatīšanas rezultāts ir parādīts 20. attēlā.
20. attēls. Tera Term seriālā porta iestatīšanas rezultāts
5. darbība. Atiestatiet sistēmu un pārbaudiet
Nospiediet SK atiestatīšanas taustiņu – B1 Reset. Pēc tam parādās “ABCThis is test!” ziņa būs
pārsūta caur API un tiks parādīts logā Tera Term, kā parādīts 21. attēlā. Attiecībā uz saņemšanas funkciju, ievadot datus Tera Term logā, saņemšanas bufera garuma noteikšanai tiks izmantota attiecīgā API. Kad datorā saņemtie dati sasniegs 5 baitus, saņemtie 5 baiti dati tiks izsūtīti secīgi. Kā parādīts 22. attēlā, secīgi ievadītie dati ir “1, 2, 3, 4, 5”, kas tiek saņemti un noteikti, izmantojot API. Pēc tam pēc piecām ievadēm tiks izdrukāti dati “1, 2, 3, 4, 5”.
21. attēls. “Module_UART” Lietojumprogrammas koda funkcionālā pārbaude – pārraide
22. attēls. “Module_UART” Lietojumprogrammas koda funkcionālā pārbaude – saņemšana
Transplantācijas instrukcijas
Šajā sadaļā ir aprakstīts, kā integrēt API lietotāja projektos.
1. darbība. Pievienojiet uart_module.c file projektā. Ar peles labo pogu noklikšķiniet uz mapes Lietotājs. Izvēlieties "Pievienot esošo Files uz grupu “Lietotājs”…”, pēc tam atlasiet uart_module.c file un noklikšķiniet uz "Pievienot", kā parādīts 23. attēlā. Skatiet sadaļu "Directory Structure", lai uzzinātu file ceļa apraksts.
23. attēls. Pievienojiet uart_module.c File uz Projektu
2. darbība. Pievienojiet ring_buffer.c file projektā. Ar peles labo pogu noklikšķiniet uz mapes Lietotājs. Izvēlieties "Pievienot esošo Files uz grupu “Lietotājs”…”, pēc tam atlasiet ring_buffer.c file un noklikšķiniet uz "Pievienot", kā parādīts 24. attēlā.\ Skatiet sadaļu "Directory Structure", lai uzzinātu file ceļa apraksts.
24. attēls. Pievienot ring_buffer.c File uz Projektu
3. darbība. Iekļaujiet API galveni file Main.c sākumā, kā parādīts 25. attēlā. (Ext: #include “middleware/uart_module.h”)
25. attēls. Iekļaut API galveni File uz galveno.c
4. darbība. Ieviesiet UART komunikācijai nepieciešamos iestatījumus, izmantojot ht32_board_config.h file. Tas ir detalizēti aprakstīts sadaļās “Iestatījumu apraksts” un “Iestatījumu modifikācijas un bieži uzdotie jautājumi”.
Iestatījumu modifikācijas un FAQ
Šajā sadaļā ir aprakstīts, kā mainīt UART iestatījumus, un izskaidroti daži lietošanas laikā bieži sastopamie jautājumi.
Mainiet UART Pin piešķiršanu
- Atsaucoties uz HT32F52352 datu lapas nodaļu “Piespraudes piešķiršana”, atrodiet tabulu Alternatīvā funkciju kartēšana, kurā ir uzskaitītas ierīces tipa AFIO funkcijas. UART atbilstošās tapas skatiet slejā “AF6 USART/UART”, kā parādīts 26. attēlā.
26. attēls. HT32F52352 alternatīvo funkciju kartēšanas tabula
- Šī darbība palīdzēs lietotājiem atrast atbilstošās UART tapas, izmantojot iepriekš minēto tabulu. HT32F52352 example izmanto USART1 kā noklusējuma kanālu. Šeit TX un RX tapas ir USR1_TX un USR1_RX, un tās atrodas attiecīgi PA4 un PA5. 27. attēlā parādīta tapu atbilstība, kā arī tapu definīcijas failā “ht32_board_config.h”. Tukšie lauki “Package” pin piešķiršanas tabulā nozīmē, ka šajā pakotnē nav atbilstošu GPIO. Lai modificētu UART tapas, atrodiet mērķa tapu atrašanās vietas un no jauna definējiet tapas, izmantojot “ht32_board_config.h” file.
27. attēls. Pin korespondence un iestatījumu modifikācija
Pievienojiet UART kanālu
Pieņemot HT32F52352 HTCFG_UARTM_CH1 kā example, šeit ir aprakstīts, kā pievienot jaunu UART kanālu.
Modificējiet ht32_board_config.h file
Atsaucoties uz HT32F52352 datu lapas nodaļu “Piespraudes piešķiršana”, atrodiet tabulu Alternatīvā funkciju kartēšana, kurā ir uzskaitītas ierīces tipa AFIO funkcijas. Tā kā USART1 ir izmantots kā HTCFG_UARTM_CH0, tikko pievienotais HTCFG_UARTM_CH1 var izvēlēties USART0. Šeit TX un RX tapas atrodas attiecīgi uz PA2 un PA3, kā parādīts 28. attēla augšējā pusē. Atbilstošās modifikācijas ir ieviestas, izmantojot koda rindiņas 120–126 failā ht32_board_config.h, kā parādīts ar sarkanu punktētu lodziņu attēlā. 28.
28. attēls. Pievienojiet UART kanālu
FAQ
Q: Sadaļas apkopošana un pārbaude 5. darbībā pārraides funkcionālā pārbaude ir normāla. Šeit ir “ABCThis is test!” ziņojums ir veiksmīgi parādīts, tomēr saņemšanas funkcijai, kāpēc piecas ievades vērtības netiek atgrieztas un parādītas?
A: Pārbaudiet, vai UART Jumper-J2 MCU UART RX un DAP_Tx kontaktiem nav izveidots īssavienojums, izmantojot džemperi. Tā kā lietojumprogrammas kodam “Module_UART” ir jāizmanto e-Link32 Lite virtuālais COM ports (VCP), īssavienojuma iestatījums jāpiemēro diviem UART Jumper-J2 kontaktiem, kā parādīts 29. attēlā.
29. attēls. UART Jumper-J2 iestatījums
J: Pēc tam izpildot “Build” (vai saīsni “F7”), tiek parādīts kļūdas ziņojums, kas norāda, ka programmaparatūras bibliotēkas versija ir vecāka par nepieciešamo? Skatīt 30. attēlu.
A: Lietojumprogrammas “Module_UART” koda ieviešanā ir jāiekļauj uart_module.c/h files, kam ir prasība noteiktai programmaparatūras bibliotēkas versijai. Kad tiek parādīts šāds kļūdas ziņojums, tas nozīmē, ka pašlaik izmantotā programmaparatūras bibliotēka ir vecāka versija. Tāpēc ir nepieciešams lejupielādēt jaunāko versiju, izmantojot saiti, kas sniegta sadaļā “Programmaparatūras bibliotēka”.
30. attēls. Programmaparatūras bibliotēkas versijas kļūdas ziņojums
Secinājums
Šajā dokumentā ir sniegts pamata ievads, lai palīdzētu lietotājiem labāk izprast “Module_UART” lietojumprogrammas kodu un UART sakaru protokolu. Pēc tam sekoja resursu lejupielāde un sagatavošana. Funkcionālā apraksta nodaļa iepazīstināja ar file direktoriju struktūra, API arhitektūra, API apraksts un API lietojums, piemamples. Lietošanas instrukcijas nodaļā tika demonstrēta lietojumprogrammas koda “Module_UART” vides sagatavošana, apkopošana un testēšana. Tajā tika sniegti arī norādījumi par koda pārstādīšanas un modifikācijas iestatīšanu, kā arī izskaidrotas dažas izplatītas problēmas, ar kurām var saskarties. Tas viss kopā ļaus lietotājiem ātri saprast, kā lietot API, un pēc tam samazināt laiku, lai sāktu darbu.
Atsauces materiāls
Lai iegūtu papildinformāciju, skatiet Holtek webvietne: www.holtek.com
Versijas un modifikāciju informācija
Datums | Autors | Atbrīvot | Informācija par izmaiņām |
2022.04.30 | 蔡期育 (Chi-Yu Tsai) | V1.00 | Pirmā versija |
Atruna
Visa informācija, preču zīmes, logotipi, grafikas, video, audio klipi, saites un citi vienumi, kas parādās šajā webvietne ("Informācija") ir paredzēta tikai atsaucei un var tikt mainīta jebkurā laikā bez iepriekšēja brīdinājuma un pēc Holtek Semiconductor Inc. un ar to saistīto uzņēmumu (turpmāk "Holtek", "uzņēmums", "mums") ieskatiem. mēs" vai "mūsu"). Lai gan Holtek cenšas nodrošināt šīs informācijas precizitāti webvietni, Holtek nesniedz nekādu tiešu vai netiešu garantiju par informācijas precizitāti. Holtek neuzņemas nekādu atbildību par neprecizitātēm vai noplūdēm.
Holtek nav atbildīgs par jebkādiem zaudējumiem (tostarp, bet ne tikai ar datorvīrusiem, sistēmas problēmām vai datu zudumiem), kas radušies, izmantojot vai saistībā ar šo webjebkura puse. Šajā apgabalā var būt saites, kas ļauj apmeklēt vietni webcitu uzņēmumu vietnes.
Šie webvietnes Holtek nekontrolē. Holtek neuzņemas nekādu atbildību un negarantē jebkādu informāciju, kas tiek rādīta šādās vietnēs. Hipersaites uz citām webvietnes uzņemas pats risks.
Atbildības ierobežojums
Holtek Limited nekādā gadījumā nav atbildīgs nevienai citai pusei par jebkādiem zaudējumiem vai bojājumiem, kas radušies tieši vai netieši saistībā ar jūsu piekļuvi šim vai tā lietošanu. webvietni, tajā esošo saturu vai jebkādas preces, materiālus vai pakalpojumus.
Vadošais likums
Atruna, kas ietverta webvietni regulē un interpretē saskaņā ar Ķīnas Republikas likumiem. Lietotāji pakļausies Ķīnas Republikas tiesu neekskluzīvai jurisdikcijai.
Atrunas atjauninājums
Holtek patur tiesības atjaunināt atruna jebkurā laikā ar vai bez iepriekšēja brīdinājuma, visas izmaiņas stājas spēkā tūlīt pēc publicēšanas webvietne.
Dokumenti / Resursi
![]() |
Piezīme par HOLTEK HT32 MCU UART lietojumprogrammu [pdfLietotāja rokasgrāmata HT32 MCU, UART lietojumprogrammas piezīme, HT32 MCU UART, lietojumprogrammas piezīme, HT32, MCU UART lietojumprogrammas piezīme, HT32 MCU UART lietojumprogrammas piezīme |