HOLTEK HT32 MCU UART ആപ്ലിക്കേഷൻ നോട്ട് യൂസർ മാനുവൽ
HOLTEK HT32 MCU UART അപേക്ഷാ കുറിപ്പ്

ആമുഖം

യൂണിവേഴ്സൽ എസിൻക്രണസ് റിസീവർ/ട്രാൻസ്മിറ്റർ - UART എന്നത് ഫ്ലെക്സിബിൾ അസിൻക്രണസ് ഫുൾ-ഡ്യൂപ്ലെക്സ് ഡാറ്റാ ട്രാൻസ്മിഷൻ പ്രദാനം ചെയ്യുന്ന പരക്കെ ഉപയോഗിക്കുന്ന സീരിയൽ ട്രാൻസ്മിഷൻ ഇന്റർഫേസാണ്. ഈ ആപ്ലിക്കേഷൻ കുറിപ്പിൽ നൽകിയിരിക്കുന്ന "Module_UART" ആപ്ലിക്കേഷൻ കോഡ്, API-കൾ വഴി ലളിതമായ UART ട്രാൻസ്മിറ്റ്/റിസീവ് ഫംഗ്‌ഷനുകൾ നടപ്പിലാക്കാൻ സോഫ്റ്റ്‌വെയർ റിംഗ് ബഫറുകളുള്ള TX/RX ഇന്ററപ്റ്റുകൾ ഉപയോഗിക്കുന്നു, അതിന്റെ അനുബന്ധ പ്രവർത്തനങ്ങൾ ചുവടെ വിവരിച്ചിരിക്കുന്നു. ഇത് മുഴുവൻ ഡാറ്റാ ട്രാൻസ്മിഷൻ പ്രക്രിയയും ലളിതമാക്കുകയും UART ആശയവിനിമയ ആപ്ലിക്കേഷനുകൾ വേഗത്തിൽ മനസ്സിലാക്കാനും നടപ്പിലാക്കാനും ഉപയോക്താക്കളെ അനുവദിക്കുകയും ചെയ്യും.

  • പ്രവർത്തനങ്ങൾ കൈമാറുക/സ്വീകരിക്കുക: ബൈറ്റ് റീഡ്, ബൈറ്റ് റൈറ്റ്, ബഫർ റീഡ്, ബഫർ റൈറ്റ് മുതലായവ.
  • സ്റ്റാറ്റസ് ഫംഗ്‌ഷനുകൾ: ബഫർ ദൈർഘ്യം, TX സ്റ്റാറ്റസ് മുതലായവ നേടുക.

ഈ ഡോക്യുമെന്റ് ആദ്യം UART കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ അവതരിപ്പിക്കും, ഇത് തത്വത്തിൽ നിന്ന് ആപ്ലിക്കേഷനിലേക്ക് UART ആശയവിനിമയം നന്നായി മനസ്സിലാക്കാൻ ഉപയോക്താക്കളെ സഹായിക്കും. ഫേംവെയർ ലൈബ്രറി, ആപ്ലിക്കേഷൻ കോഡ് ഡൗൺലോഡ്, എന്നിവയുൾപ്പെടെ ആപ്ലിക്കേഷൻ കോഡിന് ആവശ്യമായ ഉറവിടങ്ങൾ ഡൗൺലോഡ് ചെയ്യുകയും തയ്യാറാക്കുകയും ചെയ്യുന്നു. file കൂടാതെ ഡയറക്ടറി കോൺഫിഗറേഷനും ആപ്ലിക്കേഷൻ നോട്ടിൽ ഉപയോഗിച്ചിരിക്കുന്ന ടെർമിനൽ സോഫ്റ്റ്‌വെയർ ടൂളിന്റെ ആമുഖവും. പ്രവർത്തന വിവരണ അധ്യായത്തിൽ, ആപ്ലിക്കേഷൻ കോഡ് ഡയറക്ടറി ഘടന, പാരാമീറ്റർ ക്രമീകരണങ്ങൾ, API വിവരണം എന്നിവ അവതരിപ്പിക്കും. API ഉപയോഗം "Module_UART" ആപ്ലിക്കേഷൻ കോഡ് ഉപയോഗിച്ച് വിവരിക്കും കൂടാതെ API-കൾക്ക് ആവശ്യമായ Flash/RAM റിസോഴ്സ് ഉപഭോഗവും ലിസ്റ്റ് ചെയ്യും. ആപ്ലിക്കേഷൻ കോഡ് ശരിയായി പ്രവർത്തിക്കുമെന്ന് സ്ഥിരീകരിക്കുന്നതിന്, ഉപയോഗത്തിനുള്ള നിർദ്ദേശങ്ങൾ എന്ന അധ്യായം, പരിസ്ഥിതി തയ്യാറാക്കൽ, സമാഹരണം, പരിശോധന എന്നിവയുടെ ഘട്ടങ്ങളിലൂടെ ഉപയോക്താവിനെ നയിക്കും. ഉപയോക്താവിന്റെ പ്രോജക്‌റ്റുകളിലേക്ക് API-കൾ എങ്ങനെ സംയോജിപ്പിക്കാമെന്നും ഒടുവിൽ നേരിട്ടേക്കാവുന്ന പരിഷ്‌ക്കരണങ്ങൾക്കും പൊതുവായ പ്രശ്‌നങ്ങൾക്കും ഒരു റഫറൻസ് നൽകുകയും ചെയ്യുന്നതെങ്ങനെയെന്ന് വിശദീകരിക്കുന്ന നിർദ്ദേശങ്ങൾ ഇത് നൽകും.

ഉപയോഗിച്ച ചുരുക്കെഴുത്തുകൾ: 

  • UART: യൂണിവേഴ്സൽ അസിൻക്രണസ് റിസീവർ/ട്രാൻസ്മിറ്റർ
  • API: ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്
  • LSB: ഏറ്റവും കുറഞ്ഞ കാര്യമായ ബിറ്റ്
  • MSB: ഏറ്റവും പ്രധാനപ്പെട്ട ബിറ്റ്
  • പിസി: പേഴ്സണൽ കമ്പ്യൂട്ടർ
  • എസ്.കെ: സ്റ്റാർട്ടർ കിറ്റ്, HT32 വികസന ബോർഡ്
  • IDE: സംയോജിത വികസന പരിസ്ഥിതി

UART കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ

UART എന്നത് ഒരു സീരിയൽ കമ്മ്യൂണിക്കേഷൻ തരം ഇന്റർഫേസാണ്, അത് അതിന്റെ ട്രാൻസ്മിറ്ററിൽ സമാന്തരമായി സീരിയൽ ഡാറ്റ പരിവർത്തനം നടപ്പിലാക്കുകയും തുടർന്ന് സമാനമായ റിസീവറുമായി സീരിയലായി ആശയവിനിമയം നടത്തുകയും ചെയ്യുന്നു. ഡാറ്റ റിസപ്ഷനുശേഷം റിസീവർ ഒരു സീരിയൽ-ടു-പാരലൽ ഡാറ്റ പരിവർത്തനം നടത്തുന്നു. ബിറ്റ്വൈസ് ക്രമത്തിൽ ഡാറ്റ എങ്ങനെ കൈമാറ്റം ചെയ്യപ്പെടുന്നുവെന്ന് കാണിക്കുന്ന സീരിയൽ ആശയവിനിമയത്തിന്റെ ഒരു സ്കീമാറ്റിക് ഡയഗ്രം ചിത്രം 1 കാണിക്കുന്നു. അതിനാൽ ട്രാൻസ്മിറ്ററും റിസീവറും തമ്മിലുള്ള ദ്വിദിശ ആശയവിനിമയത്തിന്, പരസ്പരം സീരിയലായി ഡാറ്റ കൈമാറ്റം ചെയ്യുന്നതിന് TX, RX എന്നീ രണ്ട് വയറുകൾ മാത്രമേ ആവശ്യമുള്ളൂ. UART സീരിയൽ ഡാറ്റ കൈമാറുകയും റിസീവറിന്റെ RX പിന്നുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന പിൻ ആണ് TX. അതിനാൽ UART ടു-വേ കമ്മ്യൂണിക്കേഷൻ നടത്താൻ ട്രാൻസ്മിറ്ററും റിസീവർ ഉപകരണങ്ങളും അവരുടെ TX, RX പിന്നുകൾ ക്രോസ്-കണക്ട് ചെയ്യേണ്ടതുണ്ട്. ചിത്രം 2.

ചിത്രം 1. സീരിയൽ കമ്മ്യൂണിക്കേഷൻ ഡയഗ്രം
സീരിയൽ കമ്മ്യൂണിക്കേഷൻ ഡയഗ്രം

ചിത്രം 2. UART സർക്യൂട്ട് ഡയഗ്രം
UART സർക്യൂട്ട് ഡയഗ്രം

UART സീരിയൽ ആശയവിനിമയ സമയത്ത്, ഡാറ്റ ട്രാൻസ്മിഷൻ അസമന്വിതമാണ്. ട്രാൻസ്മിറ്ററും റിസീവറും തമ്മിൽ ക്ലോക്കോ മറ്റ് സിൻക്രൊണൈസേഷൻ സിഗ്നലോ ഇല്ലെന്നാണ് ഇതിനർത്ഥം. ഇവിടെ ഒരു ബൗഡ് നിരക്ക് ഉപയോഗിക്കുന്നു, ഇത് സീരിയൽ ഡാറ്റ ട്രാൻസ്മിറ്റിംഗ്/സ്പീഡ് സ്പീഡ് ആണ്, ഇത് ഡാറ്റാ കൈമാറ്റത്തിന് മുന്നോടിയായി ഇരുവശത്തും സജ്ജീകരിച്ചിരിക്കുന്നു. കൂടാതെ, സ്റ്റാർട്ട്, സ്റ്റോപ്പ് ബിറ്റുകൾ പോലുള്ള പ്രത്യേക ബിറ്റുകൾ ഡാറ്റ പാക്കറ്റിന്റെ തുടക്കത്തിലും അവസാനത്തിലും ചേർത്ത് ഒരു സമ്പൂർണ്ണ UART ഡാറ്റ പാക്കറ്റ് രൂപീകരിക്കുന്നു. ചിത്രം 3 UART ഡാറ്റ പാക്കറ്റ് ഘടന കാണിക്കുമ്പോൾ ചിത്രം 4 ഒരു പാരിറ്റി ബിറ്റ് ഇല്ലാത്ത UART 8-ബിറ്റ് ഡാറ്റ പാക്കറ്റ് കാണിക്കുന്നു.
ചിത്രം 3. UART ഡാറ്റ പാക്കറ്റ് ഘടന
UART ഡാറ്റ പാക്കറ്റ് ഘടന

ചിത്രം 4. UART 8-ബിറ്റ് ഡാറ്റ പാക്കറ്റ് ഫോർമാറ്റ്
ഡാറ്റ പാക്കറ്റ് ഫോർമാറ്റ്
UART ഡാറ്റ പാക്കറ്റിന്റെ ഓരോ ഭാഗവും ചുവടെ അവതരിപ്പിച്ചിരിക്കുന്നു.

  • ആരംഭ ബിറ്റ്: ഇത് ഒരു ഡാറ്റ പാക്കറ്റിന്റെ ആരംഭത്തെ സൂചിപ്പിക്കുന്നു. ട്രാൻസ്മിഷൻ ആരംഭിക്കുന്നതിന് മുമ്പ് UART TX പിൻ സാധാരണയായി ഉയർന്ന ലോജിക് തലത്തിൽ നിലനിൽക്കും. ഡാറ്റാ ട്രാൻസ്മിഷൻ ആരംഭിക്കുകയാണെങ്കിൽ, UART ട്രാൻസ്മിറ്റർ TX പിൻ ഉയർന്നതിൽ നിന്ന് താഴ്ന്നതിലേക്ക് വലിക്കും, അതായത് 1 മുതൽ 0 വരെ, തുടർന്ന് ഒരു ക്ലോക്ക് സൈക്കിൾ അവിടെ പിടിക്കുക. RX പിന്നിൽ ഉയർന്നതും താഴ്ന്നതുമായ സംക്രമണം കണ്ടെത്തുമ്പോൾ UART റിസീവർ ഡാറ്റ വായിക്കാൻ തുടങ്ങും.
  • ഡാറ്റ: 7, 8 അല്ലെങ്കിൽ 9 ബിറ്റുകളുടെ ഡാറ്റ ദൈർഘ്യമുള്ള യഥാർത്ഥ ഡാറ്റ കൈമാറ്റം ചെയ്യപ്പെടുന്നതാണ് ഇത്. ഡാറ്റ സാധാരണയായി ആദ്യം എൽഎസ്ബിയിലേക്ക് കൈമാറുന്നു.
  • പാരിറ്റി ബിറ്റ്: ട്രാൻസ്മിഷൻ സമയത്ത് ഏതെങ്കിലും ഡാറ്റ മാറിയിട്ടുണ്ടോ എന്ന് നിർണ്ണയിക്കാൻ ഡാറ്റയിലെ ലോജിക് "1" ന്റെ എണ്ണം ഉപയോഗിക്കുന്നു. ഇരട്ട പാരിറ്റിക്ക്, ഡാറ്റയിലെ "1" ലോജിക്കിന്റെ ആകെ എണ്ണം ഇരട്ട സംഖ്യയായിരിക്കണം, നേരെമറിച്ച്, ഡാറ്റയിലെ "1" ലോജിക്കിന്റെ ആകെ എണ്ണം ഒറ്റ സംഖ്യയുടെ ഒറ്റ സംഖ്യയായിരിക്കണം.
  • സ്റ്റോപ്പ് ബിറ്റ്: ഇത് ഒരു ഡാറ്റാ പാക്കറ്റിന്റെ അവസാനത്തെ സൂചിപ്പിക്കുന്നു, അവിടെ UART ട്രാൻസ്മിറ്റർ TX പിൻ താഴ്ന്നതിൽ നിന്ന് ഉയർന്നതിലേക്ക് വലിക്കും, അതായത്, 0 മുതൽ 1 വരെ, തുടർന്ന് 1 അല്ലെങ്കിൽ 2-ബിറ്റ് സമയ കാലയളവിലേക്ക് അവിടെ പിടിക്കുക.

മുമ്പ് സൂചിപ്പിച്ചതുപോലെ, UART സർക്യൂട്ടിൽ ക്ലോക്ക് സിഗ്നൽ ഇല്ലാത്തതിനാൽ, പിശക് രഹിത സംപ്രേക്ഷണം നടപ്പിലാക്കാൻ ട്രാൻസ്മിറ്ററും റിസീവറും തമ്മിൽ ബോഡ് നിരക്ക് എന്നറിയപ്പെടുന്ന അതേ സീരിയൽ ഡാറ്റ ട്രാൻസ്മിറ്റിംഗ് / സ്വീകരിക്കുന്ന വേഗത നിർവചിക്കേണ്ടതുണ്ട്. ബിപിഎസിൽ (ബിറ്റ് പെർ സെക്കൻഡ്) സെക്കൻഡിൽ ട്രാൻസ്ഫർ ചെയ്യുന്ന ബിറ്റുകളുടെ എണ്ണം കൊണ്ടാണ് ബോഡ് നിരക്ക് നിർവചിക്കുന്നത്. 4800bps, 9600bps, 19200bps, 115200bps മുതലായവയാണ് ചില സ്റ്റാൻഡേർഡ്, സാധാരണയായി ഉപയോഗിക്കുന്ന ബോഡ് നിരക്കുകൾ. ഒരൊറ്റ ഡാറ്റാ ബിറ്റ് കൈമാറുന്നതിന് ആവശ്യമായ സമയം താഴെ കാണിച്ചിരിക്കുന്നു.
പട്ടിക 1. ബൗഡ് നിരക്ക് വേഴ്സസ്. 1-ബിറ്റ് ട്രാൻസ്മിഷൻ സമയം 

ബൗഡ് നിരക്ക് 1-ബിറ്റ് ട്രാൻസ്മിഷൻ സമയം
4800bps 208.33µs
9600bps 104.16µs
19200bps 52.08µs
115200bps 8.68µs

റിസോഴ്സ് ഡൗൺലോഡും തയ്യാറാക്കലും

ഈ അധ്യായം ആപ്ലിക്കേഷൻ കോഡും ഉപയോഗിച്ച സോഫ്‌റ്റ്‌വെയർ ടൂളും, കൂടാതെ ഡയറക്‌ടറി എങ്ങനെ കോൺഫിഗർ ചെയ്യാമെന്നും അവതരിപ്പിക്കും. file പാത.

ഫേംവെയർ ലൈബ്രറി 

ആദ്യം, ആപ്ലിക്കേഷൻ കോഡ് ഉപയോഗിക്കുന്നതിന് മുമ്പ് Holtek HT32 ഫേംവെയർ ലൈബ്രറി ഡൗൺലോഡ് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. ഡൗൺലോഡ് ലിങ്ക് താഴെ കാണിച്ചിരിക്കുന്നു. ഇവിടെ രണ്ട് ഓപ്‌ഷനുകളുണ്ട്, HT32F0xxxx സീരീസിന് HT32_M5p_Vyyyymmdd.zip, HT32F3xxxx സീരീസിന് HT32_M1_Vyyyymmdd.zip. ആവശ്യമുള്ളത് ഡൗൺലോഡ് ചെയ്ത് അൺസിപ്പ് ചെയ്യുക file.

സിപ്പ് file ഡോക്യുമെന്റ്, ഫേംവെയർ ലൈബ്രറി, ടൂളുകൾ, മറ്റ് ഇനങ്ങൾ എന്നിങ്ങനെ തരംതിരിക്കാൻ കഴിയുന്ന നിരവധി ഫോൾഡറുകൾ അടങ്ങിയിരിക്കുന്നു, അവയുടെ പ്ലേസ്‌മെന്റ് പാത ചിത്രം 5-ൽ കാണിച്ചിരിക്കുന്നു. HT32 ഫേംവെയർ ലൈബ്രറി zip file കൂടെ എ file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip എന്നതിന്റെ പേര് Firmware_Library ഫോൾഡറിന് കീഴിലാണ് സ്ഥിതി ചെയ്യുന്നത്.

ചിത്രം 5. HT32_M0p_Vyyyymmdd.zip ഉള്ളടക്കം
ഉള്ളടക്കം

അപേക്ഷാ കോഡ്
താഴെയുള്ള ലിങ്കിൽ നിന്ന് ആപ്ലിക്കേഷൻ കോഡ് ഡൗൺലോഡ് ചെയ്യുക. ആപ്ലിക്കേഷൻ കോഡ് ഒരു സിപ്പിലേക്ക് പാക്കേജുചെയ്‌തു file കൂടെ എ file HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip-ന്റെ പേര്. കാണുക ചിത്രം 6 വേണ്ടി file പേര് കൺവെൻഷനുകൾ.

ചിത്രം 6. ആപ്ലിക്കേഷൻ കോഡ് File പേര് ആമുഖം 

ഡൗൺലോഡ് ലിങ്ക്: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/ അപേക്ഷാ കോഡ്

File കൂടാതെ ഡയറക്ടറി കോൺഫിഗറേഷനും
ആപ്ലിക്കേഷൻ കോഡിൽ HT32 ഫേംവെയർ ലൈബ്രറി ഇല്ലാത്തതിനാൽ files, ആപ്ലിക്കേഷൻ കോഡും ഫേംവെയർ ലൈബ്രറിയും അൺസിപ്പ് ചെയ്തു fileസമാഹാരം ആരംഭിക്കുന്നതിന് മുമ്പ് s ശരിയായ പാതയിൽ സ്ഥാപിക്കണം. ആപ്ലിക്കേഷൻ കോഡ് പിൻ file ചിത്രം 7-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ ആപ്ലിക്കേഷനും ലൈബ്രറിയും പോലുള്ള ഒന്നോ അതിലധികമോ ഫോൾഡറുകൾ സാധാരണയായി അടങ്ങിയിരിക്കുന്നു. പൂർത്തിയാക്കാൻ ആപ്ലിക്കേഷൻ ഫോൾഡർ HT32 ഫേംവെയർ ലൈബ്രറി റൂട്ട് ഡയറക്‌ടറിക്ക് കീഴിൽ വയ്ക്കുക file ചിത്രം 8-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ പാത്ത് കോൺഫിഗറേഷൻ. പകരമായി, ഒരേ കോൺഫിഗറേഷൻ ഫലങ്ങൾ നേടുന്നതിന് ഒരേ പാതയിലേക്ക് ഒരേസമയം ആപ്ലിക്കേഷൻ കോഡും HT32 ഫേംവെയർ ലൈബ്രറിയും അൺസിപ്പ് ചെയ്യുക.

ചിത്രം 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip ഉള്ളടക്കം
ഉള്ളടക്കം

ചിത്രം 8. ഡീകംപ്രഷൻ പാത്ത്
ഡീകംപ്രഷൻ പാത

ടെർമിനൽ സോഫ്റ്റ്‌വെയർ
ഫംഗ്‌ഷൻ തിരഞ്ഞെടുക്കൽ അല്ലെങ്കിൽ സ്റ്റാറ്റസ് ഡിസ്‌പ്ലേ നടപ്പിലാക്കുന്നതിനായി ആപ്ലിക്കേഷൻ കോഡിന് COM പോർട്ട് വഴി സന്ദേശങ്ങൾ കൈമാറാൻ കഴിയും. ഇതിന് ഹോസ്റ്റ് സൈഡ് ടെർമിനൽ സോഫ്റ്റ്‌വെയർ മുൻകൂട്ടി ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. ഉപയോക്താക്കൾക്ക് ഉചിതമായ കണക്ഷൻ സോഫ്‌റ്റ്‌വെയർ തിരഞ്ഞെടുക്കാം, അല്ലെങ്കിൽ Tera Term പോലുള്ള സൗജന്യ ലൈസൻസുള്ള സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കാം. ആപ്ലിക്കേഷൻ കോഡിൽ, UART ചാനൽ 8-ബിറ്റുകളുടെ പദ ദൈർഘ്യം, പാരിറ്റി ഇല്ല, 1 സ്റ്റോപ്പ് ബിറ്റ്, 115200bps ബാഡ് നിരക്ക് എന്നിവ ഉപയോഗിച്ച് കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നു.

പ്രവർത്തന വിവരണം

ഡയറക്‌ടറി ഘടന, API ആർക്കിടെക്ചർ, ക്രമീകരണ വിവരണം മുതലായവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഉൾപ്പെടെ ആപ്ലിക്കേഷൻ കോഡിനായി ഈ അധ്യായം ഒരു പ്രവർത്തന വിവരണം നൽകും.

ഡയറക്ടറി ഘടന
ആപ്ലിക്കേഷൻ കോഡ് file ഒരു ആപ്ലിക്കേഷൻ ഫോൾഡർ അടങ്ങിയിരിക്കുന്നു. അടുത്ത ലെയർ "Module_UART" ഫോൾഡറാണ്, അതിൽ രണ്ട് ആപ്ലിക്കേഷൻ പ്രോഗ്രാമുകൾ അടങ്ങിയിരിക്കുന്നു, "UART_Module_Example", "UART_Bridge" എന്നിവ. പ്രസക്തമായ fileകൾ പട്ടികപ്പെടുത്തുകയും ചുവടെ വിവരിക്കുകയും ചെയ്യുന്നു.
പട്ടിക 2. ആപ്ലിക്കേഷൻ കോഡ് ഡയറക്ടറി ഘടന

ഫോൾഡർ / File പേര് വിവരണം
\\application\Module_UART\UART_Module_Example*1
_CreateProject.bat പ്രോജക്റ്റ് സൃഷ്ടിക്കുന്നതിനുള്ള ബാച്ച് സ്ക്രിപ്റ്റുകൾ files
_ProjectSource.ini ആരംഭിക്കൽ file പ്രോജക്റ്റുകളിലേക്ക് സോഴ്സ് കോഡ് ചേർക്കുന്നതിന്
ht32_board_config.h സജ്ജമാക്കുക file IC പെരിഫറൽ I/O അസൈൻമെന്റുമായി ബന്ധപ്പെട്ടത്
ht32fxxxxx_01_it.c സേവന പരിപാടി തടസ്സപ്പെടുത്തുക file
മെയിൻ.സി പ്രധാന പ്രോഗ്രാമിന്റെ സോഴ്സ് കോഡ്
\\application\Module_UART\UART_Bridge*2
_CreateProject.bat പ്രോജക്റ്റ് സൃഷ്ടിക്കുന്നതിനുള്ള ബാച്ച് സ്ക്രിപ്റ്റുകൾ files
_ProjectSource.ini ആരംഭിക്കൽ file പ്രോജക്റ്റുകളിലേക്ക് സോഴ്സ് കോഡ് ചേർക്കുന്നതിന്
ht32_board_config.h സജ്ജമാക്കുക file IC പെരിഫറൽ I/O അസൈൻമെന്റുമായി ബന്ധപ്പെട്ടത്
ht32fxxxxx_01_it.c സേവന പരിപാടി തടസ്സപ്പെടുത്തുക file
മെയിൻ.സി പ്രധാന പ്രോഗ്രാമിന്റെ ഉറവിട കോഡ്
uart_bridge.h uart_bridge.c UART ബ്രിഡ്ജ് ഹെഡർ file സോഴ്സ് കോഡും file
\\ യൂട്ടിലിറ്റികൾ\മിഡിൽവെയർ
uart_module.h*3 uart_module.c*3 API തലക്കെട്ട് file സോഴ്സ് കോഡും file
\\ യൂട്ടിലിറ്റികൾ\ പൊതുവായ
ringbuffer.h ring_buffer.c സോഫ്റ്റ്‌വെയർ റിംഗ് ബഫർ ഹെഡർ file സോഴ്സ് കോഡും file

കുറിപ്പ്: 

  1. "UART_Module_Ex-ൽample” ആപ്ലിക്കേഷൻ കോഡ്, API റീഡ് ആൻഡ് റൈറ്റ് പ്രവർത്തനങ്ങൾ ഒരു ലൂപ്പ്ബാക്ക് രീതിയിലാണ് നടത്തുന്നത്, “API ഉപയോഗ Exampകൂടുതൽ വിവരങ്ങൾക്ക് les" എന്ന വിഭാഗം.
  2.  "UART_Bridge" ആപ്ലിക്കേഷൻ കോഡിൽ, UART CH0, UART CH1 എന്നീ രണ്ട് UART ചാനലുകൾ സജീവമാക്കി, കൂടാതെ COMMAND ഘടനകൾ വഴിയുള്ള ഇഷ്‌ടാനുസൃത ആശയവിനിമയ പ്രോട്ടോക്കോൾ രണ്ട് UART ഉപകരണങ്ങൾക്കിടയിൽ നടപ്പിലാക്കുന്നു. കൂടുതൽ വിവരങ്ങൾക്ക്, "API ഉപയോഗം Exampലെസ്" വിഭാഗം.
  3. ആപ്ലിക്കേഷൻ കോഡിന് uart_module.c/h ഉപയോഗിക്കേണ്ടതുണ്ട് fileഫേംവെയർ ലൈബ്രറി പതിപ്പ് ആവശ്യകതയുള്ളവ. അപ്ഡേറ്റ് അനുസരിച്ച് സമയാസമയങ്ങളിൽ ആവശ്യകത മാറിയേക്കാം. നിലവിലെ ഫേംവെയർ ലൈബ്രറി പതിപ്പ് ആവശ്യകത സ്ഥിരീകരിക്കുന്നതിന്, main.c-ൽ "ഡിപൻഡൻസി ചെക്ക്" എന്ന കീവേഡിനായി തിരയുന്നതിലൂടെ ഡിപൻഡൻസി ചെക്ക് ഉള്ളടക്കം പരിശോധിക്കുക. file. ഫേംവെയർ ലൈബ്രറി പതിപ്പ് ആവശ്യകതകൾ നിറവേറ്റുന്നില്ലെങ്കിൽ, "ഫേംവെയർ ലൈബ്രറി" വിഭാഗത്തിൽ നൽകിയിരിക്കുന്ന ലിങ്കിൽ നിന്ന് ഏറ്റവും പുതിയ പതിപ്പ് ഡൗൺലോഡ് ചെയ്യുക.

API ആർക്കിടെക്ചർ
ഓരോ API-യ്ക്കും ഒരു പ്രധാന പാരാമീറ്റർ CH ഉണ്ട്, അത് UART ചാനൽ ആണ്. ഏത് UART ചാനലാണ് നിയന്ത്രിക്കേണ്ടതെന്ന് ഇത് നിർണ്ണയിക്കുന്നു. നിലവിൽ നാല് UART ചാനലുകൾ വരെ പിന്തുണയ്ക്കുന്നു, അതിനാൽ നാല് സ്ഥിരമായ ചിഹ്നങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ നിർവചിച്ചിരിക്കുന്നു. എപിഐകൾക്ക് നിയന്ത്രണത്തിന് അടിസ്ഥാനം നൽകുന്ന പാരാമീറ്റർ CH ആയി ഇവ ഉപയോഗിക്കുന്നു.

  • UARTM_CH0: ഇൻപുട്ട് പാരാമീറ്റർ - UART CH0 നിയന്ത്രിക്കുക അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്യുക
  • UARTM_CH1: ഇൻപുട്ട് പാരാമീറ്റർ - UART CH1 നിയന്ത്രിക്കുക അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്യുക
  • UARTM_CH2: ഇൻപുട്ട് പാരാമീറ്റർ - UART CH2 നിയന്ത്രിക്കുക അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്യുക
  • UARTM_CH3: ഇൻപുട്ട് പാരാമീറ്റർ - UART CH3 നിയന്ത്രിക്കുക അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്യുക

ഒരു UART ചാനൽ മാത്രം ഉപയോഗിച്ചാൽ മെമ്മറി സ്പേസ് പാഴാകില്ല. പിന്തുണയ്‌ക്കുന്ന UART ചാനലുകളുടെ എണ്ണം സജ്ജീകരിക്കാമെന്നതിനാലും ലഭ്യമായ മെമ്മറി സ്‌പേസ് വർദ്ധിപ്പിക്കുന്നതിനായി ഉപയോഗിക്കാത്ത UART ചാനൽ കോഡ് പ്രീപ്രൊസസ്സർ നീക്കം ചെയ്യുന്നതിനാലും ഇത് സംഭവിക്കുന്നു. API ആർക്കിടെക്ചർ കാണിച്ചിരിക്കുന്നു ചിത്രം 9.

ചിത്രം 9. API ആർക്കിടെക്ചർ ബ്ലോക്ക് ഡയഗ്രം
ആർക്കിടെക്ചർ ബ്ലോക്ക് ഡയഗ്രം

ഓരോ API-യും UART ചാനലുമായി ബന്ധപ്പെട്ട ക്രമീകരണങ്ങൾ അല്ലെങ്കിൽ നിയന്ത്രണങ്ങളുടെ നാല് ഗ്രൂപ്പുകൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ ഉപയോക്താക്കൾക്ക് ആവശ്യമുള്ള CH പാരാമീറ്റർ മാത്രം നൽകേണ്ടതുണ്ട്. പ്രസക്തമായ API കോൺഫിഗർ ചെയ്യുന്നതിന്, USART_InitTypeDef എന്ന ഘടനാ രൂപത്തോടുകൂടിയ ഒരു അധിക UART അടിസ്ഥാന കോൺഫിഗറേഷൻ പാരാമീറ്റർ ടേബിൾ മാത്രമേ ആവശ്യമുള്ളൂ. പട്ടികയിലെ പാരാമീറ്റർ ഉള്ളടക്കങ്ങൾ അനുസരിച്ച് API UART അടിസ്ഥാന കോൺഫിഗറേഷൻ നടപ്പിലാക്കും. UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ഘടന പട്ടികയ്ക്കായി "API വിവരണം" വിഭാഗം കാണുക.

uart_module.c/.h files-ൽ ഓരോ UART ചാനലിന്റെയും തടസ്സവും (CHx_IRQ) ​​സ്റ്റാറ്റസ് ടേബിളും (CHx സ്റ്റാറ്റസ്) മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ, അതേസമയം UART ആശയവിനിമയത്തിന് ആവശ്യമായ എല്ലാ ക്രമീകരണങ്ങളും ht32_board_config.h നൽകുന്നു. ht32_board_config.h-ലെ ഹാർഡ്‌വെയർ പ്രസക്തമായ പാരാമീറ്ററുകൾ file താഴെയുള്ള പട്ടികയിൽ കാണിച്ചിരിക്കുന്നു. കൂടുതൽ വിശദാംശങ്ങൾ "സജ്ജീകരണ വിവരണം" വിഭാഗത്തിൽ നൽകിയിരിക്കുന്നു.

ht32_board_config.h-ലെ ഹാർഡ്‌വെയർ പ്രസക്തമായ പാരാമീറ്ററുകളിൽ ഇനിപ്പറയുന്നവ പോലെ I/O ക്രമീകരണങ്ങളും ഫിസിക്കൽ UART പോർട്ട് ക്രമീകരണങ്ങളും ഉൾപ്പെടുന്നു.

പട്ടിക 3. ht32_board_config.h-ലെ നിർവചന ചിഹ്നങ്ങൾ

ചിഹ്നം വിവരണം
HTCFG_UARTM_CH0 ഫിസിക്കൽ UART പോർട്ട് നാമം; ഉദാampലെ: UART0, UART1...
HTCFG_UARTM0_TX_GPIO_PORT CH0-നുള്ള TX-ന്റെ പോർട്ട് നാമം നിർവചിക്കുന്നു; ഉദാampലെ: എ, ബി, സി...
HTCFG_UARTM0_TX_GPIO_PIN CH0-നുള്ള TX-ന്റെ പിൻ നമ്പർ നിർവചിക്കുന്നു; ഉദാampലെ: 0~15
HTCFG_UARTM0_RX_GPIO_PORT CH0-നുള്ള RX-ന്റെ പോർട്ട് നാമം നിർവചിക്കുന്നു; ഉദാampലെ: എ, ബി, സി...
HTCFG_UARTM0_RX_GPIO_PIN CH0-നുള്ള TX-ന്റെ പിൻ നമ്പർ നിർവചിക്കുന്നു; ഉദാampലെ: 0~15
HTCFG_UARTM0_TX_BUFFER_SIZE CH0-നുള്ള TX ബഫർ വലുപ്പം നിർവചിക്കുന്നു; ഉദാampലെ: 128
HTCFG_UARTM0_RX_BUFFER_SIZE CH0-നുള്ള RX ബഫർ വലുപ്പം നിർവചിക്കുന്നു; ഉദാampലെ: 128

UART ചാനൽ AFIO കോൺഫിഗറേഷൻ പരിഷ്കരിക്കുന്നതിന്, പ്രസക്തമായ ഉപകരണ ഡാറ്റാഷീറ്റ് പരിശോധിക്കുക. ht0_board_config.h-ൽ UART CH0 കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നതിനാൽ നിലവിൽ UART CH32-നുള്ള I/O നിർവചനങ്ങൾ മാത്രമേ പ്രാബല്യത്തിൽ വരുന്നുള്ളൂ. UART CH1~3 ചേർക്കുന്നതിന്, അവരുടെ I/O നിർവചനങ്ങൾ UART CH0 നിർവചനം പരാമർശിച്ചുകൊണ്ടോ അല്ലെങ്കിൽ "ക്രമീകരണം പരിഷ്ക്കരണവും പതിവുചോദ്യങ്ങളും" എന്ന വിഭാഗവും പരാമർശിച്ചുകൊണ്ടോ പൂർത്തിയാക്കേണ്ടതുണ്ട്.

മൂന്ന് API ആർക്കിടെക്ചർ പ്രധാന സവിശേഷതകൾ ഉണ്ട്: 

  1. നാല് UART ചാനലുകൾ വരെ പിന്തുണയ്ക്കുന്നു. അവരുടെ ഇൻപുട്ട് പാരാമീറ്ററുകൾ UARTM_CH0, UARTM_CH1, UARTM_CH2, UARTM_CH3 എന്നിവയാണ്.
  2.  UART ചാനലുകളുടെ എണ്ണം സജ്ജീകരിക്കാം കൂടാതെ ഉപയോഗിക്കാത്ത ചാനലുകൾ ലഭ്യമായ മെമ്മറി സ്പേസ് കുറയ്ക്കില്ല.
  3. എല്ലാ UART ക്രമീകരണങ്ങളും I/O നിർവചനങ്ങളും API-കളിൽ നിന്ന് പൂർണ്ണമായും വേർതിരിച്ചിരിക്കുന്നു. ഇത് മൂല്യങ്ങൾ ക്രമീകരിക്കുന്നതിനുള്ള മാനേജ്മെന്റ് സൗകര്യം വർദ്ധിപ്പിക്കുകയും തെറ്റായ അല്ലെങ്കിൽ നഷ്‌ടമായ ക്രമീകരണങ്ങളുടെ സാധ്യത കുറയ്ക്കുകയും ചെയ്യുന്നു.

വിവരണം ക്രമീകരണം 

ഈ വിഭാഗം ht32_board_config.h, uart_module.h എന്നിവയിൽ പാരാമീറ്റർ ക്രമീകരണങ്ങൾ അവതരിപ്പിക്കും. files.

  1. ht32_board_config.h: ഇത് file സ്റ്റാർട്ടർ കിറ്റ് (SK) ഉപയോഗിക്കുന്ന UART IP ചാനൽ (UART0, UART1, USART0...) എന്നിവ ഉൾപ്പെടുന്ന പിൻ നിർവചനങ്ങൾക്കും ഡെവലപ്‌മെന്റ് ബോർഡ് പ്രസക്തമായ ക്രമീകരണങ്ങൾക്കുമായി ഉപയോഗിക്കുന്നു, അനുബന്ധ TX/RX പിൻ ലൊക്കേഷനുകളും TX/RX ബഫർ വലുപ്പവും. HT10F32 സ്റ്റാർട്ടർ കിറ്റിന്റെ ക്രമീകരണ ഉള്ളടക്കം ചിത്രം 52352 കാണിക്കുന്നു. വികസനത്തിന്റെ പ്രവർത്തനപരമായ സംയോജനത്തെ ആശ്രയിച്ച്, പിൻ നിർവചനങ്ങൾ നടപ്പിലാക്കുന്നതിനായി ഉപയോക്താക്കൾക്ക് ഉപയോഗിച്ച ഉപകരണത്തിന്റെ ഡാറ്റാഷീറ്റിലെ "പിൻ അസൈൻമെന്റ്" വിഭാഗം റഫർ ചെയ്യാം. ക്രമീകരണ പരിഷ്‌ക്കരണത്തെക്കുറിച്ചുള്ള കൂടുതൽ വിശദാംശങ്ങൾ "ക്രമീകരണ പരിഷ്‌ക്കരണവും പതിവുചോദ്യങ്ങളും" എന്ന വിഭാഗത്തിൽ വിവരിക്കും.
    ചിത്രം 10. ht32_board_config.h ക്രമീകരണങ്ങൾ (HT32F52352)
    ക്രമീകരണങ്ങൾ
  2. uart_module.h: ഇതാണ് API തലക്കെട്ട് file പ്രസക്തമായ സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങൾ, ഫംഗ്‌ഷൻ നിർവചനങ്ങൾ മുതലായവ ഉൾപ്പെടുന്ന ആപ്ലിക്കേഷൻ കോഡ് ഉപയോഗിക്കുന്നു. ചിത്രം 11-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ht32_board_config.h-ലെ ക്രമീകരണങ്ങൾ പോലുള്ള ബാഹ്യ കോൺഫിഗറേഷനുകൾ വഴി സ്ഥിരസ്ഥിതി ക്രമീകരണ ഉള്ളടക്കങ്ങൾ തിരുത്തിയെഴുതാൻ കഴിയും. file.
    ചിത്രം 11. uart_module.h-ലെ സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങൾ
    സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങൾ
API വിവരണം
  1. ആപ്ലിക്കേഷൻ കോഡ് ഡാറ്റ തരം വിവരണം.
    • USART_InitTypeDef
      താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ, BaudRate, WordLength, StopBits, Parity, Mode കോൺഫിഗറേഷനുകൾ എന്നിവ ഉൾക്കൊള്ളുന്ന UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ഘടനയാണിത്.
      വേരിയബിൾ പേര് ടൈപ്പ് ചെയ്യുക വിവരണം
      USART_BaudRate u32 UART ആശയവിനിമയ ബൗഡ് നിരക്ക്
      USART_WordLength u16 UART ആശയവിനിമയ പദ ദൈർഘ്യം: 7, 8 അല്ലെങ്കിൽ 9 ബിറ്റുകൾ
      USART_StopBits u16 UART കമ്മ്യൂണിക്കേഷൻ സ്റ്റോപ്പ് ബിറ്റ് ദൈർഘ്യം: 1 അല്ലെങ്കിൽ 2 ബിറ്റുകൾ
      USART_Parity u16 UART ആശയവിനിമയ പാരിറ്റി: ഇരട്ട, ഒറ്റ, അടയാളം, ഇടം അല്ലെങ്കിൽ തുല്യതയില്ല
      USART_മോഡ് u16 UART ആശയവിനിമയ മോഡ്; API-കൾ സാധാരണ മോഡിനെ മാത്രമേ പിന്തുണയ്ക്കൂ
  2. API ഫംഗ്‌ഷനുകൾ ഉപയോഗിക്കുന്നതിന് മുമ്പ്, പ്രധാന പ്രോഗ്രാമിലെ UART അടിസ്ഥാന കോൺഫിഗറേഷൻ പൂർത്തിയാക്കുക. ഈ ആപ്ലിക്കേഷൻ കോഡിന്റെ UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ചിത്രം 12-ൽ കാണിച്ചിരിക്കുന്നു. ഇവിടെ ബോഡ് നിരക്ക് 115200bps ആണ്, പദ ദൈർഘ്യം 8-ബിറ്റ് ആണ്, സ്റ്റോപ്പ് ബിറ്റ് ദൈർഘ്യം 1-ബിറ്റ് ആണ്, പാരിറ്റി ഇല്ല.
    ചിത്രം 12. UART അടിസ്ഥാന കോൺഫിഗറേഷൻ
    അടിസ്ഥാന കോൺഫിഗറേഷൻ
  3. uart_module.h-ൽ പ്രഖ്യാപിച്ച API ഫംഗ്‌ഷനുകൾ ചിത്രം 13 കാണിക്കുന്നു file. API ഫംഗ്‌ഷനുകളുടെ ഫംഗ്‌ഷൻ, ഇൻപുട്ട് പാരാമീറ്ററുകൾ, ഉപയോഗം എന്നിവ ഇനിപ്പറയുന്ന പട്ടികകൾ വിശദീകരിക്കുന്നു.
    ചിത്രം 13. uart_module.h-ലെ API ഫംഗ്‌ഷൻ പ്രഖ്യാപനങ്ങൾ 
    API ഫംഗ്‌ഷൻ പ്രഖ്യാപനങ്ങൾ
പേര് അസാധുവായ UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue)
ഫംഗ്ഷൻ UART മൊഡ്യൂൾ സമാരംഭിക്കൽ
  ഇൻപുട്ട് CH UART ചാനൽ
pUART_Init UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ഘടന പോയിന്റർ
 uRxTimeOutValue UART RX FIFO ടൈം ഔട്ട് മൂല്യം. RX FIFO ന് പുതിയ ഡാറ്റ ലഭിക്കുമ്പോൾ കൗണ്ടർ പുനഃസജ്ജമാക്കുകയും പുനരാരംഭിക്കുകയും ചെയ്യും. കൌണ്ടർ പ്രീസെറ്റ് ടൈം-ഔട്ട് മൂല്യത്തിൽ എത്തുകയും അതിനനുസരിച്ചുള്ള ടൈം-ഔട്ട് ഇന്ററപ്റ്റ് പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്തുകഴിഞ്ഞാൽ, ഒരു ടൈം-ഔട്ട് ഇന്ററപ്റ്റ് സൃഷ്ടിക്കപ്പെടും.
 ഉപയോഗം UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//UART അടിസ്ഥാന കോൺഫിഗറേഷൻ നടപ്പിലാക്കുക//USART_InitStructure കോൺഫിഗറേഷനായി ചിത്രം 12 കാണുക
പേര് u32 UARTM_WriteByte(u32 CH, u8 uData)
ഫംഗ്ഷൻ UART മൊഡ്യൂൾ റൈറ്റ് ബൈറ്റ് ഓപ്പറേഷൻ (TX)
ഇൻപുട്ട് CH UART ചാനൽ
uData എഴുതേണ്ട ഡാറ്റ
ഔട്ട്പുട്ട് വിജയം വിജയിച്ചു
പിശക് പരാജയപ്പെട്ടു
ഉപയോഗം UARTM_WriteByte(UARTM_CH0, 'A'); //UART 1 ബൈറ്റ് എഴുതുന്നു – 'A'
പേര് u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength)
ഫംഗ്ഷൻ UART മൊഡ്യൂൾ റൈറ്റ് ഓപ്പറേഷൻ (TX)
 ഇൻപുട്ട് CH UART ചാനൽ
pBuffer ബഫർ പോയിന്റർ
uLength എഴുതേണ്ട ഡാറ്റയുടെ ദൈർഘ്യം
ഔട്ട്പുട്ട് വിജയം വിജയിച്ചു
പിശക് പരാജയപ്പെട്ടു
 ഉപയോഗം u8 ടെസ്റ്റ്[] = “ഇത് പരീക്ഷണമാണ്!\r\n”; UARTM_Write(UARTM_CH0, Test, sizeof(ടെസ്റ്റ്) -1); //UART pBuffer ഡാറ്റ എഴുതുന്നു
പേര് u32 UARTM_ReadByte(u32 CH, u8 *pData)
ഫംഗ്ഷൻ UART മൊഡ്യൂൾ റീഡ് ബൈറ്റ് ഓപ്പറേഷൻ (RX)
ഇൻപുട്ട് CH UART ചാനൽ
pData റീഡ് ഡാറ്റ സ്ഥാപിക്കുന്നതിനുള്ള വിലാസം
ഔട്ട്പുട്ട് വിജയം വിജയിച്ചു
പിശക് പരാജയപ്പെട്ടു (ഡാറ്റ ഇല്ല)
   ഉപയോഗം u8 TempData; എങ്കിൽ (UARTM_ReadByte(UARTM_CH0, &TempData) == വിജയം){UARTM_WriteByte(UARTM_CH0, TempData);}//UARTM_ReadByte() SUCCESS നൽകുകയാണെങ്കിൽ UART ഈ ഡാറ്റ ബൈറ്റ് എഴുതുന്നു
പേര് u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength)
ഫംഗ്ഷൻ UART മൊഡ്യൂൾ റീഡ് ഓപ്പറേഷൻ (RX)
 ഇൻപുട്ട് CH UART ചാനൽ
pBuffer ബഫർ പോയിന്റർ
uLength വായിക്കേണ്ട ഡാറ്റയുടെ ദൈർഘ്യം
ഔട്ട്പുട്ട് വായനയുടെ എണ്ണം ഡാറ്റയുടെ ദൈർഘ്യം വായിച്ചു
     ഉപയോഗം u8 ടെസ്റ്റ്2[10]; u32 ലെൻ; ലെൻ = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() 5 ബൈറ്റുകളുടെ ഡാറ്റ വായിക്കുകയും ഡാറ്റയെ Test2-ലേക്ക് സംഭരിക്കുകയും റീഡ് ബൈറ്റ് കൗണ്ട് നൽകുകയും ചെയ്യുന്നു ലെനിലേക്ക്//Test2-ൽ നിന്ന് ലഭിച്ച ഡാറ്റ എഴുതുക
പേര് u32 UARTM_GetReadBufferLength(u32 CH)
ഫംഗ്ഷൻ റീഡ് ബഫർ ലെങ്ത് (RX) നേടുക
ഇൻപുട്ട് CH UART ചാനൽ
ഔട്ട്പുട്ട് uLength ബഫർ ദൈർഘ്യം വായിക്കുക
  ഉപയോഗം UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART മൊഡ്യൂൾ സമാരംഭം അതേസമയം (UARTM_GetReadBufferLength(UARTM_CH0) <5);//UARTM_ReadBuffer ന് 5 ബൈറ്റ് ഡാറ്റ ലഭിക്കുന്നത് വരെ കാത്തിരിക്കുക
പേര് u32 UARTM_GetWriteBufferLength(u32 CH)
ഫംഗ്ഷൻ റൈറ്റ് ബഫർ ദൈർഘ്യം (TX) നേടുക
ഇൻപുട്ട് CH UART ചാനൽ
ഔട്ട്പുട്ട് uLength ബഫർ ദൈർഘ്യം എഴുതുക
പേര് u8 UARTM_IsTxFinished(u32 CH)
ഫംഗ്ഷൻ TX സ്റ്റാറ്റസ് നേടുക
ഇൻപുട്ട് CH UART ചാനൽ
ഔട്ട്പുട്ട് സത്യം TX നില: പൂർത്തിയായി
തെറ്റ് TX നില: പൂർത്തിയായിട്ടില്ല
      ഉപയോഗം UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 ആവശ്യമാണ് (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #മറ്റൊരിക്കൽ (1) #endif //മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, TX നില പരിശോധിക്കാൻ ഈ API ഉപയോഗിക്കാം; UARTM_WriteByte() API പൂർത്തിയാകുന്നതുവരെ കാത്തിരിക്കുക, അതായത്, TX സ്റ്റാറ്റസ് ശരിയാണ്, തുടർന്ന് തുടർന്നുള്ള പ്രവർത്തനങ്ങൾ തുടരുക.//uart_module.c-ലെ SVN പതിപ്പ് നമ്പർ 525 ആകുന്നതുവരെ ഈ ഫംഗ്‌ഷൻ ചേർക്കാത്തതിനാൽ ഒരു നിയന്ത്രണം ചേർത്തു.
പേര് ശൂന്യം UARTM_DiscardReadBuffer(u32 CH)
ഫംഗ്ഷൻ റീഡ് ബഫറിലെ ഡാറ്റ നിരസിക്കുക
ഇൻപുട്ട് CH UART ചാനൽ

API ഉപയോഗം Exampലെസ് 

ഈ വിഭാഗം API എഴുതുന്നതും വായിക്കുന്നതും പ്രദർശിപ്പിക്കുംamp"Module_UART" ആപ്ലിക്കേഷൻ കോഡിന്റെ les ഇനീഷ്യലൈസേഷൻ പ്രക്രിയയും "UART_Module_Ex" ഉപയോഗിച്ചുംample" ആപ്ലിക്കേഷൻ കോഡ് പ്രക്രിയ. API-കൾ ഉപയോഗിക്കുന്നതിന് മുമ്പ്, ഉപയോക്താക്കൾ API തലക്കെട്ട് ഉൾപ്പെടുത്തേണ്ടതുണ്ട് file പ്രധാന പ്രോഗ്രാം സോഴ്സ് കോഡിലേക്ക് file (#ഉൾപ്പെടെ "middleware/uart_module.h").

ചിത്രം 14-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ഇനീഷ്യേഷൻ പ്രക്രിയയിൽ പ്രവേശിക്കുമ്പോൾ, ആദ്യം UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ഘടന നിർവചിക്കുക. തുടർന്ന് BaudRate, WordLength, StopBits, Parity, Mode എന്നിവയുൾപ്പെടെയുള്ള UART അടിസ്ഥാന കോൺഫിഗറേഷൻ ഘടന അംഗങ്ങളെ കോൺഫിഗർ ചെയ്യുക. അവസാനമായി, API ഇനിഷ്യലൈസേഷൻ ഫംഗ്‌ഷനെ വിളിക്കുക, അതിന്റെ പൂർത്തീകരണം ഇനിഷ്യലൈസേഷൻ പ്രക്രിയയുടെ അവസാനത്തെ സൂചിപ്പിക്കുന്നു. ഇതിനുശേഷം ഉപയോക്താക്കൾക്ക് പ്രീസെറ്റ് UART അടിസ്ഥാന കോൺഫിഗറേഷൻ അടിസ്ഥാനമാക്കി എഴുത്തും വായനയും പ്രവർത്തനങ്ങൾ തുടരാനാകും.

ചിത്രം 14. ഇനീഷ്യലൈസേഷൻ ഫ്ലോചാർട്ട്
ഇനീഷ്യലൈസേഷൻ ഫ്ലോചാർട്ട്

“UART_Module_Example” ആപ്ലിക്കേഷൻ കോഡ് API റീഡ് ആൻഡ് റൈറ്റ് പ്രവർത്തനങ്ങൾ ഒരു ലൂപ്പ്ബാക്ക് രീതിയിൽ കാണിക്കുന്നു. ഇതിനായുള്ള ഫ്ലോചാർട്ട് ചിത്രം 15-ൽ കാണിച്ചിരിക്കുന്നു. ഉപയോഗിക്കുന്ന API ഫംഗ്ഷനുകളിൽ UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read(), UARTM_GetReadBufferLength() എന്നിവ ഉൾപ്പെടുന്നു. അവരുടെ വിവരണം "API വിവരണം" വിഭാഗത്തിൽ നൽകിയിരിക്കുന്നു.

ചിത്രം 15. എഴുത്തിന്റെയും വായനയുടെയും ഫ്ലോചാർട്ട് Exampലെസ്
എഴുത്തിന്റെയും വായനയുടെയും ഫ്ലോചാർട്ട് Exampലെസ്

"Module_UART" ഫോൾഡറിന് കീഴിൽ മറ്റൊരു "UART_Bridge" ആപ്ലിക്കേഷൻ കോഡ് ഉണ്ട് file വിവരണം "ഡയറക്‌ടറി ഘടന" വിഭാഗത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്നു. "UART_Bridge" ആപ്ലിക്കേഷൻ കോഡ് UART CH0, UART CH1 എന്നീ രണ്ട് UART ചാനലുകളെ സജീവമാക്കുന്നു, തുടർന്ന് COMMAND ഘടനകളായ gCMD1, gCMD2 എന്നിവയിലൂടെ രണ്ട് UART ഉപകരണങ്ങൾ തമ്മിലുള്ള ആശയവിനിമയ പ്രോട്ടോക്കോൾ ഇഷ്‌ടാനുസൃതമാക്കുന്നു. ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ ഇവ uart_bridge.c-ൽ നിർവചിച്ചിരിക്കുന്നു. UARTBridge_CMD1TypeDef gCMD1:

വേരിയബിൾ പേര് ടൈപ്പ് ചെയ്യുക വിവരണം
uHeader u8 തലക്കെട്ട്
uCmd u8 കമാൻഡ്
uData[3] u8 ഡാറ്റ

UARTBridge_CMD2TypeDef gCMD2:

വേരിയബിൾ പേര് ടൈപ്പ് ചെയ്യുക വിവരണം
uHeader u8 തലക്കെട്ട്
uCmdA u8 കമാൻഡ് എ
uCmdB u8 കമാൻഡ് ബി
uData[3] u8 ഡാറ്റ

“UART_Bridge” ആപ്ലിക്കേഷൻ കോഡിൽ, ഒരു കമാൻഡ് പാക്കറ്റായി ഡാറ്റ സ്വീകരിക്കുന്നതിന് gCMD1 ഉപയോഗിക്കുക, തുടർന്ന് അത് വിശകലനം ചെയ്യുക. തുടർന്ന് കസ്റ്റമൈസ്ഡ് കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ അനുസരിച്ച്, gCMD2 ഒരു പ്രതികരണ പാക്കറ്റായി സജ്ജീകരിച്ച് അത് ട്രാൻസ്മിറ്റ് ചെയ്യുക. ഇനിപ്പറയുന്നത് ഒരു മുൻ ആണ്ample ഒരു കമാൻഡ് പാക്കറ്റ് gCMD1) ഒരു പ്രതികരണ പാക്കറ്റും (gCMD2). കമാൻഡ് പാക്കറ്റ് (UARTBridge_CMD1TypeDef gCMD1):

ബൈറ്റ് 0 ബൈറ്റ് 1 ബൈറ്റ് 2 ~ ബൈറ്റ് 4
uHeader uCmd uData [3]
"എ" "1" "x, y, z"

പ്രതികരണ പാക്കറ്റ് (UARTBridge_CMD2TypeDef gCMD2):

ബൈറ്റ് 0 ബൈറ്റ് 1 ബൈറ്റ് 2 ബൈറ്റ് 3 ~ ബൈറ്റ് 5
uHeader uCmdA uCmdB uData [3]
"ബി" "എ" "1" "x, y, z"

റിസോഴ്സ് തൊഴിൽ
ഒരു മുൻ എന്ന നിലയിൽ HT32F52352 എടുക്കുന്നുample, UART മൊഡ്യൂൾ കൈവശപ്പെടുത്തിയിരിക്കുന്ന വിഭവങ്ങൾ താഴെ കാണിച്ചിരിക്കുന്നു.

HT32F52352
റോം വലിപ്പം 946 ബൈറ്റുകൾ
റാം വലിപ്പം 40*1 + 256*2 ബൈറ്റുകൾ

കുറിപ്പ്:

  1. ഒരൊറ്റ ചാനലിനുള്ള ഫ്ലാഗുകളും സ്റ്റാറ്റസും ഉൾപ്പെടെയുള്ള ഗ്ലോബൽ വേരിയബിളുകൾ 40 ബൈറ്റ് റാം ഉൾക്കൊള്ളുന്നു.
  2.  ഒരൊറ്റ ചാനൽ ഉപയോഗിക്കുന്നതും TX/RX ബഫർ വലുപ്പം 128/128 ബൈറ്റുകളുമുള്ള ഒരു അവസ്ഥയ്ക്കാണ് ഇത്. ആപ്ലിക്കേഷൻ ആവശ്യകതകൾക്കനുസരിച്ച് ബഫർ വലുപ്പം സജ്ജമാക്കാൻ കഴിയും.

പട്ടിക 4. ആപ്ലിക്കേഷൻ കോഡ് റിസോഴ്സ് തൊഴിൽ 

  • സമാഹരണ പരിസ്ഥിതി: MDK-Arm V5.36, ARMCC V5.06 അപ്‌ഡേറ്റ് 7 (ബിൽഡ് 960)
  • ഒപ്റ്റിമൈസ് ഓപ്ഷൻ: ലെവൽ 2 (-O2)

ഉപയോഗത്തിനുള്ള നിർദ്ദേശങ്ങൾ

ഈ അധ്യായം "Module_UART" ആപ്ലിക്കേഷൻ കോഡിനായുള്ള പാരിസ്ഥിതിക തയ്യാറെടുപ്പും സമാഹരണവും പരിശോധനാ ഘട്ടങ്ങളും അവതരിപ്പിക്കും.

പാരിസ്ഥിതിക തയ്യാറെടുപ്പ്
"Module_UART" ആപ്ലിക്കേഷൻ കോഡിന് ആവശ്യമായ ഹാർഡ്‌വെയറും സോഫ്‌റ്റ്‌വെയറും ചുവടെ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്നു.
പട്ടിക 5. ഹാർഡ്‌വെയർ/സോഫ്റ്റ്‌വെയർ പാരിസ്ഥിതിക തയ്യാറെടുപ്പ് 

ഹാർഡ്‌വെയർ/സോഫ്റ്റ്‌വെയർ എണ്ണുക കുറിപ്പ്
സ്റ്റാർട്ടർ കിറ്റ് 1 ഈ ആപ്ലിക്കേഷൻ കുറിപ്പ് ഒരു മുൻ എന്ന നിലയിൽ HT32F52352 സ്റ്റാർട്ടർ കിറ്റ് ഉപയോഗിക്കുന്നുample
USB കേബിൾ 1 മൈക്രോ യുഎസ്ബി, പിസിയിലേക്ക് കണക്‌റ്റ് ചെയ്‌തു
അപേക്ഷാ കോഡ് ഡൗൺലോഡ് പാത, file ഡയറക്‌ടറി കോൺഫിഗറേഷനും "റിസോഴ്‌സ് ഡൗൺലോഡും തയ്യാറാക്കലും" വിഭാഗത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്നു.പാത്ത്: "\\application\Module_UART\UART_Module_Exampലെ"
ടെറ ടേം "ടെർമിനൽ സോഫ്റ്റ്വെയർ" വിഭാഗം കാണുക
കെയിൽ ഐഡിഇ കെയിൽ uVision V5.xx

ആദ്യം, UART ആപ്ലിക്കേഷൻ ആമുഖത്തിനായി e-Link32 Lite-ന്റെ വെർച്വൽ COM പോർട്ട് (VCP) ഫംഗ്‌ഷനുമായി ചേർന്ന് HT52352F32 സ്റ്റാർട്ടർ കിറ്റ് ഉപയോഗിക്കുക. ഇതിന് ഇനിപ്പറയുന്ന പാരിസ്ഥിതിക തയ്യാറെടുപ്പുകൾ നടപ്പിലാക്കേണ്ടതുണ്ട്:

  1. ബോർഡിൽ രണ്ട് യുഎസ്ബി ഇന്റർഫേസുകൾ ഉണ്ട്. ചിത്രം 32-(a)-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ബോർഡിലെ പിസിയും eLink16 Lite ഇന്റർഫേസും ബന്ധിപ്പിക്കാൻ USB കേബിൾ ഉപയോഗിക്കുക.
  2. ആപ്ലിക്കേഷൻ കോഡിന് e-Link32 Lite Virtual COM പോർട്ട് (VCP) ഫംഗ്‌ഷൻ ഉപയോഗിക്കേണ്ടതിനാൽ, UART ജമ്പർ-J2*2-ന്റെ PAx*1, DAP_Tx എന്നിവ ഒരു ജമ്പർ ഉപയോഗിച്ച് ഷോർട്ട് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. J2 സ്ഥാനം ചിത്രം 16-(b) സൂചിപ്പിക്കുന്നു.

കുറിപ്പ്

  1. സ്റ്റാർട്ടർ കിറ്റിലെ J2-ന് രണ്ട് ഓപ്ഷനുകളുണ്ട്, PAx, DAP_Tx ഷോർട്ട്ഡ് അല്ലെങ്കിൽ PAx, RS232_Tx എന്നിവ. വിശദമായ ക്രമീകരണ പ്രവർത്തനങ്ങൾക്കായി സ്റ്റാർട്ടർ കിറ്റ് ഉപയോക്തൃ മാനുവൽ കാണുക.
  2. വ്യത്യസ്ത സ്റ്റാർട്ടർ കിറ്റുകളിലെ MCU UART RX പിൻ ലൊക്കേഷൻ വ്യത്യസ്തമാണ്. ഈ മുൻampRX പിൻ സൂചിപ്പിക്കാൻ le PAx ഉപയോഗിക്കുന്നു.

ചിത്രം 16. HT32 സ്റ്റാർട്ടർ കിറ്റ് ബ്ലോക്ക് ഡയഗ്രം
കിറ്റ് ബ്ലോക്ക് ഡയഗ്രം

ഇപ്പോൾ UART ആപ്ലിക്കേഷൻ ആമുഖത്തിനായി e-Link32 Pro-യുടെ വെർച്വൽ COM പോർട്ട് (VCP) ഫംഗ്‌ഷനുമായി സംയോജിപ്പിച്ചിരിക്കുന്ന ഉപയോക്തൃ ടാർഗെറ്റ് ബോർഡ് ഉപയോഗിക്കുക. ഇതിന് ഇനിപ്പറയുന്ന പാരിസ്ഥിതിക തയ്യാറെടുപ്പുകൾ നടപ്പിലാക്കേണ്ടതുണ്ട്:

  1. ഇ-ലിങ്ക് 32 പ്രോയുടെ ഒരു വശം ഒരു മിനി യുഎസ്ബി കേബിൾ ഉപയോഗിച്ച് ഒരു പിസിയിലേക്ക് കണക്റ്റുചെയ്‌തിരിക്കുന്നു, മറുവശം അതിന്റെ 10-ബിറ്റ് ഗ്രേ കേബിൾ വഴി ഉപയോക്തൃ ടാർഗെറ്റ് ബോർഡുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. ചിത്രം 17-(എ) ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, കേബിളിന്റെയും ടാർഗെറ്റ് ബോർഡിന്റെയും SWD ഇന്റർഫേസുകൾ തമ്മിലുള്ള ബന്ധം Dupont ലൈനുകൾ ഉപയോഗിച്ച് നടപ്പിലാക്കുന്നു.
  2. പിൻ#32 VCOM_RXD, പിൻ#7-VCOM_TXD എന്നിവയാണ് ഇ-ലിങ്ക്8 പ്രോയുടെ സീരിയൽ കമ്മ്യൂണിക്കേഷൻ പിന്നുകൾ. ചിത്രം 17-(b)-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ഉപയോക്തൃ ടാർഗെറ്റ് ബോർഡിന്റെ TX, RX പിൻകളുമായി ഇവ ബന്ധിപ്പിച്ചിരിക്കണം.
    ചിത്രം 17. ഇ-ലിങ്ക്32 പ്രോ + യൂസർ ടാർഗറ്റ് ബോർഡ് ബ്ലോക്ക് ഡയഗ്രം
    ഉപയോക്തൃ ടാർഗെറ്റ് ബോർഡ്

സമാഹരണവും പരിശോധനയും
ഈ വിഭാഗം “അപ്ലിക്കേഷൻ\Module_UART\UART_Module_Ex എടുക്കുംample” ഒരു മുൻ ആയിampസമാഹാരവും പരീക്ഷണ പ്രക്രിയകളും പരിചയപ്പെടുത്താൻ le. ഇതിന് മുമ്പ്, മുൻ വിഭാഗത്തിൽ വിവരിച്ച എല്ലാ തയ്യാറെടുപ്പുകളും നടപ്പിലാക്കിയിട്ടുണ്ടെന്നും ടെറ ടെർമിനൽ സോഫ്‌റ്റ്‌വെയർ ഡൗൺലോഡ് ചെയ്‌തിട്ടുണ്ടെന്നും ഉറപ്പാക്കുക.

വിശദമായ പ്രവർത്തന ഘട്ടങ്ങൾ ചുവടെ സംഗ്രഹിച്ചിരിക്കുന്നു.
ഘട്ടം 1. പവർ-ഓൺ ടെസ്റ്റ്

മുമ്പത്തെ വിഭാഗത്തിൽ വിവരിച്ചതുപോലെ ഹാർഡ്‌വെയർ എൻവയോൺമെന്റ് സജ്ജീകരിക്കുക. പവർ-ഓണിനുശേഷം, സ്റ്റാർട്ടർ കിറ്റിന്റെ താഴെ ഇടതുവശത്തുള്ള D9 പവർ എൽഇഡി പ്രകാശിക്കും. മുകളിൽ വലതുവശത്തുള്ള e-Link1 Lite-ലെ D32 USB LED, USB എണ്ണൽ പൂർത്തിയായതിന് ശേഷം പ്രകാശിക്കും. വളരെക്കാലം കഴിഞ്ഞ് D1 പ്രകാശിക്കുന്നില്ലെങ്കിൽ, USB കേബിളിന് ആശയവിനിമയം നടത്താൻ കഴിയുമോ എന്ന് സ്ഥിരീകരിക്കുക. ഇല്ലെങ്കിൽ, അത് നീക്കം ചെയ്‌ത് വീണ്ടും ചേർക്കുക.

ഘട്ടം 2. ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കുക
ആപ്ലിക്കേഷൻ\Module_UART\UART_Module_Ex തുറക്കുകample ഫോൾഡറിൽ, _CreateProject.bat ക്ലിക്ക് ചെയ്യുക file ചിത്രം 18-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു പ്രോജക്‌റ്റ് സൃഷ്‌ടിക്കാൻ. ഈ അപ്ലിക്കേഷൻ കുറിപ്പ് HT32F52352 സ്റ്റാർട്ടർ കിറ്റ് ഉപയോഗിക്കുന്നതിനാൽ, MDK_ARMv52352 ഫോൾഡറിന് കീഴിലുള്ള Keil IDE പ്രോജക്റ്റ് “Project_5.uvprojx” തുറക്കുക.

ചിത്രം 18. പ്രൊജക്റ്റ് ജനറേറ്റ് ചെയ്യുന്നതിന് _CreateProject.bat എക്സിക്യൂട്ട് ചെയ്യുക
പ്രോജക്റ്റ് സൃഷ്ടിക്കുക

ഘട്ടം 3. കംപൈൽ ചെയ്ത് പ്രോഗ്രാം ചെയ്യുക
പ്രോജക്റ്റ് തുറന്നതിന് ശേഷം, ആദ്യം "ബിൽഡ്" എന്നതിൽ ക്ലിക്കുചെയ്യുക (അല്ലെങ്കിൽ "F7" കുറുക്കുവഴി ഉപയോഗിക്കുക), തുടർന്ന് "ഡൗൺലോഡ്" ക്ലിക്കുചെയ്യുക (അല്ലെങ്കിൽ "F8" കുറുക്കുവഴി ഉപയോഗിക്കുക). ഇതിനുശേഷം, ബിൽഡ് ഔട്ട്പുട്ട് വിൻഡോയിൽ ബിൽഡ്, ഡൗൺലോഡ് ഫലങ്ങൾ പ്രദർശിപ്പിക്കും. ചിത്രം 19 കാണുക.

ചിത്രം 19. ഫലങ്ങൾ നിർമ്മിക്കുകയും ഡൗൺലോഡ് ചെയ്യുകയും ചെയ്യുക
ഫലങ്ങൾ നിർമ്മിക്കുകയും ഡൗൺലോഡ് ചെയ്യുകയും ചെയ്യുക

ഘട്ടം 4. Tera Term സോഫ്റ്റ്‌വെയർ തുറന്ന് സീരിയൽ പോർട്ട് കോൺഫിഗർ ചെയ്യുക
Tera Term സോഫ്റ്റ്‌വെയറും COM പോർട്ടും തുറക്കുക. സ്റ്റാർട്ടർ കിറ്റ് സൃഷ്ടിച്ച COM പോർട്ട് നമ്പർ ശരിയാണോ അല്ലയോ എന്ന് ശ്രദ്ധിക്കുക. തുടർന്ന് കോൺഫിഗറേഷൻ ഇന്റർഫേസിൽ പ്രവേശിക്കാൻ "സെറ്റപ്പ് >> സീരിയൽ പോർട്ട്" ക്ലിക്ക് ചെയ്യുക. "Module_UART" ആപ്ലിക്കേഷൻ കോഡിന്റെ UART ഇന്റർഫേസ് കോൺഫിഗറേഷൻ "ടെർമിനൽ സോഫ്റ്റ്‌വെയർ" വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു. സജ്ജീകരണ ഫലം ചിത്രം 20 ൽ കാണിച്ചിരിക്കുന്നു.

ചിത്രം 20. ടെറ ടേം സീരിയൽ പോർട്ട് സെറ്റപ്പ് ഫലം
സജ്ജീകരണ ഫലം
ഘട്ടം 5. സിസ്റ്റം റീസെറ്റ് ചെയ്ത് ടെസ്റ്റ് ചെയ്യുക
SK റീസെറ്റ് കീ അമർത്തുക - B1 റീസെറ്റ്. ഇതിനുശേഷം, "എബിസി ഇത് പരീക്ഷയാണ്!" സന്ദേശം ആയിരിക്കും
API വഴി കൈമാറുകയും ചിത്രം 21-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ Tera ടേം വിൻഡോയിൽ പ്രദർശിപ്പിക്കുകയും ചെയ്യും. സ്വീകരിക്കുന്ന പ്രവർത്തനത്തെ സംബന്ധിച്ച്, Tera ടേം വിൻഡോയിൽ ഡാറ്റ നൽകുമ്പോൾ, സ്വീകരിക്കുന്ന ബഫർ ദൈർഘ്യം നിർണ്ണയിക്കാൻ പ്രസക്തമായ API ഉപയോഗിക്കും. പിസിക്ക് ലഭിക്കുന്ന ഡാറ്റ 5 ബൈറ്റുകളിൽ എത്തുമ്പോൾ, ലഭിച്ച 5 ബൈറ്റ് ഡാറ്റ തുടർച്ചയായി അയയ്‌ക്കും. ചിത്രം 22-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, തുടർച്ചയായി നൽകിയ ഡാറ്റ "1, 2, 3, 4, 5" ആണ്, അത് API വഴി സ്വീകരിക്കുകയും നിർണ്ണയിക്കുകയും ചെയ്യുന്നു. ഇതിനുശേഷം, അഞ്ച് ഇൻപുട്ടുകൾക്ക് ശേഷം "1, 2, 3, 4, 5" ഡാറ്റ പ്രിന്റ് ചെയ്യപ്പെടും.

ചിത്രം 21. "Module_UART" ആപ്ലിക്കേഷൻ കോഡ് ഫങ്ഷണൽ ടെസ്റ്റ് - ട്രാൻസ്മിറ്റ്
ആപ്ലിക്കേഷൻ കോഡ് ഫങ്ഷണൽ ടെസ്റ്റ്

ചിത്രം 22. "Module_UART" ആപ്ലിക്കേഷൻ കോഡ് ഫങ്ഷണൽ ടെസ്റ്റ് - സ്വീകരിക്കുക
ആപ്ലിക്കേഷൻ കോഡ് ഫങ്ഷണൽ ടെസ്റ്റ്

ട്രാൻസ്പ്ലാൻറ് നിർദ്ദേശങ്ങൾ
ഉപയോക്താവിന്റെ പ്രോജക്റ്റുകളിലേക്ക് API-കൾ എങ്ങനെ സംയോജിപ്പിക്കാമെന്ന് ഈ വിഭാഗം പരിചയപ്പെടുത്തും.
ഘട്ടം 1. uart_module.c ചേർക്കുക file പദ്ധതിയിലേക്ക്. യൂസർ ഫോൾഡറിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുക. "നിലവിലുള്ളത് ചേർക്കുക" തിരഞ്ഞെടുക്കുക Fileഗ്രൂപ്പ് 'ഉപയോക്താവ്'...", തുടർന്ന് uart_module.c തിരഞ്ഞെടുക്കുക file ചിത്രം 23-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ "ചേർക്കുക" എന്നതിൽ ക്ലിക്ക് ചെയ്യുക. ഇതിനായി "ഡയറക്‌ടറി ഘടന" വിഭാഗം കാണുക. file പാത വിവരണം.

ചിത്രം 23. uart_module.c ചേർക്കുക File പദ്ധതിയിലേക്ക്
File പദ്ധതിയിലേക്ക്

ഘട്ടം 2. ring_buffer.c ചേർക്കുക file പദ്ധതിയിലേക്ക്. യൂസർ ഫോൾഡറിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുക. "നിലവിലുള്ളത് ചേർക്കുക" തിരഞ്ഞെടുക്കുക Fileഗ്രൂപ്പ് 'ഉപയോക്താവ്'...", തുടർന്ന് ring_buffer.c തിരഞ്ഞെടുക്കുക file ചിത്രം 24-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ "ചേർക്കുക" ക്ലിക്ക് ചെയ്യുക.\ "ഡയറക്‌ടറി ഘടന" എന്ന വിഭാഗം കാണുക file പാത വിവരണം.
ചിത്രം 24. ring_buffer.c ചേർക്കുക File പദ്ധതിയിലേക്ക് 
File പദ്ധതിയിലേക്ക്

ഘട്ടം 3. API തലക്കെട്ട് ഉൾപ്പെടുത്തുക file ചിത്രം 25-ൽ കാണിച്ചിരിക്കുന്നത് പോലെ main.c യുടെ തുടക്കത്തിലേക്ക്. (Ext: #include “middleware/uart_module.h”)
ചിത്രം 25. API തലക്കെട്ട് ഉൾപ്പെടുത്തുക File main.c ലേക്ക്
API തലക്കെട്ട് ഉൾപ്പെടുത്തുക File

ഘട്ടം 4. ht32_board_config.h ഉപയോഗിച്ച് UART ആശയവിനിമയത്തിന് ആവശ്യമായ ക്രമീകരണങ്ങൾ നടപ്പിലാക്കുക file. "സെറ്റിംഗ് ഡിസ്ക്രിപ്ഷൻ", "സെറ്റിംഗ് മോഡിഫിക്കേഷനും പതിവുചോദ്യങ്ങളും" എന്നീ വിഭാഗങ്ങളിൽ ഇത് വിശദമായി അവതരിപ്പിച്ചിരിക്കുന്നു.

ക്രമീകരണം പരിഷ്ക്കരണവും പതിവുചോദ്യങ്ങളും 

ഈ വിഭാഗം UART ക്രമീകരണങ്ങൾ എങ്ങനെ പരിഷ്‌ക്കരിക്കാമെന്നും ഉപയോഗിക്കുമ്പോൾ നേരിടുന്ന ചില പൊതുവായ ചോദ്യങ്ങൾ വിശദീകരിക്കും.

UART പിൻ അസൈൻമെന്റ് മാറ്റുക 

  1. HT32F52352 ഡാറ്റാഷീറ്റ് "പിൻ അസൈൻമെന്റ്" അദ്ധ്യായം പരാമർശിച്ച്, ഉപകരണ തരത്തിന്റെ AFIO ഫംഗ്‌ഷനുകൾ ലിസ്റ്റുചെയ്യുന്ന ഇതര ഫംഗ്ഷൻ മാപ്പിംഗ് പട്ടിക നോക്കുക. UART പ്രസക്തമായ പിന്നുകൾക്കായി, ചിത്രം 6-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ "AF26 USART/UART" കോളം കാണുക.
    ചിത്രം 26. HT32F52352 ഇതര ഫംഗ്ഷൻ മാപ്പിംഗ് പട്ടിക
    ഇതര ഫംഗ്ഷൻ മാപ്പിംഗ് പട്ടിക
  2. മുകളിലുള്ള പട്ടിക ഉപയോഗിച്ച് അനുബന്ധ UART പിന്നുകൾ കണ്ടെത്തുന്നതിന് ഈ ഘട്ടം ഉപയോക്താക്കളെ നയിക്കും. HT32F52352 മുൻample സ്ഥിരസ്ഥിതി ചാനലായി USART1 ഉപയോഗിക്കുന്നു. ഇവിടെ, TX, RX പിന്നുകൾ USR1_TX, USR1_RX എന്നിവയാണ്, അവ യഥാക്രമം PA4, PA5 എന്നിവയിൽ സ്ഥിതിചെയ്യുന്നു. ചിത്രം 27 പിൻ കത്തിടപാടുകളും "ht32_board_config.h" ലെ പിൻ നിർവചനങ്ങളും കാണിക്കുന്നു. പിൻ അസൈൻമെന്റ് ടേബിളിലെ "പാക്കേജിന്റെ" ശൂന്യമായ ഫീൽഡുകൾ അർത്ഥമാക്കുന്നത് ഈ പാക്കേജിൽ പ്രസക്തമായ GPIO-കൾ ഇല്ല എന്നാണ്. UART പിന്നുകൾ പരിഷ്‌ക്കരിക്കുന്നതിന്, ടാർഗെറ്റ് പിൻ ലൊക്കേഷനുകൾ കണ്ടെത്തി “ht32_board_config.h” ഉപയോഗിച്ച് പിന്നുകൾ വീണ്ടും നിർവചിക്കുക. file.
    ചിത്രം 27. പിൻ കറസ്‌പോണ്ടൻസും സെറ്റിംഗ് മോഡിഫിക്കേഷനും
    ക്രമീകരണ പരിഷ്ക്കരണം

ഒരു UART ചാനൽ ചേർക്കുക
ഒരു മുൻ എന്ന നിലയിൽ HT32F52352 HTCFG_UARTM_CH1 എടുക്കുന്നുample, ഒരു പുതിയ UART ചാനൽ എങ്ങനെ ചേർക്കാമെന്ന് ഇവിടെ വിവരിക്കുന്നു.

ht32_board_config.h പരിഷ്ക്കരിക്കുക file
HT32F52352 ഡാറ്റാഷീറ്റ് "പിൻ അസൈൻമെന്റ്" അദ്ധ്യായം പരാമർശിച്ച്, ഉപകരണ തരത്തിന്റെ AFIO ഫംഗ്‌ഷനുകൾ ലിസ്റ്റുചെയ്യുന്ന ഇതര ഫംഗ്ഷൻ മാപ്പിംഗ് പട്ടിക നോക്കുക. USART1 എന്നത് HTCFG_UARTM_CH0 ആയി ഉപയോഗിച്ചിരിക്കുന്നതിനാൽ, പുതുതായി ചേർത്ത HTCFG_UARTM_CH1 ന് USART0 തിരഞ്ഞെടുക്കാനാകും. ഇവിടെ, TX, RX എന്നിവ യഥാക്രമം PA2, PA3 എന്നിവയിൽ സ്ഥിതി ചെയ്യുന്നു, ചിത്രം 28-ന്റെ മുകളിലെ പകുതിയിൽ കാണിച്ചിരിക്കുന്നത് പോലെ. ചിത്രത്തിലെ ചുവന്ന ഡോട്ടുള്ള ബോക്‌സിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ht120_board_config.h-ലെ 126~32 കോഡ് ലൈനുകൾ ഉപയോഗിച്ചാണ് അനുബന്ധ പരിഷ്‌ക്കരണങ്ങൾ നടപ്പിലാക്കുന്നത്. 28.

ചിത്രം 28. ഒരു UART ചാനൽ ചേർക്കുക
UART ചാനൽ

പതിവുചോദ്യങ്ങൾ
Q: കംപൈലേഷൻ ആൻഡ് ടെസ്റ്റ് വിഭാഗത്തിന്റെ അഞ്ചാം ഘട്ടത്തിൽ, ട്രാൻസ്മിറ്റ് ഫങ്ഷണൽ ടെസ്റ്റ് സാധാരണമാണ്. ഇവിടെ, "എബിസി ഇത് പരീക്ഷയാണ്!" സന്ദേശം വിജയകരമായി പ്രദർശിപ്പിച്ചിരിക്കുന്നു, എന്നിരുന്നാലും സ്വീകരിക്കുന്ന ഫംഗ്‌ഷനുവേണ്ടി, എന്തുകൊണ്ടാണ് അഞ്ച് ഇൻപുട്ട് മൂല്യങ്ങൾ തിരികെ നൽകാത്തതും പ്രദർശിപ്പിക്കാത്തതും?
A: UART ജമ്പർ-J2-ന്റെ MCU UART RX, DAP_Tx പിൻ എന്നിവ ഒരു ജമ്പർ ഉപയോഗിച്ച് ഷോർട്ട് ചെയ്തിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുക. "Module_UART" ആപ്ലിക്കേഷൻ കോഡിന് e-Link32 Lite-ന്റെ വെർച്വൽ COM പോർട്ട് (VCP) ഉപയോഗിക്കേണ്ടതിനാൽ, ചിത്രം 2-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, UART ജമ്പർ-J29-ന്റെ ഇടത് രണ്ട് പിന്നുകളിൽ ഷോർട്ട് സർക്യൂട്ട് ക്രമീകരണം പ്രയോഗിക്കണം.

ചിത്രം 29. UART ജമ്പർ-ജെ2 ക്രമീകരണം
UART ജമ്പർ

ചോദ്യം: ശേഷം "ബിൽഡ്" (അല്ലെങ്കിൽ കുറുക്കുവഴി "F7") എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, ഫേംവെയർ ലൈബ്രറി പതിപ്പ് ആവശ്യമുള്ളതിനേക്കാൾ പഴയതാണെന്ന് സൂചിപ്പിക്കുന്ന ഒരു പിശക് സന്ദേശം ദൃശ്യമാകുന്നു? ചിത്രം 30 കാണുക.
A: "Module_UART" ആപ്ലിക്കേഷൻ കോഡ് നടപ്പിലാക്കുന്നതിന് uart_module.c/h ഉൾപ്പെടുത്തേണ്ടതുണ്ട് files-ന് ഒരു നിശ്ചിത ഫേംവെയർ ലൈബ്രറി പതിപ്പിന്റെ ആവശ്യകതയുണ്ട്. അത്തരം ഒരു പിശക് സന്ദേശം ദൃശ്യമാകുമ്പോൾ, നിലവിൽ ഉപയോഗിക്കുന്ന ഫേംവെയർ ലൈബ്രറി പഴയ പതിപ്പാണെന്നാണ് അർത്ഥമാക്കുന്നത്. അതിനാൽ "ഫേംവെയർ ലൈബ്രറി" വിഭാഗത്തിൽ നൽകിയിരിക്കുന്ന ലിങ്ക് വഴി ഏറ്റവും പുതിയ പതിപ്പ് ഡൗൺലോഡ് ചെയ്യേണ്ടത് ആവശ്യമാണ്.

ചിത്രം 30. ഫേംവെയർ ലൈബ്രറി പതിപ്പ് പിശക് സന്ദേശം
പതിപ്പ് പിശക് സന്ദേശം

ഉപസംഹാരം

"Module_UART" ആപ്ലിക്കേഷൻ കോഡും UART കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോളും നന്നായി മനസ്സിലാക്കാൻ ഉപയോക്താക്കളെ സഹായിക്കുന്നതിന് ഈ പ്രമാണം ഒരു അടിസ്ഥാന ആമുഖം നൽകിയിട്ടുണ്ട്. തുടർന്ന് റിസോഴ്സ് ഡൗൺലോഡും തയ്യാറെടുപ്പും നടന്നു. പ്രവർത്തന വിവരണ അദ്ധ്യായം അവതരിപ്പിച്ചു file ഡയറക്ടറി ഘടന, API ആർക്കിടെക്ചർ, API വിവരണം, API ഉപയോഗം എന്നിവampലെസ്. ഉപയോഗത്തിനുള്ള നിർദ്ദേശങ്ങൾ എന്ന അധ്യായം "Module_UART" ആപ്ലിക്കേഷൻ കോഡിന്റെ പാരിസ്ഥിതിക തയ്യാറെടുപ്പ്, സമാഹരണം, പരിശോധന എന്നിവ പ്രദർശിപ്പിച്ചു. കോഡ് ട്രാൻസ്പ്ലാൻറ്, മോഡിഫിക്കേഷൻ ക്രമീകരണം എന്നിവയ്‌ക്കുള്ള നിർദ്ദേശങ്ങളും അതുപോലെ നേരിട്ടേക്കാവുന്ന ചില പൊതുവായ പ്രശ്‌നങ്ങൾ വിശദീകരിക്കുന്നതും ഇത് നൽകി. ഇവയെല്ലാം സംയോജിപ്പിച്ച് എപിഐകൾ എങ്ങനെ ഉപയോഗിക്കണമെന്ന് വേഗത്തിൽ മനസ്സിലാക്കാനും തുടർന്ന് ആരംഭിക്കാനുള്ള സമയം കുറയ്ക്കാനും ഉപയോക്താക്കളെ അനുവദിക്കും.

റഫറൻസ് മെറ്റീരിയൽ

കൂടുതൽ വിവരങ്ങൾക്ക്, Holtek കാണുക webസൈറ്റ്: www.holtek.com

പതിപ്പുകളും പരിഷ്ക്കരണ വിവരങ്ങളും

തീയതി രചയിതാവ് റിലീസ് പരിഷ്ക്കരണ വിവരം
2022.04.30 蔡期育(ചി-യു സായ്) V1.00 ആദ്യ പതിപ്പ്

നിരാകരണം

എല്ലാ വിവരങ്ങളും, വ്യാപാരമുദ്രകളും, ലോഗോകളും, ഗ്രാഫിക്സും, വീഡിയോകളും, ഓഡിയോ ക്ലിപ്പുകളും, ലിങ്കുകളും മറ്റ് ഇനങ്ങളും ഇതിൽ ദൃശ്യമാകുന്നു webസൈറ്റ് ('വിവരങ്ങൾ') റഫറൻസിനായി മാത്രമുള്ളതാണ് കൂടാതെ മുൻകൂർ അറിയിപ്പ് കൂടാതെ ഹോൾടെക് സെമികണ്ടക്റ്റർ ഇൻ‌കോർപ്പറേഷന്റെയും അതുമായി ബന്ധപ്പെട്ട കമ്പനികളുടെയും (ഇനിമുതൽ 'ഹോൾടെക്', 'കമ്പനി', 'ഞങ്ങൾ', 'എപ്പോൾ വേണമെങ്കിലും മാറ്റത്തിന് വിധേയമാണ്. ഞങ്ങൾ' അല്ലെങ്കിൽ 'ഞങ്ങളുടെ'). ഹോൾടെക് ഇതിനെക്കുറിച്ചുള്ള വിവരങ്ങളുടെ കൃത്യത ഉറപ്പാക്കാൻ ശ്രമിക്കുന്നു webസൈറ്റിൽ, വിവരങ്ങളുടെ കൃത്യതയ്ക്ക് ഹോൾടെക് എക്സ്പ്രസ് അല്ലെങ്കിൽ സൂചനയുള്ള വാറന്റി നൽകുന്നില്ല. ഏതെങ്കിലും തെറ്റായ അല്ലെങ്കിൽ ചോർച്ചയ്ക്ക് ഹോൾടെക്ക് ഒരു ഉത്തരവാദിത്തവും വഹിക്കില്ല.
ഇതിന്റെ ഉപയോഗത്തിലോ അതുമായി ബന്ധപ്പെട്ടോ ഉണ്ടാകുന്ന ഏതെങ്കിലും നാശനഷ്ടങ്ങൾക്ക് (കമ്പ്യൂട്ടർ വൈറസ്, സിസ്റ്റം പ്രശ്നങ്ങൾ അല്ലെങ്കിൽ ഡാറ്റ നഷ്ടം എന്നിവയുൾപ്പെടെ എന്നാൽ അതിൽ മാത്രം പരിമിതപ്പെടുത്തിയിട്ടില്ല) Holtek ബാധ്യസ്ഥനായിരിക്കില്ല. webഏതെങ്കിലും പാർട്ടിയുടെ സൈറ്റ്. ഈ പ്രദേശത്ത് നിങ്ങളെ സന്ദർശിക്കാൻ അനുവദിക്കുന്ന ലിങ്കുകൾ ഉണ്ടായിരിക്കാം webമറ്റ് കമ്പനികളുടെ സൈറ്റുകൾ.
ഇവ webസൈറ്റുകൾ ഹോൾടെക്കിന്റെ നിയന്ത്രണത്തിലല്ല. അത്തരം സൈറ്റുകളിൽ പ്രദർശിപ്പിക്കുന്ന ഏത് വിവരത്തിനും ഹോൾടെക് ഒരു ഉത്തരവാദിത്തവും ഗ്യാരണ്ടിയും വഹിക്കില്ല. മറ്റുള്ളവയിലേക്ക് ഹൈപ്പർലിങ്കുകൾ webസൈറ്റുകൾ നിങ്ങളുടെ സ്വന്തം ഉത്തരവാദിത്തത്തിലാണ്.

ബാധ്യതയുടെ പരിമിതി

ഇതിലേക്കുള്ള നിങ്ങളുടെ ആക്‌സസ് അല്ലെങ്കിൽ ഉപയോഗവുമായി ബന്ധപ്പെട്ട് നേരിട്ടോ അല്ലാതെയോ ഉണ്ടായേക്കാവുന്ന ഏതെങ്കിലും തരത്തിലുള്ള നഷ്ടത്തിനോ നാശത്തിനോ ഹോൾടെക് ലിമിറ്റഡ് മറ്റേതെങ്കിലും കക്ഷിക്ക് ബാധ്യസ്ഥനായിരിക്കില്ല. webസൈറ്റ്, അതിലെ ഉള്ളടക്കം അല്ലെങ്കിൽ ഏതെങ്കിലും സാധനങ്ങൾ, മെറ്റീരിയലുകൾ അല്ലെങ്കിൽ സേവനങ്ങൾ.

ഭരണ നിയമം
എന്നതിൽ അടങ്ങിയിരിക്കുന്ന നിരാകരണം webറിപ്പബ്ലിക് ഓഫ് ചൈനയുടെ നിയമങ്ങൾക്കനുസൃതമായി സൈറ്റ് നിയന്ത്രിക്കപ്പെടുകയും വ്യാഖ്യാനിക്കുകയും ചെയ്യും. റിപ്പബ്ലിക് ഓഫ് ചൈന കോടതികളുടെ എക്‌സ്‌ക്ലൂസീവ് അല്ലാത്ത അധികാരപരിധിയിലേക്ക് ഉപയോക്താക്കൾ സമർപ്പിക്കും.

നിരാകരണത്തിന്റെ അപ്ഡേറ്റ്
മുൻകൂർ അറിയിപ്പോടെയോ അല്ലാതെയോ എപ്പോൾ വേണമെങ്കിലും നിരാകരണം അപ്‌ഡേറ്റ് ചെയ്യാനുള്ള അവകാശം Holtek-ൽ നിക്ഷിപ്‌തമാണ്, എല്ലാ മാറ്റങ്ങളും പോസ്റ്റുചെയ്യുമ്പോൾ ഉടനടി പ്രാബല്യത്തിൽ വരും. webസൈറ്റ്.

പ്രമാണങ്ങൾ / വിഭവങ്ങൾ

HOLTEK HT32 MCU UART അപേക്ഷാ കുറിപ്പ് [pdf] ഉപയോക്തൃ മാനുവൽ
HT32 MCU, UART ആപ്ലിക്കേഷൻ കുറിപ്പ്, HT32 MCU UART, അപേക്ഷ കുറിപ്പ്, HT32, MCU UART അപേക്ഷ കുറിപ്പ്, HT32 MCU UART അപേക്ഷ കുറിപ്പ്

റഫറൻസുകൾ

ഒരു അഭിപ്രായം ഇടൂ

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ അടയാളപ്പെടുത്തി *