HOLTEK HT32 MCU UART Notendahandbók um forrit
Inngangur
Alhliða ósamstilltur móttakari/sendi - UART er mikið notað raðsendingarviðmót sem veitir sveigjanlega ósamstillta full-duplex gagnaflutning. „Module_UART“ forritskóðinn sem gefinn er upp í þessari umsóknarskýrslu notar TX/RX truflanir með hugbúnaðarhringjöppum til að útfæra einfaldar UART sendingar/móttökuaðgerðir í gegnum API, en tengdum aðgerðum þeirra er lýst hér að neðan. Þetta mun einfalda allt gagnaflutningsferlið og gera notendum kleift að skilja og innleiða UART samskiptaforrit fljótt.
- Senda/móttaka aðgerðir: bæti lestur, bæti ritun, biðminni lestur, biðminni ritun osfrv.
- Stöðuaðgerðir: fáðu biðminni lengd, TX stöðu osfrv.
Þetta skjal mun fyrst kynna UART samskiptareglur, sem mun hjálpa notendum að skilja betur UART samskipti frá meginreglu til notkunar. Þessu er fylgt eftir með niðurhali og undirbúningi auðlindanna sem þarf fyrir forritskóðann, þar á meðal vélbúnaðarsafnið, niðurhal forritskóða, file og möppustillingar sem og kynning á flugstöðvarhugbúnaðarverkfærinu sem notað er í umsóknarskýrslunni. Í kaflanum Functional Description verður uppbygging forritakóðaskrár, færibreytustillingar og API lýsing kynnt. API notkuninni verður lýst með því að nota „Module_UART“ forritakóðann og Flash/RAM auðlindanotkun sem þarf fyrir API verður einnig skráð. Kaflinn með notkunarleiðbeiningum mun leiða notandann í gegnum skrefin umhverfisundirbúning, samantekt og prófun til að staðfesta að forritskóðinn virki rétt. Það mun síðan veita leiðbeiningar sem útskýra hvernig á að samþætta API í verkefnum notandans og að lokum veita tilvísun fyrir breytingar og algeng vandamál sem kunna að koma upp.
Skammstafanir notaðar:
- UART: Alhliða ósamstilltur móttakari/sendi
- API: Forritunarviðmót forrita
- LSB: Minnst marktækur hluti
- MSB: Mikilvægasti hluti
- PC: Einkatölva
- SK: Byrjendasett, HT32 þróunarborð
- IDE: Samþætt þróunarumhverfi
UART samskiptareglur
UART er raðsamskiptategund af viðmóti sem útfærir samhliða raðgagnabreytingu við sendi sinn og hefur síðan raðsamband við svipaðan móttakara. Móttakarinn framkvæmir síðan rað-til-samhliða gagnabreytingu eftir gagnamóttöku. Mynd 1 sýnir skýringarmynd af raðsamskiptum sem sýnir hvernig gögnin eru flutt í bitalegri röð. Því fyrir tvíátta samskipti milli sendis og móttakara, þarf aðeins tvo víra, TX og RX, til að flytja gögn í röð á milli sín. TX er pinninn sem UART sendir raðgögnin á og er tengdur við RX pinna móttakarans. Þess vegna þurfa sendi- og móttökutækin að krosstengja TX og RX pinna sína til að framkvæma UART tvíhliða samskipti, eins og sýnt er í Mynd 2.
Mynd 1. Raðsamskiptamynd
Mynd 2. UART hringrásarmynd
Meðan á UART raðsamskiptum stendur er gagnaflutningur ósamstilltur. Þetta þýðir að það er engin klukka eða annað samstillingarmerki á milli sendis og móttakara. Hér er notað baudratni, sem er raðflutnings-/móttökuhraði gagna og er stilltur af báðum aðilum fyrir gagnaflutning. Að auki er sérstökum bitum eins og upphafs- og stöðvunarbitum bætt við upphaf og lok gagnapakkans til að mynda heilan UART gagnapakka. Mynd 3 sýnir UART gagnapakka uppbyggingu en mynd 4 sýnir UART 8 bita gagnapakka án jöfnunarbita.
Mynd 3. Uppbygging UART gagnapakka
Mynd 4. UART 8-bita gagnapakkasnið
Hver hluti UART gagnapakkans er kynntur í röð hér að neðan.
- Byrjunarbiti: Þetta gefur til kynna upphaf gagnapakka. UART TX pinninn helst venjulega á háu rökfræðistigi áður en sending hefst. Ef gagnasending hefst mun UART-sendirinn draga TX-pinna frá háu til lágu, þ.e. frá 1 til 0, og halda honum síðan þar í eina klukkulotu. UART móttakarinn mun byrja að lesa gögn þegar mikil til lág umskipti hafa greinst á RX pinnanum.
- Gögn: Þetta eru raunveruleg gögn sem eru flutt, með gagnalengd 7, 8 eða 9 bita. Gögnin eru venjulega flutt með LSB fyrst.
- Jöfnunarbiti: Fjöldi rökfræðinnar „1“ í gögnunum er notað til að ákvarða hvort einhver gögn hafi breyst við sendingu. Fyrir slétt jöfnuður ætti heildarfjöldi rökfræði „1“ í gögnunum að vera slétt tala, öfugt, heildarfjöldi rökfræði „1“ í gögnunum ætti að vera oddatala fyrir oddajafnvægi.
- Stop Bit: Þetta gefur til kynna endalok gagnapakka, þar sem UART-sendirinn mun draga TX-pinna frá lágu til háu, þ.e. frá 0 til 1, og halda honum síðan þar í 1 eða 2-bita tíma.
Eins og áður hefur komið fram, þar sem ekkert klukkumerki er í UART hringrásinni, verður að skilgreina sama raðgagnasendingar/móttökuhraða, sem er þekktur sem baudratinn, á milli sendis og móttakara til að framkvæma villulausa sendingu. Baudratinn er skilgreindur af fjölda bita sem fluttir eru á sekúndu, í bps (bita á sekúndu). Sumir staðlaðir og almennt notaðir flutningshraðar eru 4800bps, 9600bps, 19200bps, 115200bps, osfrv. Samsvarandi tími sem þarf til að flytja einn gagnabita er sýndur hér að neðan.
Tafla 1. Baud-hraði á móti 1-bita sendingartíma
Baud hlutfall | 1-bita sending Tími |
4800 bps | 208.33µs |
9600 bps | 104.16µs |
19200 bps | 52.08µs |
115200 bps | 8.68µs |
Niðurhal og undirbúningur auðlinda
Þessi kafli mun kynna forritskóðann og hugbúnaðartólið sem notað er, svo og hvernig á að stilla möppuna og file leið.
Fastbúnaðarsafn
Fyrst skaltu ganga úr skugga um að Holtek HT32 vélbúnaðarsafninu hafi verið hlaðið niður áður en forritskóðinn er notaður. Niðurhalstengillinn er sýndur hér að neðan. Hér eru tveir valkostir, HT32_M0p_Vyyyymmdd.zip fyrir HT32F5xxxx röðina og HT32_M3_Vyyyymmdd.zip fyrir HT32F1xxxx röðina. Hlaða niður og pakkaðu upp viðkomandi file.
Rennilásinn file inniheldur nokkrar möppur sem hægt er að flokka sem skjal, fastbúnaðarsafn, verkfæri og önnur atriði, staðsetningarslóð þeirra er sýnd á mynd 5. HT32 vélbúnaðarsafnið zip file með a file nafn HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip er staðsett undir Firmware_Library möppunni.
Mynd 5. HT32_M0p_Vyyyymmdd.zip Innihald
Umsóknarkóði
Sæktu forritskóðann af eftirfarandi hlekk. Forritskóðinn er pakkaður í zip file með a file heiti HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip. Sjáðu Mynd 6 fyrir file nafnasamningar.
Mynd 6. Umsóknarkóði File Nafnkynning
Sækja hlekkur: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/
File og Skráarstillingar
Þar sem forritskóðinn inniheldur ekki HT32 vélbúnaðarsafnið files, forritskóðinn og vélbúnaðarsafnið opnað files ætti að vera sett á réttan slóð áður en byrjað er að safna saman. Forritskóðinn zip file inniheldur venjulega eina eða fleiri möppur, eins og forrit og bókasafn, eins og sýnt er á mynd 7. Settu forritamöppuna undir rótarskrá HT32 vélbúnaðarsafnsins til að klára file slóðarstillingar, eins og sýnt er á mynd 8. Að öðrum kosti, pakkaðu forritskóðanum og HT32 vélbúnaðarsafninu samtímis í sömu slóðina til að ná sömu stillingarárangri.
Mynd 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip Innihald
Mynd 8. Þjöppunarleið
Terminal hugbúnaður
Forritskóðinn getur flutt skilaboð í gegnum COM tengið til að útfæra val á aðgerðum eða stöðuskjá. Þetta krefst þess að hýsilhliðin sé með flugstöðvarhugbúnaðinn uppsettan fyrirfram. Notendur geta valið viðeigandi tengihugbúnað eða notað ókeypis leyfishugbúnað eins og Tera Term. Í forritskóðanum er UART rásin stillt með orðlengd 8-bita, engin jöfnuður, 1 stöðvunarbiti og flutningshraða 115200bps.
Virkni lýsing
Þessi kafli mun veita virka lýsingu fyrir forritskóðann, þar á meðal upplýsingar um möppuuppbyggingu, API arkitektúr, stillingarlýsingu osfrv.
Uppbygging skráa
Umsóknarkóði file inniheldur forritamöppu. Næsta lag er „Module_UART“ mappan sem inniheldur tvö forrit, „UART_Module_Example" og "UART_Bridge". Viðkomandi files eru skráð og lýst hér að neðan.
Tafla 2. Uppbygging umsóknarkóðaskrár
Mappa / File Nafn | Lýsing |
\\application\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | Hópforskriftir til að búa til verkefni files |
_ProjectSource.ini | Frumstilling file til að bæta frumkóða við verkefni |
ht32_board_config.h | Uppsetning file tengist úthlutun IC útlægra I/O úthlutunar |
ht32fxxxxxx_01_it.c | Trufla þjónustuforrit file |
aðal.c | Aðal frumkóði forritsins |
\\application\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | Hópforskriftir til að búa til verkefni files |
_ProjectSource.ini | Frumstilling file til að bæta frumkóða við verkefni |
ht32_board_config.h | Uppsetning file tengist úthlutun IC útlægra I/O úthlutunar |
ht32fxxxxxx_01_it.c | Trufla þjónustuforrit file |
aðal.c | Frumkóði aðalforritsins |
uart_bridge.h uart_bridge.c | UART brúarhaus file og frumkóða file |
\\utilities\millibúnaður | |
uart_module.h*3 uart_module.c*3 | API haus file og frumkóða file |
\\tól\algengt | |
ringbuffer.h ring_buffer.c | Hugbúnaður hringja biðminni haus file og frumkóða file |
Athugið:
- Í „UART_Module_Example“ forritakóða, API les- og skrifaðgerðir eru framkvæmdar á bakhliðarhátt, sjá „API Usage Examples“ kafla fyrir frekari upplýsingar.
- Í „UART_Bridge“ forritskóðanum eru tvær UART rásir, UART CH0 og UART CH1, virkjaðar og sérsniðnar samskiptareglur í gegnum COMMAND kerfin eru útfærðar á milli UART tækjanna tveggja. Nánari upplýsingar er að finna í „API Usage Examples“ kafla.
- Forritskóðinn þarf að nota uart_module.c/h files sem hafa kröfur um útgáfu á vélbúnaðarbókasafni. Krafan getur breyst frá einum tíma til annars í samræmi við uppfærsluna. Til að staðfesta núverandi kröfu um útgáfu vélbúnaðarsafns, vísaðu til innihaldseftirlitsins með því að leita að lykilorðinu „Dependency check“ í main.c file. Ef útgáfa fastbúnaðarsafnsins uppfyllir ekki kröfurnar skaltu hlaða niður nýjustu útgáfunni af hlekknum sem fylgir í hlutanum „Firmware Library“.
API arkitektúr
Hvert API hefur mikilvæga færibreytu CH, sem er UART Channel. Þetta ákvarðar hvaða UART rás á að stjórna. Sem stendur eru allt að fjórar UART rásir studdar og því eru fjögur fast tákn skilgreind sem hér segir. Þetta eru notaðar sem færibreytan CH sem gefur API-um grunninn fyrir stjórn.
- UARTM_CH0: inntaksbreytu – stjórna eða stilla UART CH0
- UARTM_CH1: inntaksbreytu – stjórna eða stilla UART CH1
- UARTM_CH2: inntaksbreytu – stjórna eða stilla UART CH2
- UARTM_CH3: inntaksbreytu – stjórna eða stilla UART CH3
Minni pláss mun ekki fara til spillis ef aðeins ein UART rás er notuð. Þetta er vegna þess að hægt er að stilla fjölda studdra UART rása og ónotaður UART rásarkóði verður fjarlægður af forvinnsluaðilanum til að auka tiltækt minnisrými. API arkitektúrinn er sýndur í Mynd 9.
Mynd 9. API arkitektúr blokkarmynd
Hvert API er samsett úr fjórum hópum UART rásatengdra stillinga eða stýringa þannig að notendur þurfa aðeins að setja inn æskilega CH færibreytu. Til að stilla viðkomandi API er aðeins nauðsynlegt að hafa viðbótar UART grunnstillingarfæribreytutöflu með uppbyggingarforminu, USART_InitTypeDef. API mun útfæra UART grunnstillinguna í samræmi við innihald færibreytunnar í töflunni. Sjá hlutann „API Description“ fyrir UART grunnuppsetningartöfluna.
uart_module.c/.h files innihalda aðeins truflun (CHx_IRQ) og stöðutöflu (CHx Status) hverrar UART rásar á meðan allar stillingar sem krafist er fyrir UART samskipti eru veittar af ht32_board_config.h. Vélbúnaður viðeigandi færibreytur í ht32_board_config.h file eru sýndar í töflunni hér að neðan. Nánari upplýsingar eru veittar í hlutanum „Lýsing stillinga“.
Vélbúnaðarviðeigandi færibreytur í ht32_board_config.h innihalda I/O stillingar og líkamlegar UART tengistillingar, eins og hér segir.
Tafla 3. Skilgreiningartákn í ht32_board_config.h
Tákn | Lýsing |
HTCFG_UARTM_CH0 | Líkamlegt nafn UART hafnar; Fyrrverandiample: UART0, UART1… |
HTCFG_UARTM0_TX_GPIO_PORT | Skilgreinir gáttarheiti TX fyrir CH0; Fyrrverandiample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | Skilgreinir PIN-númer TX fyrir CH0; Fyrrverandiample: 0~15 |
HTCFG_UARTM0_RX_GPIO_PORT | Skilgreinir gáttarheiti RX fyrir CH0; Fyrrverandiample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | Skilgreinir PIN-númer TX fyrir CH0; Fyrrverandiample: 0~15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | Skilgreinir TX biðminni stærð fyrir CH0; Fyrrverandiampá: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | Skilgreinir RX biðminni stærð fyrir CH0; Fyrrverandiampá: 128 |
Til að breyta UART rás AFIO uppsetningu, skoðaðu viðeigandi gagnablað tækisins. Eins og er taka aðeins I/O skilgreiningarnar fyrir UART CH0 gildi þar sem aðeins UART CH0 hefur verið stillt í ht32_board_config.h. Til að bæta við UART CH1~3 þarf að fylla út I/O skilgreiningar þeirra með því að vísa til UART CH0 skilgreiningarinnar eða vísa í hlutann „Stillingarbreytingar og algengar spurningar“.
Það eru þrír helstu eiginleikar API arkitektúrs:
- Allt að fjórar UART rásir eru studdar. Inntaksfæribreytur þeirra eru UARTM_CH0, UARTM_CH1, UARTM_CH2 og UARTM_CH3.
- Hægt er að stilla fjölda UART rása og ónotaðar rásir munu ekki minnka tiltækt minnisrými.
- Allar UART stillingar og I/O skilgreiningar eru algjörlega aðskildar frá API. Þetta eykur þægindi stjórnunar við að stilla gildi og dregur úr líkum á rangum eða vantandi stillingum.
Stillingarlýsing
Þessi hluti mun kynna færibreytustillingarnar í ht32_board_config.h og uart_module.h files.
- ht32_board_config.h: Þetta file er notað fyrir pinnaskilgreiningar og viðeigandi stillingar fyrir þróunartöflu, sem innihalda UART IP rásina (UART0, UART1, USART0…) sem notuð er af Starter Kit (SK), samsvarandi TX/RX pinnastaðsetningar og TX/RX biðminni stærð. Mynd 10 sýnir stillingarinnihald HT32F52352 ræsibúnaðarins. Það fer eftir hagnýtri samþættingu þróunarinnar, notendur geta vísað í „Pin Assignment“ hlutann á gagnablaði notaða tækisins til að útfæra pinnaskilgreiningarnar. Nánari upplýsingar um breytingar á stillingum verður lýst í hlutanum „Stillingarbreytingar og algengar spurningar“.
Mynd 10. ht32_board_config.h Stillingar (HT32F52352)
- uart_module.h: Þetta er API hausinn file notaður af forritskóðanum, sem inniheldur viðeigandi sjálfgefnar stillingar, skilgreiningar aðgerða osfrv. Eins og sýnt er á mynd 11, er hægt að skrifa yfir sjálfgefna stillingar með ytri stillingum, svo sem stillingunum í ht32_board_config.h file.
Mynd 11. Sjálfgefnar stillingar í uart_module.h
API lýsing
- Lýsing á gagnategund umsóknarkóða.
- USART_InitTypeDef
Þetta er UART grunnstillingaruppbyggingin sem er samsett af BaudRate, WordLength, StopBits, Parity og Mode stillingum, eins og sýnt er hér að neðan.Breytilegt Nafn Tegund Lýsing USART_BaudRate u32 UART samskiptahraði USART_WordLength u16 Lengd UART samskiptaorðs: 7, 8 eða 9 bitar USART_StopBits u16 Lengd UART-samskiptastöðvunarbita: 1 eða 2 bitar USART_Parity u16 UART samskiptajafnvægi: jöfn, stakur, merki, bil eða engin jöfnuður USART_Mode u16 UART samskiptahamur; API styður aðeins venjulega stillingu
- USART_InitTypeDef
- Áður en þú notar API aðgerðir skaltu ljúka UART grunnstillingu í aðalforritinu. Grunnstilling UART fyrir þennan forritskóða er sýnd á mynd 12. Hér er baudratinn 115200bps, orðlengd er 8-bita, stöðvunarbitalengd er 1-bita og það er engin jöfnuður.
Mynd 12. UART Basic Configuration
- Mynd 13 sýnir API aðgerðir sem lýst er yfir í uart_module.h file. Eftirfarandi töflur útskýra aðgerðina, inntaksfæribreytur og notkun API aðgerðanna.
Mynd 13. API aðgerðayfirlýsingar í uart_module.h
Nafn | ógilt UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
Virka | UART eining frumstilling | |
Inntak | CH | UART rás |
pUART_Init | UART grunnstillingaruppbyggingarbendill | |
uRxTimeOutValue | UART RX FIFO tímamörk. Þegar RX FIFO fær ný gögn mun teljarinn endurstilla sig og endurræsa. Þegar teljarinn hefur náð fyrirfram ákveðnu tímamarki og samsvarandi tímarof hefur verið virkjað, mun tímarof myndast. | |
Notkun | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);// Keyra UART grunnstillingu//Sjá mynd 12 fyrir USART_InitStructure stillingar |
Nafn | u32 UARTM_WriteByte(u32 CH, u8 uData) | |
Virka | UART mát skrifa bæti aðgerð (TX) | |
Inntak | CH | UART rás |
uData | Gögnin sem á að skrifa | |
Framleiðsla | ÁRANGUR | Vel heppnað |
VILLA | Mistókst | |
Notkun | UARTM_WriteByte(UARTM_CH0, 'A'); //UART skrifar 1 bæti – 'A' |
Nafn | u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength) | |
Virka | UART mát skrifa aðgerð (TX) | |
Inntak | CH | UART rás |
pBuffer | Buffer bendill | |
uLengd | Lengd gagna sem á að skrifa | |
Framleiðsla | ÁRANGUR | Vel heppnað |
VILLA | Mistókst | |
Notkun | u8 Test[] = “Þetta er próf!\r\n”; UARTM_Write(UARTM_CH0, Próf, stærð(Test) -1); //UART skrifar pBuffer gögn |
Nafn | u32 UARTM_ReadByte(u32 CH, u8 *pData) | |
Virka | UART eining lesbætaaðgerð (RX) | |
Inntak | CH | UART rás |
pData | Heimilisfangið til að setja lesgögnin | |
Framleiðsla | ÁRANGUR | Vel heppnað |
VILLA | Mistókst (engin gögn) | |
Notkun | u8 TempData; ef (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//Ef UARTM_ReadByte() skilar SUCCESS þá skrifar UART þetta gagnabæti |
Nafn | u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength) | |
Virka | UART mát lesaðgerð (RX) | |
Inntak | CH | UART rás |
pBuffer | Buffer bendill | |
uLengd | Lengd gagna sem á að lesa | |
Framleiðsla | Lesa telja | Lengd gagna hefur verið lesin |
Notkun | u8 Próf2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() les 5 bæti af gögnum og geymir gögn í Test2 og úthlutar lesbætafjölda til Len// Skrifaðu gögnin sem eru fengin úr Test2 |
Nafn | u32 UARTM_GetReadBufferLength(u32 CH) | |
Virka | Fáðu lesið biðminni lengd (RX) | |
Inntak | CH | UART rás |
Framleiðsla | uLengd | Lesið biðminni lengd |
Notkun | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART eining frumstilling while (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//Bíddu þar til UARTM_ReadBuffer hefur fengið 5 bæti af gögnum |
Nafn | u32 UARTM_GetWriteBufferLength(u32 CH) | |
Virka | Fáðu skrif biðminni lengd (TX) | |
Inntak | CH | UART rás |
Framleiðsla | uLengd | Skrifaðu biðminni lengd |
Nafn | u8 UARTM_IsTxFinished(u32 CH) | |
Virka | Fáðu TX stöðuna | |
Inntak | CH | UART rás |
Framleiðsla | SATT | TX staða: lokið |
RANGT | TX staða: ekki lokið | |
Notkun | UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 krafist meðan (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif //Þetta API er hægt að nota til að athuga TX stöðuna, eins og sýnt er hér að ofan; bíddu þar til UARTM_WriteByte() API hefur lokið, þ.e. TX staða er TRUE, og haltu síðan áfram með síðari aðgerðum.//Takmörkun er bætt við vegna þess að þessari aðgerð hefur ekki verið bætt við fyrr en SVN útgáfunúmerið í uart_module.c er 525. |
Nafn | ógilt UARTM_DiscardReadBuffer(u32 CH) | |
Virka | Fleygðu gögnunum í lestrarbuffi | |
Inntak | CH | UART rás |
API notkun Examples
Þessi hluti mun sýna API skrifa og lesa tdamples af „Module_UART“ forritskóðanum með því að nota upphafsferlið og „UART_Module_Ex“ample” umsóknarkóðaferli. Áður en forritaskilin eru notuð þurfa notendur að hafa API hausinn með file inn í frumkóða aðalforritsins file (#include „middleware/uart_module.h“).
Eins og sýnt er á mynd 14, þegar farið er í frumstillingarferlið, skal fyrst skilgreina UART grunnstillingaruppbygginguna. Stilltu síðan UART grunnstillingaruppbyggingarmeðlimi þar á meðal BaudRate, WordLength, StopBits, Parity og Mode. Að lokum skaltu hringja í API frumstillingaraðgerðina, en lok hennar gefur til kynna lok frumstillingarferlisins. Eftir þetta geta notendur haldið áfram að skrifa og lesa á grundvelli forstilltrar UART grunnstillingar.
Mynd 14. Frumstillingarflæðirit
„UART_Module_Example” umsóknarkóði sýnir API lestrar- og skrifaðgerðir á bakhlið. Flæðiritið fyrir þetta er sýnt á mynd 15. API-aðgerðirnar sem notaðar eru eru UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() og UARTM_GetReadBufferLength(). Lýsing þeirra er að finna í hlutanum „API Description“.
Mynd 15. Flæðirit Skrifa og lesa Examples
Það er annar „UART_Bridge“ forritakóði undir „Module_UART“ möppunni sem tengist file lýsing er kynnt í hlutanum „Smásafnauppbygging“. „UART_Bridge“ forritskóðinn virkjar tvær UART rásir, UART CH0 og UART CH1, og sérsniður síðan samskiptareglur milli UART tækjanna tveggja í gegnum COMMAND kerfi, gCMD1 og gCMD2. Þetta er skilgreint í uart_bridge.c, eins og sýnt er hér að neðan. UARTBridge_CMD1TypeDef gCMD1:
Breytilegt Nafn | Tegund | Lýsing |
uHeader | u8 | Haus |
uCmd | u8 | Skipun |
uData[3] | u8 | Gögn |
UARTBridge_CMD2TypeDef gCMD2:
Breytilegt Nafn | Tegund | Lýsing |
uHeader | u8 | Haus |
uCmdA | u8 | Skipun A |
uCmdB | u8 | Skipun B |
uData[3] | u8 | Gögn |
Í „UART_Bridge“ forritskóðanum skaltu nota gCMD1 til að taka á móti gögnum sem skipanapakka og greina þau síðan. Settu síðan gCMD2 sem svarpakka í samræmi við sérsniðna samskiptareglur og sendu hann. Eftirfarandi er fyrrverandiample af skipanapakka gCMD1) og svarpakka (gCMD2). Skipunarpakki (UARTBridge_CMD1TypeDef gCMD1):
Bæti 0 | Bæti 1 | Bæti 2 ~ Bæti 4 |
uHeader | uCmd | uData [3] |
"A" | "1" | "x, y, z" |
Svarpakki (UARTBridge_CMD2TypeDef gCMD2):
Bæti 0 | Bæti 1 | Bæti 2 | Bæti 3 ~ Bæti 5 |
uHeader | uCmdA | uCmdB | uData [3] |
"B" | "a" | "1" | "x, y, z" |
Auðlindastarf
Að taka HT32F52352 sem fyrrverandiample, auðlindirnar sem UART einingin tekur upp eru sýndar hér að neðan.
HT32F52352 | |
ROM stærð | 946 bæti |
RAM Stærð | 40*1 + 256*2 Bæti |
Athugið:
- Alþjóðlegar breytur, þar á meðal fánar og staða fyrir eina rás, taka 40 bæti af vinnsluminni.
- Þetta er fyrir ástand þar sem ein rás er notuð og TX/RX biðminni er 128/128 bæti. Hægt er að stilla biðminni í samræmi við kröfur umsóknarinnar.
Tafla 4. Umsóknarkóði Auðlindastarf
- Söfnunarumhverfi: MDK-Arm V5.36, ARMCC V5.06 uppfærsla 7 (bygging 960)
- Fínstillingarvalkostur: Stig 2 (-O2)
Leiðbeiningar um notkun
Þessi kafli mun kynna umhverfisundirbúninginn fyrir „Module_UART“ forritskóðann, sem og samantekt og prófunarskref.
Umhverfisundirbúningur
Vélbúnaðurinn og hugbúnaðurinn sem krafist er fyrir „Module_UART“ forritskóðann eru taldir upp hér að neðan.
Tafla 5. Umhverfisundirbúningur vélbúnaðar/hugbúnaðar
Vélbúnaður/hugbúnaður | Telja | Athugið |
Byrjendasett | 1 | Þessi umsóknarskýring notar HT32F52352 Starter Kit sem dæmiample |
USB snúru | 1 | Micro USB, tengt við tölvu |
Umsóknarkóði | — | Niðurhalsleiðin, file og möppustillingar eru kynntar í hlutanum „Niðurhal og undirbúningur auðlinda“. Slóð: „\\application\Module_UART\UART_Module_Example” |
Tera Term | — | Sjá kaflann „Terminal Software“ |
Keil IDE | — | Keil uVision V5.xx |
Notaðu fyrst HT32F52352 Starter Kit ásamt Virtual COM Port (VCP) virkni e-Link32 Lite fyrir kynningu á UART forritinu. Þetta krefst þess að eftirfarandi umhverfisundirbúningur sé innleiddur:
- Það eru tvö USB tengi á borðinu. Notaðu USB snúruna til að tengja tölvuna og eLink32 Lite tengið á borðinu eins og sýnt er á mynd 16-(a).
- Þar sem forritskóðinn þarf að nota e-Link32 Lite Virtual COM Port (VCP) aðgerðina, tryggðu að PAx*2 og DAP_Tx á UART Jumper-J2*1 hafi verið stytt með því að nota jumper. J2 staðsetningin er sýnd með mynd 16-(b).
Athugið
- J2 á Starter Kit hefur tvo valkosti, PAx og DAP_Tx stutt eða PAx og RS232_Tx stutt. Sjá notendahandbók Starter Kit fyrir nákvæmar stillingaraðgerðir.
- MCU UART RX pinna staðsetningin á mismunandi ræsisettum er mismunandi. Þetta frvample notar PAx til að gefa til kynna RX pinna.
Mynd 16. HT32 Starter Kit Block Skýringarmynd
Notaðu nú notendamarkborðið ásamt Virtual COM Port (VCP) aðgerðinni á e-Link32 Pro fyrir kynningu á UART forritinu. Þetta krefst þess að eftirfarandi umhverfisundirbúningur sé innleiddur:
- Önnur hlið e-Link32 Pro er tengd við tölvu með Mini USB snúru og hin hliðin er tengd við notendamarkspjaldið í gegnum 10 bita gráa snúru sína. Tengingin milli SWD tengi kapalsins og miðborðsins er útfærð með Dupont línum, eins og sýnt er á mynd 17-(a).
- Raðsamskiptapinnar á e-Link32 Pro eru Pin#7 VCOM_RXD og Pin#8-VCOM_TXD. Þetta ætti að vera tengt við TX og RX pinna á notendamiðaborðinu, eins og sýnt er á mynd 17-(b).
Mynd 17. e-Link32 Pro + User Target Board Block skýringarmynd
Samantekt og próf
Þessi hluti mun taka „application\Module_UART\UART_Module_Example“ sem fyrrverandiample til að kynna samantekt og prófunarferla. Áður en þetta kemur skaltu ganga úr skugga um að allur undirbúningur sem lýst er í fyrri hlutanum hafi verið innleiddur og að Tera Term terminal hugbúnaðinum hafi verið hlaðið niður.
Ítarlegri aðgerðaskref eru tekin saman hér að neðan.
Skref 1. Kveikjupróf
Settu upp vélbúnaðarumhverfið eins og lýst er í fyrri hlutanum. Eftir að kveikt er á henni mun D9 máttur LED neðst til vinstri á ræsibúnaðinum kvikna. D1 USB LED á e-Link32 Lite efst til hægri mun loga eftir að USB upptalningu er lokið. Ef D1 er ekki upplýst eftir langan tíma skaltu staðfesta hvort USB snúran geti átt samskipti. Ef ekki skaltu fjarlægja það og setja það aftur inn.
Skref 2. Búðu til verkefni
Opnaðu forritið\Module_UART\UART_Module_Example möppuna, smelltu á _CreateProject.bat file til að búa til verkefni, eins og sýnt er á mynd 18. Þar sem þessi forritaskýring notar HT32F52352 Starter Kit, opnaðu Keil IDE verkefnið „Project_52352.uvprojx“ sem er staðsett undir MDK_ARMv5 möppunni.
Mynd 18. Keyrðu _CreateProject.bat til að búa til verkefni
Skref 3. Settu saman og forritaðu
Eftir að verkefnið hefur verið opnað, smelltu fyrst á „Byggðu“ (eða notaðu flýtileið „F7“), smelltu síðan á „Hlaða niður“ (eða notaðu flýtileið „F8“). Eftir þetta munu smíða- og niðurhalsniðurstöður birtast í Build Output glugganum. Sjá mynd 19.
Mynd 19. Byggja og hlaða niður niðurstöðum
Skref 4. Opnaðu Tera Term hugbúnaðinn og stilltu raðtengi
Opnaðu Tera Term hugbúnaðinn og COM tengið. Gefðu gaum að því hvort COM gáttarnúmerið sem myndast af ræsibúnaðinum er rétt eða ekki. Smelltu síðan á „Uppsetning >> Serial Port“ til að fara inn í stillingarviðmótið. UART viðmótsstillingu „Module_UART“ forritskóðans er lýst í hlutanum „Terminal Software“. Niðurstaða uppsetningar er sýnd á mynd 20.
Mynd 20. Niðurstaða Tera Term Serial Port Uppsetning
Skref 5. Endurstilltu kerfið og prófaðu
Ýttu á SK endurstilla takkann – B1 Reset. Eftir þetta, "ABCThis is test!" skilaboð verða
send í gegnum API og mun birtast í Tera Term glugganum, eins og sýnt er á mynd 21. Varðandi móttökuaðgerðina, þegar gögn eru færð inn í Tera Term gluggann, verður viðeigandi API notað til að ákvarða móttöku biðminni lengd. Þegar gögnin sem berast af tölvunni ná 5 bæti, verða móttekin 5 bæti af gögnum send út í röð. Eins og sýnt er á mynd 22 eru gögnin sem færð eru inn í röð „1, 2, 3, 4, 5“ sem er móttekin og ákvörðuð í gegnum API. Eftir þetta verða gögnin „1, 2, 3, 4, 5“ prentuð eftir fimm inntak.
Mynd 21. „Module_UART“ Virkniprófun forritskóða – Senda
Mynd 22. „Module_UART“ Virkniprófun forritskóða – móttaka
Ígræðsluleiðbeiningar
Þessi hluti mun kynna hvernig á að samþætta API í verkefnum notandans.
Skref 1. Bættu við uart_module.c file inn í verkefnið. Hægrismelltu á User folder. Veldu „Bæta við núverandi Files til að hópa 'Notanda'…“, veldu síðan uart_module.c file og smelltu á „Bæta við“ eins og sýnt er á mynd 23. Sjá kaflann „Smásafn“ fyrir file leiðarlýsingu.
Mynd 23. Bæta við uart_module.c File til Project
Skref 2. Bættu við ring_buffer.c file inn í verkefnið. Hægrismelltu á User folder. Veldu „Bæta við núverandi Files til að hópa 'Notanda'…“, veldu síðan ring_buffer.c file og smelltu á „Bæta við“, eins og sýnt er á mynd 24.\ Sjá kaflann „Mafnauppbygging“ fyrir file leiðarlýsingu.
Mynd 24. Bæta við ring_buffer.c File til Project
Skref 3. Láttu API hausinn fylgja með file inn í byrjun main.c, eins og sýnt er á mynd 25. (Ext: #include “middleware/uart_module.h”)
Mynd 25. Hafa API haus File að aðal.c
Skref 4. Innleiða stillingarnar sem þarf fyrir UART samskiptin með því að nota ht32_board_config.h file. Þetta er kynnt í smáatriðum í hlutunum „Lýsing stillinga“ og „Breytingar á stillingum og algengar spurningar“.
Stillingarbreytingar og algengar spurningar
Þessi hluti mun kynna hvernig á að breyta UART stillingum og útskýra nokkrar algengar spurningar sem upp koma við notkun.
Breyta UART pinnaúthlutun
- Með því að vísa til HT32F52352 gagnablaðsins „Pin Assignment“ kaflann, flettu upp töfluna fyrir varaaðgerðakortlagningu sem sýnir AFIO aðgerðir tækjagerðarinnar. Fyrir UART viðeigandi pinna, vísa til „AF6 USART/UART“ dálksins, eins og sýnt er á mynd 26.
Mynd 26. HT32F52352 Varaaðgerðakortatöflu
- Þetta skref mun leiðbeina notendum um að finna samsvarandi UART pinna með því að nota ofangreinda töflu. HT32F52352 example notar USART1 sem sjálfgefna rás. Hér eru TX og RX pinnar USR1_TX og USR1_RX og eru staðsettir á PA4 og PA5 í sömu röð. Mynd 27 sýnir pinnasamsvörunina sem og pinnaskilgreiningarnar í "ht32_board_config.h". Tómu reitirnir „Package“ í pinnaúthlutunartöflunni þýðir að það eru engir viðeigandi GPIOs í þessum pakka. Til að breyta UART pinnum, finndu markpinnastaðsetningarnar og endurskilgreindu pinnana með því að nota „ht32_board_config.h“ file.
Mynd 27. Pinnasamsvörun og stillingarbreyting
Bættu við UART rás
Að taka HT32F52352 HTCFG_UARTM_CH1 sem fyrrverandiample, hér er lýst hvernig á að bæta við nýrri UART rás.
Breyttu ht32_board_config.h file
Með því að vísa til HT32F52352 gagnablaðsins „Pin Assignment“ kaflann, flettu upp töfluna fyrir varaaðgerðakortlagningu sem sýnir AFIO aðgerðir tækjagerðarinnar. Þar sem USART1 hefur verið notað sem HTCFG_UARTM_CH0, getur nýbætt HTCFG_UARTM_CH1 valið USART0. Hér eru TX og RX pinnar staðsettir á PA2 og PA3 í sömu röð, eins og sýnt er á efri hluta mynd 28. Samsvarandi breytingar eru útfærðar með því að nota kóðalínur 120~126 í ht32_board_config.h, eins og sýnt er með rauða punktareitnum á myndinni. 28.
Mynd 28. Bæta við UART rás
Algengar spurningar
Q: Í skrefi 5 í Safn- og prófunarhlutanum er virkniprófun sendisins eðlileg. Hér, "ABCThis er próf!" skilaboðin hafa verið birt með góðum árangri, en fyrir móttökuaðgerðina, hvers vegna er inntaksgildunum fimm ekki skilað og birt?
A: Athugaðu hvort MCU UART RX og DAP_Tx pinnar á UART Jumper-J2 hafi verið stuttar með því að nota jumper. Þar sem „Module_UART“ forritskóðinn þarf að nota Virtual COM Port (VCP) e-Link32 Lite, ætti skammhlaupsstillingin að vera notuð á vinstri tvo pinna á UART Jumper-J2, eins og sýnt er á mynd 29.
Mynd 29. UART Jumper-J2 stilling
Sp.: Eftir þegar þú keyrir „Build“(eða flýtileið „F7“), birtast villuboð sem gefa til kynna að útgáfan af vélbúnaðarsafninu sé eldri en sú sem krafist er? Sjá mynd 30.
A: Innleiðing á „Module_UART“ forritskóðanum þarf að innihalda uart_module.c/h files sem hefur kröfu um ákveðna útgáfu fastbúnaðarsafns. Þegar slík villuboð birtast þýðir það að fastbúnaðarsafnið sem nú er notað er eldri útgáfa. Þess vegna er nauðsynlegt að hlaða niður nýjustu útgáfunni í gegnum tengilinn sem gefinn er upp í „Firmware Library“ hlutanum.
Mynd 30. Villuboð um útgáfu fastbúnaðarsafns
Niðurstaða
Þetta skjal hefur veitt grunnkynningu til að aðstoða notendur við betri skilning á „Module_UART“ forritskóðanum og UART samskiptareglum. Í kjölfarið fylgdi niðurhal og undirbúningur. Í kaflanum Virknilýsing var kynnt file möppuuppbygging, API arkitektúr, API lýsing og API notkun tdamples. Í kaflanum um notkunarleiðbeiningar var sýnt fram á umhverfisundirbúning, samantekt og prófun á „Module_UART“ forritskóðanum. Það gaf einnig leiðbeiningar um kóðaígræðslu og breytingarstillingar auk þess að útskýra nokkur algeng vandamál sem gætu komið upp. Allt þetta samanlagt gerir notendum kleift að skilja fljótt hvernig á að nota API og í kjölfarið draga úr tímanum til að byrja.
Viðmiðunarefni
Fyrir frekari upplýsingar, sjá Holtek websíða: www.holtek.com
Útgáfur og breytingarupplýsingar
Dagsetning | Höfundur | Gefa út | Upplýsingar um breytingar |
2022.04.30 | 蔡期育(Chi-Yu Tsai) | V1.00 | Fyrsta útgáfa |
Fyrirvari
Allar upplýsingar, vörumerki, lógó, grafík, myndbönd, hljóðinnskot, tengla og önnur atriði sem birtast á þessu websíða ('Upplýsingar') eru eingöngu til viðmiðunar og geta breyst hvenær sem er án fyrirvara og að eigin vali Holtek Semiconductor Inc. og tengdra fyrirtækja þess (hér á eftir 'Holtek', 'fyrirtækið', 'okkur', ' við' eða 'okkar'). Þó Holtek reyni að tryggja nákvæmni upplýsinganna um þetta websíðu er engin bein eða óbein ábyrgð veitt af Holtek á nákvæmni upplýsinganna. Holtek ber enga ábyrgð á röngum eða leka.
Holtek ber ekki ábyrgð á neinu tjóni (þar á meðal en ekki takmarkað við tölvuvírus, kerfisvandamál eða gagnatap) af neinu tagi sem verður við notkun eða í tengslum við notkun þessa. websíða af hvaða aðila sem er. Það kunna að vera tenglar á þessu svæði sem gera þér kleift að heimsækja websíður annarra fyrirtækja.
Þessar websíður eru ekki undir stjórn Holtek. Holtek ber enga ábyrgð og enga ábyrgð á neinum upplýsingum sem birtar eru á slíkum síðum. Tenglar á annað websíður eru á eigin ábyrgð.
Takmörkun ábyrgðar
Holtek Limited skal í engu tilviki vera ábyrgt gagnvart öðrum aðila vegna taps eða tjóns af neinu tagi eða hvernig sem það verður, beint eða óbeint í tengslum við aðgang þinn að eða notkun þessa. websíðuna, innihaldið á henni eða hvers kyns vörur, efni eða þjónustu.
Stjórnarlög
Fyrirvari sem er að finna í websíða skal stjórnast af og túlka í samræmi við lög lýðveldisins Kína. Notendur munu lúta lögsögu dómstóla Lýðveldisins Kína sem ekki er einkarétt.
Uppfærsla á fyrirvari
Holtek áskilur sér rétt til að uppfæra fyrirvarana hvenær sem er með eða án fyrirvara, allar breytingar taka gildi strax við birtingu á websíða.
Skjöl / auðlindir
![]() |
HOLTEK HT32 MCU UART Umsókn Athugið [pdfNotendahandbók HT32 MCU, UART umsóknarathugasemd, HT32 MCU UART, umsóknarathugasemd, HT32, MCU UART umsóknarathugasemd, HT32 MCU UART umsóknarathugasemd |