HOLTEK HT32 MCU UART Aplikazio Oharra Erabiltzailearen eskuliburua
HOLTEK HT32 MCU UART aplikazioaren oharra

Sarrera

Hargailu/Igorle asinkrono unibertsala - UART oso erabilia den serie-transmisioko interfazea da, datu-transmisio integral asinkrono malgua eskaintzen duena. Aplikazio-ohar honetan eskaintzen den "Module_UART" aplikazio-kodeak TX/RX etenaldiak erabiltzen ditu software-eraztun-bufferekin UART transmisio/jasotze funtzio soilak APIen bidez ezartzeko, hauekin erlazionatutako funtzioak behean azaltzen diren. Horrek datu-transmisio-prozesu osoa erraztuko du eta erabiltzaileek UART komunikazio-aplikazioak azkar ulertu eta ezar ditzakete.

  • Igortzeko/jasotzeko funtzioak: byte irakurketa, byte idazketa, buffer irakurketa, buffer idazketa, etab.
  • Egoera funtzioak: buffer-aren luzera, TX egoera, etab.

Dokumentu honek lehenik UART komunikazio-protokoloa aurkeztuko du, erabiltzaileei UART komunikazioa printzipiotik aplikaziora hobeto ulertzen lagunduko diena. Ondoren, aplikazioaren kodearako beharrezkoak diren baliabideak deskargatu eta prestatzen dira, besteak beste, firmware liburutegia, aplikazio kodea deskargatzea, file eta direktorio-konfigurazioa baita aplikazio-oharrean erabiltzen den terminaleko software-tresnaren sarrera. Deskribapen funtzionalaren kapituluan, aplikazioaren kodearen direktorioaren egitura, parametroen ezarpenak eta APIaren deskribapena aurkeztuko dira. APIaren erabilera "Module_UART" aplikazioaren kodea erabiliz deskribatuko da eta APIetarako beharrezkoa den Flash/RAM baliabideen kontsumoa ere zerrendatuko da. Erabilera-jarraibideak kapituluak ingurumena prestatzeko, biltzeko eta probatzeko pausoetan gidatuko du erabiltzailea, aplikazioaren kodea behar bezala funtzionatuko duela baieztatzeko. Ondoren, APIak erabiltzailearen proiektuetan nola txertatu azaltzeko argibideak emango ditu eta, azkenik, aurki daitezkeen aldaketen eta ohiko arazoen erreferentzia bat emango du.

Erabilitako laburdurak: 

  • UART: Hargailu/Igorle Asinkrono Unibertsala
  • APIa: Aplikazioak Programatzeko Interfazea
  • LSB: Bit esanguratsu gutxien
  • MSB: Bit esanguratsuenak
  • PCa: Ordenagailu pertsonala
  • SK: Hasierako kit, HT32 garapen-plaka
  • IDEa: Garapen Integratuko Ingurumena

UART Komunikazio Protokoloa

UART serieko komunikazio-interfaze mota bat da, bere transmisorean paralelotik serieko datuen bihurketa ezartzen duena eta, ondoren, antzeko hargailu batekin seriean komunikatzen da. Ondoren, hargailuak serieko datu-bihurketa bat egiten du datuak jaso ondoren. 1. irudiak serieko komunikazioaren diagrama eskematiko bat erakusten du, datuak nola transferitzen diren erakusten duena, bitan ordenan. Beraz, transmisorearen eta hargailuaren arteko komunikazio bi norabiderako, bi hari baino ez dira behar, TX eta RX, datuak elkarren artean seriean transferitzeko. TX UARTak serieko datuak igortzen dituen pina da eta hargailuaren RX pinera konektatuta dago. Hori dela eta, igorle eta hartzailearen gailuek TX eta RX pinak gurutzatu behar dituzte UART bi norabideko komunikazioa egiteko, atalean erakusten den moduan. Irudia 2.

1. Irudia. Serieko Komunikazio Diagrama
Serial Komunikazio Diagrama

2. irudia. UART zirkuituaren diagrama
UART zirkuitu diagrama

UART serieko komunikazioan, datuen transmisioa asinkronoa da. Horrek esan nahi du ez dagoela erlojurik edo beste sinkronizazio seinalerik igorlearen eta hartzailearen artean. Hemen baud-tasa bat erabiltzen da, hau da, serieko datuak transmititzeko/jasotzeko abiadura eta bi aldeek datu-transferentziaren aurretik ezartzen dutena. Horrez gain, bit bereziak, hala nola, hasierako eta gelditzeko bitak gehitzen dira datu-paketearen hasieran eta amaieran, UART datu-pakete oso bat osatzeko. 3. irudiak UART datu-paketeen egitura erakusten du, eta 4. irudiak parekotasun-bit gabeko UART 8 biteko datu-pakete bat erakusten du.
3. irudia. UART datu-paketeen egitura
UART datu-paketeen egitura

4. irudia. UART 8 biteko datu-pakete formatua
Datu pakete formatua
UART datu-paketearen zati bakoitza behean ordenan sartzen da.

  • Hasi bit: Horrek datu-pakete baten hasiera adierazten du. UART TX pina normalean maila logiko altuan geratzen da transmisioa hasi aurretik. Datu-transmisioa hasten bada, UART igorleak TX pina handitik baxura tiratuko du, hau da, 1etik 0ra, eta gero bertan mantenduko du erloju-ziklo batean. UART hargailua datuak irakurtzen hasiko da RX pinean trantsizio handitik baxua detektatu denean.
  • Datuak: Hau da transferitutako benetako datuak, 7, 8 edo 9 biteko datuen luzera duena. Datuak normalean LSBrekin transferitzen dira lehenik.
  • Parekidetasun bit: Datuen "1" logiko kopurua transmititzean daturen bat aldatu den zehazteko erabiltzen da. Parekidetasun bikoitiarentzat, datuetan "1" logikoaren kopuru osoa zenbaki bikoitia izan behar da, alderantziz, datuetan "1" logikoaren kopuru osoa parekidetasun bakoitiarentzat.
  • Gelditu bit: Honek datu-pakete baten amaiera adierazten du, non UART igorleak TX pina txikitik gorara tiratuko duen, hau da, 0tik 1era, eta gero hor edukiko du 1 edo 2 biteko denbora-tarte batean.

Lehen esan bezala, UART zirkuituan erloju-seinalerik ez dagoenez, serieko datu igortzeko/jasotzeko abiadura bera, hau da, baud-tasa bezala ezagutzen dena, igorlearen eta hartzailearen artean zehaztu behar da errorerik gabeko transmisioa ezartzeko. Baud-abiadura segundoko transferitutako bit kopuruaren arabera definitzen da, bps-tan (bit segundoko). Zenbait baud-tasa estandar eta erabili ohi dira 4800bps, 9600bps, 19200bps, 115200bps, etab. Datu-bit bakarra transferitzeko behar den denbora behean erakusten da.
1. taula. Baud-abiadura vs 1-bit transmisio-denbora 

Baud-tasa 1-Biteko transmisioa Denbora
4800bps 208.33µs
9600bps 104.16µs
19200bps 52.08µs
115200bps 8.68µs

Baliabideak deskargatu eta prestatzea

Kapitulu honetan aplikazioaren kodea eta erabilitako software-tresna aurkeztuko dira, baita direktorioa nola konfiguratu eta file bidea.

Firmware Liburutegia 

Lehenik eta behin, ziurtatu aplikazioaren kodea erabili aurretik Holtek HT32 firmware liburutegia deskargatu dela. Deskargatzeko esteka behean erakusten da. Hemen bi aukera daude, HT32_M0p_Vyyyymmdd.zip HT32F5xxxx serierako eta HT32_M3_Vyyyymmdd.zip HT32F1xxxx serierako. Deskargatu eta deskonprimitu nahi duzuna file.

Kremailera file Dokumentua, Firmware Liburutegia, Tresnak eta beste elementu gisa sailka daitezkeen hainbat karpeta ditu, eta horien kokapen-bidea 5. Irudian ageri da. HT32 firmware liburutegiaren zip. file batekin file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip izena Firmware_Library karpetan dago.

5. Irudia. HT32_M0p_Vyyyymmdd.zip Edukia
Edukiak

Aplikazioaren kodea
Deskargatu aplikazioaren kodea hurrengo estekatik. Aplikazio-kodea zip batean bilduta dago file batekin file HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip-ren izena. Ikusi 6. irudia rentzat file izen-konbentzioak.

6. Irudia Aplikazioaren kodea File Izena Sarrera 

Deskargatzeko esteka: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/ Aplikazioaren kodea

File eta Direktorioaren Konfigurazioa
Aplikazio-kodeak ez baitu HT32 firmware liburutegia files, aplikazioaren kodea eta firmware liburutegia deskonprimituta files bide egokian jarri behar da konpilazioa hasi aurretik. Aplikazioaren kodea zip file normalean karpeta bat edo gehiago ditu, hala nola aplikazioa eta liburutegia, 7. Irudian ikusten den moduan. Jarri aplikazioaren karpeta HT32 firmware liburutegiaren erro-direktorioaren azpian. file bide-konfigurazioa, 8. Irudian erakusten den moduan. Bestela, deskonprimitu aplikazioaren kodea eta HT32 firmware-liburutegia aldi berean bide berean, konfigurazio-emaitza berdinak lortzeko.

7. irudia. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip Edukia
Edukiak

8. Irudia Deskonpresio Bidea
Deskonpresio Bidea

Terminalaren softwarea
Aplikazio-kodeak COM atakaren bidez mezuak transferi ditzake funtzioen hautaketa edo egoera bistaratzeko. Honek ostalariaren alde terminalaren softwarea aldez aurretik instalatuta edukitzea eskatzen du. Erabiltzaileek konexio-software egokia aukeratu dezakete edo lizentziadun doako softwarea erabil dezakete, hala nola Tera Term. Aplikazio-kodean, UART kanala 8 biteko hitzaren luzerarekin konfiguratuta dago, parekotasunik gabe, 1 gelditzeko bitarekin eta 115200 bps-ko baud-tasa batekin.

Deskribapen funtzionala

Kapitulu honek aplikazio-kodearen deskribapen funtzional bat emango du, direktorio-egiturari, API-arkitekturari, ezarpenen deskribapenari eta abarri buruzko informazioa barne.

Direktorioaren Egitura
Aplikazioaren kodea file aplikazioen karpeta bat dauka. Hurrengo geruza "Module_UART" karpeta da, bi aplikazio programa dituena, "UART_Module_Ex".ample” eta “UART_Bridge”. Dagokiona fileazpian zerrendatu eta deskribatzen dira.
2. taula. Aplikazio-kodeen direktorioaren egitura

Karpeta / File Izena Deskribapena
\\aplikazioa\Module_UART\UART_Module_Example*1
_SortuProiektua.bat Batch script-ak proiektua sortzeko files
_ProjectSource.ini Hasieratzea file proiektuei iturburu kodea gehitzeko
ht32_board_config.h Konfigurazioa file IC periferikoen I/O esleipenarekin lotuta
ht32fxxxxx_01_it.c Eten zerbitzu programa file
nagusia.c Programaren iturburu-kode nagusia
\\aplikazioa\Module_UART\UART_Bridge*2
_SortuProiektua.bat Batch script-ak proiektua sortzeko files
_ProjectSource.ini Hasieratzea file proiektuei iturburu kodea gehitzeko
ht32_board_config.h Konfigurazioa file IC periferikoen I/O esleipenarekin lotuta
ht32fxxxxx_01_it.c Eten zerbitzu programa file
nagusia.c Programa nagusiaren iturburu kodea
uart_bridge.h uart_bridge.c UART zubiaren goiburua file eta iturburu kodea file
\\erabilgarritasunak\erdiko softwarea
uart_module.h*3 uart_module.c*3 API goiburua file eta iturburu kodea file
\\erabilgarritasunak\komun
ringbuffer.h ring_buffer.c Softwarearen eraztun-buffer goiburua file eta iturburu kodea file

Oharra: 

  1. "UART_Module_Example" aplikazioaren kodea, API irakurtzeko eta idazteko eragiketak loopback moduan egiten dira, ikusi "API Erabilera Ex.amples” atalean xehetasun gehiagorako.
  2.  "UART_Bridge" aplikazio-kodean, bi UART kanal, UART CH0 eta UART CH1, aktibatzen dira, eta COMMAND egituren bidezko komunikazio-protokolo pertsonalizatua ezartzen da bi UART gailuen artean. Informazio gehiago lortzeko, ikusi "API Erabilera Adibamples” atalean.
  3. Aplikazio-kodeak uart_module.c/h erabili behar du filefirmware liburutegiaren bertsio-eskakizuna dutenak. Baliteke eskakizuna noizean behin aldatzea eguneratzearen arabera. Uneko firmware-liburutegiaren bertsio-eskakizuna berresteko, ikusi mendekotasun-egiaztapenaren edukia main.c "Menpekotasun-egiaztapena" gako-hitza bilatuz. file. Firmware liburutegiaren bertsioak baldintzak betetzen ez baditu, deskargatu bertsio berriena "Firmware liburutegia" atalean emandako estekatik.

API Arkitektura
API bakoitzak CH parametro garrantzitsu bat du, hau da, UART kanala. Honek zehazten du zein UART kanal kontrolatu behar den. Gaur egun lau UART kanal onartzen dira eta, beraz, lau konstante ikur honela definitzen dira. Hauek CH parametro gisa erabiltzen dira APIei kontrolerako oinarria emateko.

  • UARTM_CH0: sarrera-parametroa - kontrolatu edo konfiguratu UART CH0
  • UARTM_CH1: sarrera-parametroa - kontrolatu edo konfiguratu UART CH1
  • UARTM_CH2: sarrera-parametroa - kontrolatu edo konfiguratu UART CH2
  • UARTM_CH3: sarrera-parametroa - kontrolatu edo konfiguratu UART CH3

Memoria espazioa ez da alferrik galduko UART kanal bakarra erabiltzen bada. Hau da, onartzen diren UART kanalen kopurua ezar daitekeelako eta erabiltzen ez den UART kanal kodea aurreprozesadoreak kenduko duelako memoria erabilgarri dagoen espazioa handitzeko. APIaren arkitektura honetan agertzen da 9. irudia.

9. Irudia API Arkitektura Bloke Diagrama
Arkitektura-Bloke Diagrama

API bakoitza UART kanalarekin erlazionatutako ezarpen edo kontrolen lau taldek osatzen dute, erabiltzaileek nahi den CH parametroa soilik sartu behar izan dezaten. Dagokion APIa konfiguratzeko, USART_InitTypeDef egitura-inprimakiarekin UART oinarrizko konfigurazio-parametro-taula gehigarri bat izatea besterik ez da behar. APIak UART oinarrizko konfigurazioa ezarriko du taulako parametroen edukiaren arabera. Ikus "APIaren Deskribapena" atalean UART oinarrizko konfigurazio-egituraren taularako.

uart_module.c/.h files-ek UART kanal bakoitzaren etenaldia (CHx_IRQ) ​​eta egoera-taula (CHx Status) soilik dituzte, UART komunikaziorako beharrezkoak diren ezarpen guztiak ht32_board_config.h-k ematen dituen bitartean. Ht32_board_config.h-ko hardwarearen parametro garrantzitsuak file beheko taulan agertzen dira. Xehetasun gehiago "Ezarpenen deskribapena" atalean eskaintzen dira.

Ht32_board_config.h-ko hardware garrantzitsuak diren parametroek I/O ezarpenak eta UART ataka fisikoaren ezarpenak dira, honela.

3. taula. Definizio-ikurrak ht32_board_config.h-n

Ikurra Deskribapena
HTCFG_UARTM_CH0 UART atakaren izena fisikoa; Adibample: UART0, UART1...
HTCFG_UARTM0_TX_GPIO_PORT CH0-rako TX atakaren izena definitzen du; Adibample: A, B, C...
HTCFG_UARTM0_TX_GPIO_PIN CH0-rako TX-ren pin-zenbakia definitzen du; Adibample: 0~15
HTCFG_UARTM0_RX_GPIO_PORT CH0-rako RX atakaren izena definitzen du; Adibample: A, B, C...
HTCFG_UARTM0_RX_GPIO_PIN CH0-rako TX-ren pin-zenbakia definitzen du; Adibample: 0~15
HTCFG_UARTM0_TX_BUFFER_SIZE CH0 TX buffer tamaina definitzen du; Adibampurtea: 128
HTCFG_UARTM0_RX_BUFFER_SIZE CH0 RX buffer tamaina definitzen du; Adibampurtea: 128

UART kanalaren AFIO konfigurazioa aldatzeko, ikusi dagokion gailuaren datu-orrira. Une honetan, UART CH0-ren I/O definizioak bakarrik hartzen dute eragina, Ht0_board_config.h-n UART CH32 soilik konfiguratu baita. UART CH1~3 gehitzeko, haien I/O definizioak osatu behar dira UART CH0 definizioari erreferentzia eginez edo "Ezarpenak aldatzea eta ohiko galderak" atalean.

Hiru API arkitekturaren ezaugarri nagusi daude: 

  1. Gehienez lau UART kanal onartzen dira. Haien sarrera-parametroak UARTM_CH0, UARTM_CH1, UARTM_CH2 eta UARTM_CH3 dira.
  2.  UART kanal kopurua ezar daiteke eta erabiltzen ez diren kanalek ez dute memoria-espazioa murriztuko.
  3. UART ezarpen guztiak eta I/O definizio guztiak APIetatik guztiz bereizten dira. Horrek balioak ezartzearen kudeaketa erosotasuna areagotzen du eta ezarpen okerrak edo falta diren aukerak murrizten ditu.

Ezarpenaren deskribapena 

Atal honetan parametroen ezarpenak sartuko dira ht32_board_config.h eta uart_module.h. files.

  1. ht32_board_config.h: Hau file pinen definizioetarako eta garapen-taularen ezarpen garrantzitsuak egiteko erabiltzen da, besteak beste, Starter Kit-ak (SK) erabiltzen duen UART IP kanala (UART0, UART1, USART0...), dagozkion TX/RX pin-kokapenak eta TX/RX buffer tamaina. 10. irudiak HT32F52352 Starter Kit-aren ezarpen-edukia erakusten du. Garapenaren integrazio funtzionalaren arabera, erabiltzaileek erabilitako gailuaren datu-orriko "Pin-esleipena" atala jo dezakete pin definizioak ezartzeko. Ezarpenen aldaketari buruzko xehetasun gehiago "Ezarpenak aldatzea eta ohiko galderak" atalean deskribatuko dira.
    10. irudia. ht32_board_config.h ezarpenak (HT32F52352)
    Ezarpenak
  2. uart_module.h: Hau da APIaren goiburua file aplikazio-kodeak erabiltzen du, ezarpen lehenetsiak, funtzioen definizioak eta abar biltzen dituena. 11. Irudian ikusten den moduan, ezarpen lehenetsien edukia kanpoko konfigurazioek gainidatzi dezakete, hala nola ht32_board_config.h-ko ezarpenak. file.
    11. Irudia. Ezarpen lehenetsiak uart_module.h-n
    Ezarpen lehenetsiak
APIaren deskribapena
  1. Aplikazio-kodearen datu-motaren deskribapena.
    • USART_InitTypeDef
      Hau BaudRate, WordLength, StopBits, Parity eta Mode konfigurazioek osatzen duten UART oinarrizko konfigurazio-egitura da, behean erakusten den moduan.
      Aldakorra Izena Mota Deskribapena
      USART_BaudRate u32 UART komunikazio baud-tasa
      USART_WordLength u16 UART komunikazio hitzaren luzera: 7, 8 edo 9 bit
      USART_StopBits u16 UART komunikazioa gelditzeko bit luzera: 1 edo 2 bit
      USART_Parity u16 UART komunikazioaren parekotasuna: bikoitia, bakoitia, marka, espazioa edo parekotasunik eza
      USART_modua u16 UART komunikazio modua; APIek modu normala soilik onartzen dute
  2. API funtzioak erabili aurretik, osatu UART oinarrizko konfigurazioa programa nagusian. Aplikazio-kode honen UART oinarrizko konfigurazioa 12. Irudian erakusten da. Hemen baud-tasa 115200bps-koa da, hitzaren luzera 8-bit da, stop bit-aren luzera 1-bit da eta ez dago parekotasunik.
    12. Irudia UART oinarrizko konfigurazioa
    Oinarrizko konfigurazioa
  3. 13. irudiak uart_module.h-n deklaratutako API funtzioak erakusten ditu file. Ondorengo tauletan API funtzioen funtzioa, sarrera-parametroak eta erabilera azaltzen dira.
    13. Irudia API Funtzio Adierazpenak uart_module.h-n 
    API Funtzio Adierazpenak
Izena void UARTM_Init (u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue)
Funtzioa UART modulua hasieratzea
  Sarrera CH UART kanala
pUART_Init UART oinarrizko konfigurazio-egituraren erakuslea
 uRxTimeOutValue UART RX FIFO denbora-muga-balioa. RX FIFO-k datu berriak jasotzen dituenean kontagailua berrezarri eta berrabiaraziko da. Kontagailuak aurrez ezarritako denbora-muga-balorera iristen denean eta dagokion denbora-muga-etena gaituta dagoenean, denbora-muga eten bat sortuko da.
 Erabilera UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//UART oinarrizko konfigurazioa exekutatu//Ikusi 12. irudira USART_InitStructure konfiguraziorako
Izena u32 UARTM_WriteByte (u32 CH, u8 uData)
Funtzioa UART modulua idazteko byte-eragiketa (TX)
Sarrera CH UART kanala
uData Idatzi beharreko datuak
Irteera ARRAKASTA Arrakastatsua
ERROREA Huts egin du
Erabilera UARTM_WriteByte (UARTM_CH0, 'A'); //UART-k 1 byte idazten du - 'A'
Izena u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength)
Funtzioa UART moduluaren idazketa eragiketa (TX)
 Sarrera CH UART kanala
pBuffer Buffer erakuslea
uLuzera Idatzi beharreko datuen luzera
Irteera ARRAKASTA Arrakastatsua
ERROREA Huts egin du
 Erabilera u8 Test[] = “Hau proba da!\r\n”; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); //UART-k pBuffer datuak idazten ditu
Izena u32 UARTM_ReadByte (u32 CH, u8 *pData)
Funtzioa UART modulua irakurtzeko byteen eragiketa (RX)
Sarrera CH UART kanala
pDatuak Irakurritako datuak jartzeko helbidea
Irteera ARRAKASTA Arrakastatsua
ERROREA Huts egin du (daturik ez)
   Erabilera u8 TempData; if (UARTM_ReadByte(UARTM_CH0, &TempData) == ARRAKASTA){UARTM_WriteByte (UARTM_CH0, TempData);}//UARTM_ReadByte() ARRAKASTA itzultzen badu, UART-k datu-byte hau idazten du
Izena u32 UARTM_Irakurri(u32 CH, u8 *pBuffer, u32 uLength)
Funtzioa UART modulua irakurtzeko eragiketa (RX)
 Sarrera CH UART kanala
pBuffer Buffer erakuslea
uLuzera Irakurri beharreko datuen luzera
Irteera Irakurri zenbaketa Datuen luzera irakurri da
     Erabilera u8 Test2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() 5 byte datu irakurtzen ditu eta datuak Test2-n gordetzen ditu, eta irakurritako byte kopurua esleitzen du Len// Test2-tik jasotako datuak idatzi
Izena u32 UARTM_GetReadBufferLength (u32 CH)
Funtzioa Lortu irakurtzeko buffer-aren luzera (RX)
Sarrera CH UART kanala
Irteera uLuzera Irakurri buffer-aren luzera
  Erabilera UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART modulua hasieratzea bitartean (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//Itxaron UARTM_ReadBuffer-ek 5 byte datuak jaso arte
Izena u32 UARTM_GetWriteBufferLength (u32 CH)
Funtzioa Lortu idazketa-buffer luzera (TX)
Sarrera CH UART kanala
Irteera uLuzera Idatzi bufferaren luzera
Izena u8 UARTM_IsTxFinished(u32 CH)
Funtzioa Lortu TX egoera
Sarrera CH UART kanala
Irteera EGIA TX egoera: amaituta
GEZURRA TX egoera: amaitu gabe
      Erabilera UARTM_WriteByte (UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 requiredwhile (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #bestela (1) #endif //API hau TX egoera egiaztatzeko erabil daiteke, goian erakusten den moduan; itxaron UARTM_WriteByte() APIa amaitu arte, hau da, TX egoera EGIA da, eta gero jarraitu ondorengo ekintzekin.//Murrizketa bat gehitzen da funtzio hau ez delako gehitu uart_module.c-en SVN bertsio-zenbakia 525 izan arte.
Izena hutsunea UARTM_DiscardReadBuffer (u32 CH)
Funtzioa Baztertu datuak irakurtzeko bufferean
Sarrera CH UART kanala

API erabilera Adibamples 

Atal honek API idazteko eta irakurtzeko adibidez erakutsiko duamp"Module_UART" aplikazio-kodearen fitxategiak hasierako prozesua erabiliz eta "UART_Module_Example” aplikazio kodearen prozesua. APIak erabili aurretik, erabiltzaileek APIaren goiburua sartu behar dute file programa nagusiaren iturburu-kodean sartu file (#include “middleware/uart_module.h”).

14. Irudian ikusten den bezala, hasierako prozesuan sartzerakoan, lehenik eta behin definitu UART oinarrizko konfigurazio-egitura. Ondoren, konfiguratu UART oinarrizko konfigurazio-egiturako kideak BaudRate, WordLength, StopBits, Parity eta Mode barne. Azkenik, deitu API hasierako funtzioari, eta horren osatzeak hasierako prozesuaren amaiera adierazten du. Horren ondoren, erabiltzaileek idazteko eta irakurtzeko eragiketekin jarraitu dezakete aurrez ezarritako UART oinarrizko konfigurazioan oinarrituta.

14. Irudia Hasierako Fluxu-diagrama
Hasierako fluxu-diagrama

"UART_Module_Example” aplikazio-kodeak API irakurtzeko eta idazteko eragiketak erakusten ditu loopback moduan. Honen fluxu-diagrama 15. Irudian ageri da. Erabilitako API funtzioen artean, UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() eta UARTM_GetReadBufferLength() daude. Haien deskribapena "APIaren deskribapena" atalean eskaintzen da.

15. irudia. Idatzi eta irakurtzeko fluxu-diagrama Adibamples
Idazketa eta irakurketaren fluxu-diagrama Adibamples

"UART_Bridge" aplikazio-kode bat dago "Module_UART" karpetaren azpian, zeinaren erlazionatutako file deskribapena "Direktorioaren Egitura" atalean sartzen da. "UART_Bridge" aplikazio-kodeak bi UART kanal aktibatzen ditu, UART CH0 eta UART CH1, eta, ondoren, bi UART gailuen arteko komunikazio-protokoloa pertsonalizatzen du COMMAND egituren bidez, gCMD1 eta gCMD2. Hauek uart_bridge.c-en definitzen dira, behean erakusten den moduan. UARTBridge_CMD1TypeDef gCMD1:

Aldakorra Izena Mota Deskribapena
uGoiburua u8 Goiburua
uCmd u8 Agindua
uData[3] u8 Datuak

UARTBridge_CMD2TypeDef gCMD2:

Aldakorra Izena Mota Deskribapena
uGoiburua u8 Goiburua
uCmdA u8 A komandoa
uCmdB u8 B komandoa
uData[3] u8 Datuak

"UART_Bridge" aplikazio-kodean, erabili gCMD1 datuak komando pakete gisa jasotzeko eta, ondoren, aztertu. Ondoren, pertsonalizatutako komunikazio-protokoloaren arabera, ezarri gCMD2 erantzun-pakete gisa eta transmititu. Honakoa exampgCMD1 komando-pakete baten fitxategia eta erantzun-pakete bat (gCMD2). Komando paketea (UARTBridge_CMD1TypeDef gCMD1):

0. bytea 1. bytea 2 byte ~ 4 byte
uGoiburua uCmd uData [3]
"A" "1" "x, y, z"

Erantzun paketea (UARTBridge_CMD2TypeDef gCMD2):

0. bytea 1. bytea 2. bytea 3 byte ~ 5 byte
uGoiburua uCmdA uCmdB uData [3]
"B" "a" "1" "x, y, z"

Baliabideen Okupazioa
HT32F52352 adibide gisa hartutaample, UART moduluak okupatzen dituen baliabideak behean erakusten dira.

HT32F52352
ROM tamaina 946 byte
RAM Tamaina 40*1 + 256*2 Byteak

Oharra:

  1. Kanal bakarreko banderak eta egoera barne aldagai globalek 40 byte RAM okupatzen dituzte.
  2.  Hau kanal bakarra erabiltzen den eta TX/RX buffer-aren tamaina 128/128 bytekoa da. Buffer tamaina aplikazioaren eskakizunen arabera ezar daiteke.

4. taula. Aplikazioaren kodea Baliabideen lanbidea 

  • Konpilazio ingurunea: MDK-Arm V5.36, ARMCC V5.06 eguneratzea 7 (build 960)
  • Optimizatu aukera: 2. maila (-O2)

Erabiltzeko jarraibideak

Kapitulu honetan "Module_UART" aplikazio-kodearen ingurumen-prestaketa aurkeztuko da, baita konpilazio eta proba-urratsak ere.

Ingurumena prestatzea
"Module_UART" aplikazio-koderako behar diren hardware eta softwareak behean zerrendatzen dira.
5. Taula. Hardware/Software Ingurumen Prestaketa 

Hardwarea/Softwarea zenbaketa Oharra
Hasierako kit 1 Aplikazio-ohar honek HT32F52352 Starter Kit erabiltzen du adibide gisaample
USB kablea 1 Mikro USB, ordenagailura konektatuta
Aplikazioaren kodea Deskargatzeko bidea, file eta direktorioaren konfigurazioa "Baliabideak deskargatu eta prestatzea" atalean sartzen dira. Bidea: "\\application\Module_UART\UART_Module_Example ”
Tera Epea Ikus "Terminal Software" atala
Keil IDE Keil uVision V5.xx

Lehenik eta behin, erabili HT32F52352 Starter Kit e-Link32 Lite-ren Virtual COM Port (VCP) funtzioarekin konbinatuta UART aplikazioaren aurkezpenerako. Horretarako, ingurumen-prestaketa hau ezarri behar da:

  1. Arbelean bi USB interfaze daude. Erabili USB kablea ordenagailua eta eLink32 Lite interfazea plakan konektatzeko 16-(a) irudian erakusten den moduan.
  2. Aplikazio-kodeak e-Link32 Lite Virtual COM Port (VCP) funtzioa erabili behar duenez, ziurtatu UART Jumper-J2*2-ren PAx*1 eta DAP_Tx laburtu egin dela jumper bat erabiliz. J2 kokapena 16-(b) irudiak adierazten du.

Oharra

  1. Starter Kit-eko J2-k bi aukera ditu, PAx eta DAP_Tx laburtuta edo PAx eta RS232_Tx laburtuta. Ikus Starter Kit erabiltzailearen eskuliburua ezarpenen funtzio zehatzetarako.
  2. MCU UART RX pinaren kokapena Hasierako Kit desberdinetan desberdinak dira. Adibample PAx erabiltzen du RX pina adierazteko.

16. Irudia HT32 Starter Kit bloke-diagrama
Kit-Bloke Diagrama

Orain erabili erabiltzailearen xede-taula e-Link32 Pro-ren Virtual COM Port (VCP) funtzioarekin konbinatuta UART aplikazioaren aurkezpenerako. Horretarako, ingurumen-prestaketa hau ezarri behar da:

  1. e-Link32 Pro-ren alde bat ordenagailu batera konektatuta dago Mini USB kablea erabiliz eta bestea erabiltzailearen xede-taulara konektatuta dago 10 biteko kable grisaren bidez. Kablearen eta xede-taularen SWD interfazeen arteko konexioa Dupont-eko lineak erabiliz gauzatzen da, 17-(a) irudian ikusten den moduan.
  2. e-Link32 Pro-ren serieko komunikazio-pinak Pin#7 VCOM_RXD eta Pin#8- VCOM_TXD dira. Hauek erabiltzailearen xede-taularen TX eta RX pinetara konektatu behar dira, 17-(b) irudian erakusten den moduan.
    17. Irudia e-Link32 Pro + Erabiltzaile Helburu-taularen bloke-diagrama
    Erabiltzaileen xede-taula

Konpilazioa eta proba
Atal honek "aplikazioa\Module_UART\UART_Module_Example” adibample konpilazio- eta proba-prozesuak aurkezteko. Horren aurretik, ziurtatu aurreko atalean deskribatutako prestaketa guztiak gauzatu direla eta Tera Term terminaleko softwarea deskargatu dela.

Eragiketa-urrats zehatzak jarraian laburbiltzen dira.
1. urratsa. Pizteko proba

Konfiguratu hardware-ingurunea aurreko atalean azaldu bezala. Piztu ondoren, Starter Kit-aren beheko ezkerreko D9 power LED-a piztuko da. Goiko eskuineko e-Link1 Lite-ko D32 USB LEDa piztuko da USB zenbaketa amaitu ondoren. Denbora luze baten ondoren D1 argitzen ez bada, baieztatu USB kablea komunikatzeko gai den. Hala ez bada, kendu eta berriro sartu berriro.

2. urratsa. Sortu proiektu bat
Ireki aplikazioa\Module_UART\UART_Module_Example karpetan, egin klik _CreateProject.bat-en file proiektu bat sortzeko, 18. Irudian ikusten den moduan. Aplikazio-ohar honek HT32F52352 Starter Kit erabiltzen duenez, ireki MDK_ARMv52352 karpetaren azpian dagoen Keil IDE proiektua "Project_5.uvprojx".

18. Irudia. Proiektua sortzeko _CreateProject.bat exekutatu
Sortu Proiektua

3. urratsa. Konpilatu eta programatu
Proiektua ireki ondoren, egin klik lehenik "Eraiki" aukeran (edo erabili "F7" lasterbidea), eta gero "Deskargatu" sakatu (edo erabili "F8") lasterbidea. Horren ondoren, eraikitze- eta deskarga-emaitzak Eraiki-irteera leihoan bistaratuko dira. Ikus 19. irudia.

19. Irudia Eraiki eta Deskargatu Emaitzak
Eraiki eta deskargatu emaitzak

4. urratsa. Ireki Tera Term softwarea eta konfiguratu serieko ataka
Ireki Tera Term softwarea eta COM ataka. Kontuan izan Starter Kit-ak sortutako COM atakaren zenbakia zuzena den ala ez. Ondoren, egin klik "Konfigurazioa >> Serial Port" aukeran konfigurazio interfazean sartzeko. "Module_UART" aplikazio-kodearen UART interfazearen konfigurazioa "Terminal Software" atalean deskribatzen da. Konfigurazioaren emaitza 20. irudian ageri da.

20. Irudia Tera Term Serieko Portuaren Konfigurazioaren Emaitza
Konfigurazioaren emaitza
5. urratsa. Berrezarri sistema eta probatu
Sakatu SK berrezarri tekla - B1 Berrezarri. Horren ostean, "ABCThi proba da!" mezua izango da
APIaren bidez transmititu eta Tera Term leihoan bistaratuko da, 21. Irudian ikusten den moduan. Jasotzeko funtzioari dagokionez, Tera Term leihoan datuak sartzerakoan, dagokion APIa erabiliko da jasotzeko buffer-aren luzera zehazteko. PCak jasotako datuak 5 byte-ra iristen direnean, jasotako 5 byteko datuak sekuentzialki bidaliko dira. 22. Irudian ikusten den bezala, sekuentzialki sartutako datuak "1, 2, 3, 4, 5" dira, APIaren bidez jasotzen eta zehazten dena. Horren ondoren, bost sarreraren ondoren "1, 2, 3, 4, 5" datuak inprimatuko dira.

21. Irudia. “Module_UART” Aplikazio Kodea Proba Funtzionala – Igorri
Aplikazio-kodea proba funtzionala

22. Irudia. “Module_UART” Aplikazio Kodea Proba Funtzionala – Jaso
Aplikazio-kodea proba funtzionala

Transplanteen jarraibideak
Atal honetan APIak erabiltzailearen proiektuetan nola integratu azalduko da.
1. urratsa. Gehitu uart_module.c file proiektuan sartu. Egin klik eskuineko botoiarekin Erabiltzaile karpetan. Hautatu "Gehitu lehendik dagoena Files "Erabiltzailea" taldera...", eta gero hautatu uart_module.c file eta egin klik "Gehitu"-n, 23. Irudian ikusten den moduan. Ikus "Direktorioaren egitura" atalean. file bidearen deskribapena.

23. Irudia Gehitu uart_module.c File Proiektura
File Proiektura

2. urratsa. Gehitu ring_buffer.c file proiektuan sartu. Egin klik eskuineko botoiarekin Erabiltzaile karpetan. Hautatu "Gehitu lehendik dagoena Files Talde 'Erabiltzailea'...", eta gero hautatu ring_buffer.c file eta egin klik "Gehitu"-n, 24. Irudian ikusten den moduan.\ Ikus "Direktorioaren egitura" atalean. file bidearen deskribapena.
24. Irudia Gehitu ring_buffer.c File Proiektura 
File Proiektura

3. urratsa. Sartu APIaren goiburua file main.c-ren hasieran sartu, 25. Irudian ikusten den moduan (Ext: #include “middleware/uart_module.h”)
25. irudia. Sartu API goiburua File nagusira.c
Sartu API goiburua File

4. urratsa. Inplementatu UART komunikaziorako beharrezkoak diren ezarpenak ht32_board_config.h erabiliz file. "Ezarpenen deskribapena" eta "Ezarpenen aldaketa eta ohiko galderak" ataletan azaltzen da.

Aldaketa eta Ohiko galderak ezartzea 

Atal honetan UART ezarpenak nola aldatu eta erabileran zehar aurkitutako ohiko galdera batzuk azalduko dira.

Aldatu UART pin esleipena 

  1. HT32F52352 datu-orriari "Pin-esleipena" kapituluari erreferentzia eginez, begiratu gailu motako AFIO funtzioak zerrendatzen dituen ordezko funtzioen mapaketa taula. UART dagozkion pinetarako, jo "AF6 USART/UART" zutabera, 26. Irudian ikusten den moduan.
    26. Irudia HT32F52352 Ordezko Funtzioen Mapaketa Taula
    Ordezko funtzioen mapak taula
  2. Urrats honek erabiltzaileak goiko taula erabiliz dagozkion UART pinak kokatzeko gidatuko ditu. HT32F52352 adibidezample-ek USART1 kanal lehenetsi gisa erabiltzen du. Hemen, TX eta RX pinak USR1_TX eta USR1_RX dira eta PA4 eta PA5-en daude hurrenez hurren. 27. irudiak "ht32_board_config.h"-n pinen korrespondentzia eta pin definizioak erakusten ditu. Pin esleipen taulako "Paketea" eremu hutsek esan nahi dute pakete honetan ez dagoela GPIO garrantzitsurik. UART pinak aldatzeko, bilatu helburuko pin kokapenak eta berriro definitu pinak "ht32_board_config.h" erabiliz. file.
    27. Irudia. Pinen korrespondentzia eta ezarpenen aldaketa
    Ezarpen aldaketa

Gehitu UART kanal bat
HT32F52352 HTCFG_UARTM_CH1 adibide gisa hartutaamphemen, UART kanal berri bat nola gehitu deskribatzen da.

Aldatu ht32_board_config.h file
HT32F52352 datu-orriari "Pin-esleipena" kapituluari erreferentzia eginez, begiratu gailu motako AFIO funtzioak zerrendatzen dituen ordezko funtzioen mapaketa taula. USART1 HTCFG_UARTM_CH0 gisa erabili denez, gehitu berri den HTCFG_UARTM_CH1 USART0 aukera dezake. Hemen, TX eta RX pinak PA2 eta PA3-n kokatzen dira, hurrenez hurren, 28. Irudiaren goiko erdian ikusten den moduan. Dagozkion aldaketak ht120_board_config.h-ko 126~32 kode-lerroak erabiliz gauzatzen dira, irudiko puntu gorriko koadroak erakusten duen moduan. 28.

28. Irudia Gehitu UART kanal bat
UART kanala

Ohiko galderak
Q: Konpilazioa eta Proba ataleko 5. urratsean, transmisioko proba funtzionala normala da. Hemen, "ABCThi proba da!" mezua behar bezala bistaratu da, baina jasotzeko funtziorako, zergatik ez dira sarrerako bost balioak itzultzen eta bistaratzen?
A: Egiaztatu UART Jumper-J2-ren MCU UART RX eta DAP_Tx pinak jumper bat erabiliz laburtu diren ala ez. "Module_UART" aplikazio-kodeak e-Link32 Lite-ren COM Port Birtuala (VCP) erabili behar duenez, zirkuitulaburra ezarpena UART Jumper-J2-ren ezkerreko bi pinetan aplikatu behar da, 29. Irudian ikusten den moduan.

29. Irudia. UART Jumper-J2 ezarpena
UART Jumper

G: Ondoren "Eraiki" (edo "F7") lasterbidea exekutatzen, errore-mezu bat agertzen da firmware liburutegiaren bertsioa behar dena baino zaharragoa dela adierazten duena? Ikus 30. irudia.
A: "Module_UART" aplikazio-kodearen ezarpenak uart_module.c/h sartu behar du files, firmware-liburutegiaren bertsio jakin baterako eskakizuna duena. Errore-mezu hori agertzen denean, une honetan erabiltzen den firmware liburutegia bertsio zaharragoa dela esan nahi du. Beraz, bertsio berriena deskargatu behar da "Firmware Liburutegia" atalean emandako estekaren bidez.

30. Irudia. Firmware Liburutegiaren Bertsioaren Errore Mezua
Bertsioaren errore-mezua

Ondorioa

Dokumentu honek oinarrizko sarrera bat eman du erabiltzaileei "Module_UART" aplikazio-kodea eta UART komunikazio-protokoloa hobeto ulertzen laguntzeko. Ondoren, baliabideen deskarga eta prestaketa egin zen. Deskribapen funtzionalaren kapituluan aurkeztu zen file direktorioaren egitura, APIaren arkitektura, APIaren deskribapena eta APIaren erabilera adibidezamples. Erabilerarako Argibideak kapituluan "Module_UART" aplikazio-kodearen ingurumen-prestaketa, konpilazioa eta probak frogatu ziren. Kodeen transplantea eta aldaketa ezarpenak egiteko argibideak ere eman zituen, baita aurki daitezkeen ohiko arazo batzuk ere. Hori guztia konbinatuta, erabiltzaileek APIak nola erabili azkar uler ditzakete eta, ondoren, hasteko denbora murrizteko.

Erreferentzia Materiala

Informazio gehiago lortzeko, jo Holtek-era webgunea: www.holtek.com

Bertsioak eta aldaketen informazioa

Data Egilea Askatu Aldaketaren informazioa
2022.04.30 蔡期育(Chi-Yu Tsai) V1.00 Lehen bertsioa

Erantzukizuna

Honetan agertzen diren informazio, marka, logotipo, grafiko, bideo, audio-klipak, estekak eta beste elementu guztiak webgunea ("Informazioa") erreferentziarako soilik dira eta edozein unetan alda daiteke aldez aurretik jakinarazi gabe eta Holtek Semiconductor Inc. eta hari lotutako enpresen erabakiz (aurrerantzean "Holtek", "konpainia", "gu", "gu". gu' edo 'gure'). Holtek, berriz, honi buruzko Informazioaren zehaztasuna ziurtatzen saiatzen da webgunean, Holtek-ek ez du informazioaren zehaztasunari buruzko berme espresuki edo inpliziturik ematen. Holtek-ek ez du erantzukizunik izango okerren edo isurien erantzukizunik.
Holtek ez da izango hau erabiltzean edo erabiltzean sortutako kalteen erantzule (birus informatikoak, sistema-arazoak edo datu-galerak barne, baina ez mugatuta). webedozein alderdiren gunea. Eremu honetan estekak egon daitezke, hau bisitatzeko aukera ematen dutenak webbeste enpresa batzuen guneak.
Hauek webguneak ez ditu Holtek-ek kontrolatzen. Holtek-ek ez du inolako erantzukizunik eta bermerik izango gune horietan bistaratzen den informazioarekiko. Hiperestekak besteekiko webguneak zure ardurapean daude.

Erantzukizunaren muga

Holtek Limited-ek ez du inolaz ere erantzukizunik izango beste alderdi batzuen aurrean, zure erabilerarekin edo zuzenean edo zeharka eragindako galera edo kalteengatik. webgunea, bertan dagoen edukia edo edozein ondasun, material edo zerbitzu.

Arau-legea
artikuluan jasotako oharra webgunea Txinako Errepublikako legeen arabera gobernatu eta interpretatuko da. Erabiltzaileak Txinako Errepublikako auzitegien jurisdikzio ez-esklusiboaren menpe egongo dira.

Ezespen-oharra eguneratzea
Holtek-ek beretzat gordetzen du Erantzukizunaren Ezespena edonoiz eguneratzeko eskubidea aldez aurretik jakinarazita edo gabe, aldaketa guztiak berehala sartuko dira indarrean. webgunea.

Dokumentuak / Baliabideak

HOLTEK HT32 MCU UART aplikazioaren oharra [pdfErabiltzailearen eskuliburua
HT32 MCU, UART aplikazio-oharra, HT32 MCU UART, aplikazio-oharra, HT32, MCU UART aplikazio-oharra, HT32 MCU UART aplikazio-oharra

Erreferentziak

Utzi iruzkin bat

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *