HOLTEK HT32 MCU UART अनुप्रयोग नोट प्रयोगकर्ता पुस्तिका
HOLTEK HT32 MCU UART आवेदन नोट

परिचय

युनिभर्सल एसिन्क्रोनस रिसीभर/ट्रान्समिटर - UART एक व्यापक रूपमा प्रयोग हुने सिरियल ट्रान्समिशन इन्टरफेस हो जसले लचिलो एसिन्क्रोनस पूर्ण-डुप्लेक्स डाटा ट्रान्समिशन प्रदान गर्दछ। यस एप्लिकेसन नोटमा प्रदान गरिएको "Module_UART" एप्लिकेसन कोडले सफ्टवेयर रिंग बफरहरूसँग TX/RX अवरोधहरू प्रयोग गर्दछ सरल UART ट्रान्समिट/प्राप्त कार्यहरू API मार्फत कार्यान्वयन गर्न, जसको सम्बन्धित कार्यहरू तल वर्णन गरिएको छ। यसले सम्पूर्ण डाटा प्रसारण प्रक्रियालाई सरल बनाउनेछ र प्रयोगकर्ताहरूलाई UART संचार अनुप्रयोगहरू छिटो बुझ्न र कार्यान्वयन गर्न अनुमति दिनेछ।

  • कार्यहरू प्रसारण / प्राप्त गर्नुहोस्: बाइट पढ्ने, बाइट लेख्ने, बफर पढ्ने, बफर लेख्ने, आदि।
  • स्थिति प्रकार्यहरू: बफर लम्बाइ, TX स्थिति, आदि प्राप्त गर्नुहोस्।

यो कागजातले पहिले UART संचार प्रोटोकलको परिचय दिनेछ, जसले प्रयोगकर्ताहरूलाई UART संचारलाई सिद्धान्तदेखि अनुप्रयोगसम्म राम्रोसँग बुझ्न मद्दत गर्नेछ। यसपछि फर्मवेयर लाइब्रेरी, एप्लिकेसन कोड डाउनलोड, सहित एप्लिकेसन कोडका लागि आवश्यक स्रोतहरूको डाउनलोड र तयारी गरिन्छ। file र डाइरेक्टरी कन्फिगरेसनका साथै एप्लिकेसन नोटमा प्रयोग गरिएको टर्मिनल सफ्टवेयर उपकरणको परिचय। कार्यात्मक विवरण अध्यायमा, एप्लिकेसन कोड डाइरेक्टरी संरचना, प्यारामिटर सेटिङहरू र API विवरण प्रस्तुत गरिनेछ। API उपयोग "Module_UART" अनुप्रयोग कोड प्रयोग गरी वर्णन गरिनेछ र API को लागि आवश्यक Flash/RAM स्रोत खपत पनि सूचीबद्ध गरिनेछ। प्रयोगका लागि निर्देशनहरू अध्यायले प्रयोगकर्तालाई वातावरणीय तयारी, सङ्कलन र परीक्षणको चरणहरू मार्फत एप्लिकेसन कोडले ठीकसँग काम गर्नेछ भनी पुष्टि गर्नेछ। त्यसपछि यसले प्रयोगकर्ताको परियोजनाहरूमा API हरू कसरी एकीकृत गर्ने र अन्तमा सामना गर्न सक्ने परिमार्जनहरू र सामान्य समस्याहरूको लागि सन्दर्भ प्रदान गर्ने निर्देशनहरू प्रदान गर्नेछ।

संक्षेप प्रयोग: 

  • UART: विश्वव्यापी एसिन्क्रोनस रिसीभर/ट्रान्समिटर
  • API: एप्लिकेसन प्रोग्रामिङ इन्टरफेस
  • LSB: सबैभन्दा कम महत्त्वपूर्ण बिट
  • MSB: सबैभन्दा महत्त्वपूर्ण बिट
  • पीसी: पर्सनल कम्प्युटर
  • SK: स्टार्टर किट, HT32 विकास बोर्ड
  • IDE: एकीकृत विकास वातावरण

UART संचार प्रोटोकल

UART एक सीरियल संचार प्रकारको इन्टरफेस हो जसले यसको ट्रान्समिटरमा समानान्तर-देखि-सिरियल डेटा रूपान्तरण लागू गर्दछ र त्यसपछि समान रिसीभरसँग क्रमिक रूपमा सञ्चार गर्दछ। प्राप्तकर्ताले डेटा रिसेप्शन पछि सीरियल-देखि-समानान्तर डेटा रूपान्तरण गर्दछ। चित्र 1 ले सीरियल संचारको योजनाबद्ध रेखाचित्र देखाउँदछ कि कसरी डाटा बिटवाइज क्रममा स्थानान्तरण हुन्छ। तसर्थ ट्रान्समिटर र रिसीभर बीच द्विदिशात्मक संचारको लागि, केवल दुई तारहरू, TX र RX, एकअर्का बीच क्रमिक रूपमा डेटा स्थानान्तरण गर्न आवश्यक छ। TX त्यो पिन हो जसमा UART ले क्रमिक डेटा पठाउँछ र रिसिभरको RX पिनसँग जोडिएको हुन्छ। तसर्थ ट्रान्समिटर र रिसिभर यन्त्रहरूले UART दुई-तर्फी सञ्चार प्रदर्शन गर्न तिनीहरूको TX र RX पिनहरू क्रस-जडान गर्न आवश्यक छ, जसमा देखाइएको छ। चित्र 2.

चित्र १. क्रमिक सञ्चार रेखाचित्र
सीरियल संचार रेखाचित्र

चित्र २. UART सर्किट रेखाचित्र
UART सर्किट रेखाचित्र

UART सीरियल संचार को समयमा, डाटा प्रसारण एसिन्क्रोनस छ। यसको मतलब ट्रान्समिटर र रिसीभर बीच कुनै घडी वा अन्य सिंक्रोनाइजेसन संकेत छैन। यहाँ एक बाउड दर प्रयोग गरिन्छ, जुन क्रमिक डाटा ट्रान्समिटिङ/प्राप्त गर्ने गति हो र जुन डेटा स्थानान्तरणको अगाडि दुवै पक्षद्वारा सेट गरिएको हुन्छ। थप रूपमा, विशेष बिटहरू जस्तै स्टार्ट र स्टप बिट्सहरू डाटा प्याकेटको सुरु र अन्त्यमा पूर्ण UART डाटा प्याकेट बनाउन थपिन्छन्। चित्र 3 ले UART डाटा प्याकेट संरचना देखाउँछ जबकि चित्र 4 ले समानता बिट बिना UART 8-बिट डाटा प्याकेट देखाउँछ।
चित्र 3. UART डाटा प्याकेट संरचना
UART डाटा प्याकेट संरचना

चित्र ४. UART ८-बिट डाटा प्याकेट ढाँचा
डाटा प्याकेट ढाँचा
UART डाटा प्याकेटको प्रत्येक भाग तलको क्रममा प्रस्तुत गरिएको छ।

  • स्टार्ट बिट: यसले डाटा प्याकेटको सुरुवातलाई संकेत गर्छ। UART TX पिन सामान्यतया प्रसारण सुरु हुनु अघि उच्च तर्क स्तरमा रहन्छ। यदि डेटा प्रसारण सुरु हुन्छ भने, UART ट्रान्समिटरले TX पिनलाई उच्च देखि निम्नमा तान्नेछ, अर्थात् 1 देखि 0 सम्म, र त्यसपछि यसलाई एक घडी चक्रको लागि त्यहाँ समात्नुहोस्। UART रिसीभरले RX पिनमा उच्च देखि कम ट्रान्जिसन पत्ता लगाउँदा डाटा पढ्न सुरु गर्नेछ।
  • डाटा: यो 7, 8 वा 9 बिट को डेटा लम्बाइ संग, स्थानान्तरण गरिएको वास्तविक डाटा हो। डाटा सामान्यतया पहिले LSB मार्फत स्थानान्तरण गरिन्छ।
  • समानता बिट: डाटा मा तर्क "1" को संख्या प्रसारण को समयमा कुनै पनि डाटा परिवर्तन भएको छ कि भनेर निर्धारण गर्न प्रयोग गरिन्छ। सम समानताको लागि, डेटामा तर्क "1" को कुल संख्या सम संख्या हुनुपर्दछ, यसको विपरीत, डेटामा तर्क "1" को कुल संख्या बिजोड समानताको लागि एक बिजोर संख्या हुनुपर्छ।
  • स्टप बिट: यसले डेटा प्याकेटको अन्त्यलाई संकेत गर्छ, जहाँ UART ट्रान्समिटरले TX पिनलाई कम देखि उच्चमा तान्नेछ, अर्थात् 0 देखि 1 सम्म, र त्यसपछि यसलाई 1 वा 2-बिट समयावधिको लागि त्यहाँ समात्नुहोस्।

पहिले उल्लेख गरिएझैं, UART सर्किटमा घडी संकेत नभएको कारण, एउटै सीरियल डाटा ट्रान्समिटिङ/प्राप्त गर्ने गति, जसलाई बाउड रेट भनिन्छ, त्रुटिरहित प्रसारण कार्यान्वयन गर्न ट्रान्समिटर र रिसीभरबीच परिभाषित गरिनुपर्छ। बाउड दर प्रति सेकेन्ड स्थानान्तरण बिट संख्या द्वारा परिभाषित गरिएको छ, bps मा (बिट प्रति सेकेन्ड)। केहि मानक र सामान्यतया प्रयोग हुने बाउड दरहरू 4800bps, 9600bps, 19200bps, 115200bps, आदि हुन्। एकल डाटा बिट स्थानान्तरण गर्न आवश्यक समय तल देखाइएको छ।
तालिका 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 फर्मवेयर पुस्तकालय जिप file a संग file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip को नाम फर्मवेयर_लाइब्रेरी फोल्डर अन्तर्गत अवस्थित छ।

चित्र 5. HT32_M0p_Vyyyymmdd.zip सामग्री
सामग्री

आवेदन कोड
निम्न लिङ्कबाट आवेदन कोड डाउनलोड गर्नुहोस्। आवेदन कोड जिप मा प्याकेज गरिएको छ file a संग file HT32_APPFW_xxxx_APPCODENAME_Vm.n.r_s.zip को नाम। हेर्नुहोस् चित्र १ को लागि file नाम सम्मेलनहरू।

चित्र २. आवेदन कोड File नाम परिचय 

डाउनलोड लिङ्क: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/ आवेदन कोड

File र निर्देशिका कन्फिगरेसन
अनुप्रयोग कोडमा HT32 फर्मवेयर लाइब्रेरी समावेश छैन files, अनुप्रयोग कोड र फर्मवेयर लाइब्रेरी अनजिप गरियो fileसंकलन सुरु गर्नु अघि s लाई सही मार्गमा राख्नुपर्छ। आवेदन कोड जिप file चित्र 7 मा देखाइए अनुसार सामान्यतया एक वा धेरै फोल्डरहरू समावेश गर्दछ, जस्तै अनुप्रयोग र पुस्तकालय। file पथ कन्फिगरेसन, चित्र 8 मा देखाइए अनुसार। वैकल्पिक रूपमा, एउटै कन्फिगरेसन परिणामहरू प्राप्त गर्न एउटै मार्गमा एप्लिकेसन कोड र HT32 फर्मवेयर लाइब्रेरीलाई एकैसाथ अनजिप गर्नुहोस्।

चित्र 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip सामग्रीहरू
सामग्री

चित्र ४. डिकम्प्रेसन पथ
डिकम्प्रेसन पथ

टर्मिनल सफ्टवेयर
अनुप्रयोग कोडले प्रकार्य चयन वा स्थिति प्रदर्शन लागू गर्न COM पोर्ट मार्फत सन्देशहरू स्थानान्तरण गर्न सक्छ। यसका लागि होस्ट साइडलाई टर्मिनल सफ्टवेयर पहिले नै स्थापना गर्न आवश्यक छ। प्रयोगकर्ताहरूले उपयुक्त जडान सफ्टवेयर छनोट गर्न सक्छन्, वा Tera Term जस्ता निःशुल्क इजाजतपत्र प्राप्त सफ्टवेयर प्रयोग गर्न सक्छन्। एप्लिकेसन कोडमा, UART च्यानल 8-बिटको शब्द लम्बाइ, कुनै समानता, 1 स्टप बिट र 115200bps को बाउड दरसँग कन्फिगर गरिएको छ।

कार्यात्मक विवरण

यस अध्यायले निर्देशिका संरचना, एपीआई वास्तुकला, सेटिङ विवरण, आदि बारे जानकारी सहित अनुप्रयोग कोडको लागि कार्यात्मक विवरण प्रदान गर्नेछ।

निर्देशिका संरचना
आवेदन कोड file एउटा अनुप्रयोग फोल्डर समावेश गर्दछ। अर्को तह "Module_UART" फोल्डर हो जसमा दुई अनुप्रयोग प्रोग्रामहरू छन्, "UART_Module_Example" र "UART_Bridge"। सम्बन्धित files सूचीबद्ध र तल वर्णन गरिएको छ।
तालिका 2. अनुप्रयोग कोड निर्देशिका संरचना

फोल्डर / File नाम विवरण
\\application\Module_UART\UART_Module_Example*1
_CreateProject.bat परियोजना सिर्जना गर्न ब्याच लिपिहरू files
_ProjectSource.ini प्रारम्भिकरण file परियोजनाहरूमा स्रोत कोड थप्नको लागि
ht32_board_config.h सेटअप file IC परिधीय I/O असाइनमेन्टसँग सम्बन्धित
ht32fxxxxxx_01_it.c अवरोध सेवा कार्यक्रम file
main.c मुख्य कार्यक्रम स्रोत कोड
\\ अनुप्रयोग\Module_UART\UART_Bridge*2
_CreateProject.bat परियोजना सिर्जना गर्न ब्याच लिपिहरू files
_ProjectSource.ini प्रारम्भिकरण file परियोजनाहरूमा स्रोत कोड थप्नको लागि
ht32_board_config.h सेटअप file IC परिधीय I/O असाइनमेन्टसँग सम्बन्धित
ht32fxxxxxx_01_it.c अवरोध सेवा कार्यक्रम file
main.c मुख्य कार्यक्रमको स्रोत कोड
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 पढ्ने र लेख्ने कार्यहरू लुपब्याक तरिकामा गरिन्छ, "एपीआई प्रयोग पूर्व सन्दर्भ गर्नुहोस्।ampथप विवरणहरूको लागि les" खण्ड।
  2.  "UART_Bridge" अनुप्रयोग कोडमा, दुई UART च्यानलहरू, UART CH0 र UART CH1, सक्रिय छन्, र COMMAND संरचनाहरू मार्फत अनुकूलन संचार प्रोटोकल दुई UART यन्त्रहरू बीच लागू गरिन्छ। थप जानकारीको लागि, सन्दर्भ गर्नुहोस् "एपीआई प्रयोग पूर्वamples" खण्ड।
  3. आवेदन कोड uart_module.c/h प्रयोग गर्न आवश्यक छ files जसमा फर्मवेयर लाइब्रेरी संस्करण आवश्यकता छ। आवश्यकता अपडेट अनुसार समय समयमा परिवर्तन हुन सक्छ। हालको फर्मवेयर लाइब्रेरी संस्करण आवश्यकता पुष्टि गर्न, 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. API आर्किटेक्चर ब्लक रेखाचित्र
वास्तुकला ब्लक रेखाचित्र

प्रत्येक API UART च्यानल-सम्बन्धित सेटिङहरू वा नियन्त्रणहरूको चार समूहहरू मिलेर बनेको हुन्छ ताकि प्रयोगकर्ताहरूले मात्र इच्छित CH प्यारामिटर इनपुट गर्न आवश्यक छ। सान्दर्भिक API कन्फिगर गर्न, यो संरचना फारम, USART_InitTypeDef संग अतिरिक्त UART आधारभूत कन्फिगरेसन प्यारामिटर तालिका मात्र आवश्यक छ। API ले तालिकामा रहेको प्यारामिटर सामग्री अनुसार UART आधारभूत कन्फिगरेसन लागू गर्नेछ। UART आधारभूत कन्फिगरेसन संरचना तालिकाको लागि "एपीआई विवरण" खण्डलाई सन्दर्भ गर्नुहोस्।

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 पोर्ट नाम; उदाहरणample: UART0, UART1...
HTCFG_UARTM0_TX_GPIO_PORT CH0 को लागि TX को पोर्ट नाम परिभाषित गर्दछ; उदाहरणample: A, B, C...
HTCFG_UARTM0_TX_GPIO_PIN CH0 को लागि TX को पिन नम्बर परिभाषित गर्दछ; उदाहरणample: ०~१५
HTCFG_UARTM0_RX_GPIO_PORT CH0 को लागि RX को पोर्ट नाम परिभाषित गर्दछ; उदाहरणample: A, B, C...
HTCFG_UARTM0_RX_GPIO_PIN CH0 को लागि TX को पिन नम्बर परिभाषित गर्दछ; उदाहरणample: ०~१५
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 परिभाषालाई सन्दर्भ गरेर वा "सेटिङ परिमार्जन र FAQs" खण्डलाई सन्दर्भ गरेर पूरा गर्न आवश्यक छ।

त्यहाँ तीन एपीआई वास्तुकला मुख्य सुविधाहरू छन्: 

  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 पिन परिभाषाहरू र विकास बोर्ड सान्दर्भिक सेटिङहरूका लागि प्रयोग गरिन्छ, जसमा UART IP च्यानल (UART0, UART1, USART0…) स्टार्टर किट (SK), सम्बन्धित TX/RX पिन स्थानहरू र TX/RX बफर साइज प्रयोग गरिन्छ। चित्र 10 ले HT32F52352 स्टार्टर किटको सेटिङ सामग्री देखाउँछ। विकासको कार्यात्मक एकीकरणमा निर्भर गर्दै, प्रयोगकर्ताहरूले पिन परिभाषाहरू लागू गर्न प्रयोग गरिएको यन्त्रको डाटाशीटको "पिन असाइनमेन्ट" खण्डलाई सन्दर्भ गर्न सक्छन्। सेटिङ परिमार्जन बारे थप विवरणहरू "सेटिङ परिमार्जन र सोधिने प्रश्नहरू" खण्डमा वर्णन गरिनेछ।
    चित्र 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
      यो UART आधारभूत कन्फिगरेसन संरचना हो जुन BaudRate, WordLength, StopBits, Parity र मोड कन्फिगरेसनहरू मिलेर बनेको छ, जस्तै तल देखाइएको छ।
      चर नाम टाइप गर्नुहोस् विवरण
      USART_BaudRate u32 UART संचार बाउड दर
      USART_WordLength u16 UART संचार शब्द लम्बाइ: 7, 8 वा 9 बिट
      USART_StopBits u16 UART संचार स्टप बिट लम्बाइ: 1 वा 2 बिट
      USART_Parity u16 UART संचार समानता: सम, विषम, चिन्ह, स्पेस वा कुनै समानता
      USART_Mode u16 UART संचार मोड; API ले सामान्य मोडलाई मात्र समर्थन गर्दछ
  2. API प्रकार्यहरू प्रयोग गर्नु अघि, मुख्य कार्यक्रममा UART आधारभूत कन्फिगरेसन पूरा गर्नुहोस्। यस अनुप्रयोग कोडको लागि UART आधारभूत कन्फिगरेसन चित्र 12 मा देखाइएको छ। यहाँ बाउड दर 115200bps छ, शब्द लम्बाइ 8-बिट छ, स्टप बिट लम्बाइ 1-बिट छ, र त्यहाँ कुनै समानता छैन।
    चित्र 12. UART आधारभूत कन्फिगरेसन
    आधारभूत कन्फिगरेसन
  3. चित्र 13 ले uart_module.h मा घोषित API कार्यहरू देखाउँछ 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 बफर सूचक
uलम्बाइ लेख्नु पर्ने डाटाको लम्बाइ
आउटपुट सफलता सफल
त्रुटि असफल
 प्रयोग u8 Test[] = "यो परीक्षण हो!\r\n"; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); // UART ले pBuffer डाटा लेख्छ
नाम u32 UARTM_ReadByte(u32 CH, u8 *pData)
कार्य UART मोड्युल रिड बाइट अपरेशन (RX)
इनपुट CH UART च्यानल
pData पढ्ने डाटा राख्ने ठेगाना
आउटपुट सफलता सफल
त्रुटि असफल (डेटा छैन)
   प्रयोग u8 TempData; यदि (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//यदि UARTM_ReadByte() ले SUCCESS फर्काउँछ भने UART ले यो डेटा बाइट लेख्छ
नाम u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength)
कार्य UART मोड्युल रिड अपरेशन (RX)
 इनपुट CH UART च्यानल
pBuffer बफर सूचक
uलम्बाइ पढ्नु पर्ने डाटाको लम्बाइ
आउटपुट गणना पढ्नुहोस् डाटाको लम्बाइ पढिएको छ
     प्रयोग u8 Test2[10]; u32 लेन; Len = UARTM_Read(UARTM_CH0, Test2, 5); if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() ले ५ बाइट डाटा पढ्छ र डाटालाई Test5 मा भण्डारण गर्छ, र पढ्ने बाइट गणना तोक्छ। Len// Test2 बाट प्राप्त डाटा लेख्नुहोस्
नाम u32 UARTM_GetReadBufferLength(u32 CH)
कार्य पढ्ने बफर लम्बाइ (RX) प्राप्त गर्नुहोस्
इनपुट CH UART च्यानल
आउटपुट uलम्बाइ बफर लम्बाइ पढ्नुहोस्
  प्रयोग UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART मोड्युल प्रारम्भिकरण जबकि (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//UARTM_ReadBuffer ले 5 बाइट डाटा प्राप्त नगरेसम्म पर्खनुहोस्
नाम u32 UARTM_GetWriteBufferLength(u32 CH)
कार्य लेखन बफर लम्बाइ (TX) प्राप्त गर्नुहोस्
इनपुट CH UART च्यानल
आउटपुट uलम्बाइ बफर लम्बाइ लेख्नुहोस्
नाम u8 UARTM_IsTx समाप्त(u32 CH)
कार्य TX स्थिति प्राप्त गर्नुहोस्
इनपुट CH UART च्यानल
आउटपुट सत्य TX स्थिति: समाप्त
FALSE TX स्थिति: समाप्त भएको छैन
      प्रयोग UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 आवश्यक हुँदा (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif // यो API TX स्थिति जाँच गर्न प्रयोग गर्न सकिन्छ, माथि देखाइएको रूपमा; UARTM_WriteByte() API समाप्त नभएसम्म पर्खनुहोस्, अर्थात्, TX स्थिति TRUE छ, र त्यसपछि पछिका कार्यहरू जारी राख्नुहोस्।// एउटा प्रतिबन्ध थपिएको छ किनभने यो प्रकार्य uart_module.c मा SVN संस्करण नम्बर 525 नभएसम्म थपिएको छैन।
नाम शून्य UARTM_DiscardReadBuffer(u32 CH)
कार्य पढ्ने बफरमा डाटा खारेज गर्नुहोस्
इनपुट CH UART च्यानल

एपीआई प्रयोग उदाampलेस 

यस खण्डले एपीआई लेख्ने र पढ्ने पूर्व प्रदर्शन गर्नेछampप्रारम्भिक प्रक्रिया र "UART_Module_Ex" प्रयोग गरेर "Module_UART" अनुप्रयोग कोडको लेसample" आवेदन कोड प्रक्रिया। APIs प्रयोग गर्नु अघि, प्रयोगकर्ताहरूले 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() समावेश छन्। तिनीहरूको विवरण "एपीआई विवरण" खण्डमा प्रदान गरिएको छ।

चित्र 15. लेख्नुहोस् र पढ्नुहोस् पूर्वको फ्लोचार्टampलेस
लेख्नुहोस् र पढ्नुहोस् को फ्लोचार्ट पूर्वampलेस

त्यहाँ "Module_UART" फोल्डर अन्तर्गत अर्को "UART_Bridge" अनुप्रयोग कोड छ जसको सम्बन्धित छ file वर्णन "निर्देशिका संरचना" खण्डमा प्रस्तुत गरिएको छ। "UART_Bridge" अनुप्रयोग कोडले दुई UART च्यानलहरू, UART CH0 र UART CH1 सक्रिय गर्दछ, र त्यसपछि 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 सेट गर्नुहोस् र यसलाई प्रसारण गर्नुहोस्। निम्न एक पूर्व होampआदेश प्याकेट gCMD1) र प्रतिक्रिया प्याकेट (gCMD2) को le। आदेश प्याकेट (UARTBridge_CMD1TypeDef gCMD1):

बाइट ० बाइट ० बाइट २ ~ बाइट ४
uHeader uCmd uData [३]
"ए" "1" "x, y, z"

प्रतिक्रिया प्याकेट (UARTBridge_CMD2TypeDef gCMD2):

बाइट ० बाइट ० बाइट ० बाइट २ ~ बाइट ४
uHeader uCmdA uCmdB uData [३]
"B" "ए" "1" "x, y, z"

स्रोत पेशा
HT32F52352 लाई पूर्वको रूपमा लिँदैampले, UART मोड्युल द्वारा कब्जा गरिएको स्रोतहरू तल देखाइएको छ।

HT32F52352
ROM साइज ३ बाइट्स
RAM आकार 40*1 + १५००*2 बाइटहरू

नोट:

  1. एकल च्यानलको लागि झण्डा र स्थिति सहित ग्लोबल चरहरूले RAM को 40 बाइटहरू ओगटेको छ।
  2.  यो एउटा सर्तको लागि हो जहाँ एकल च्यानल प्रयोग गरिन्छ र TX/RX बफर साइज १२८/१२८ बाइट हुन्छ। बफर आकार आवेदन आवश्यकताहरु अनुसार सेट गर्न सकिन्छ।

तालिका 4. आवेदन कोड संसाधन पेशा 

  • संकलन वातावरण: MDK-Arm V5.36, ARMCC V5.06 अपडेट 7 (बिल्ड 960)
  • अनुकूलन विकल्प: स्तर २ (-O2)

प्रयोगको लागि निर्देशनहरू

यस अध्यायले "Module_UART" अनुप्रयोग कोडको लागि वातावरणीय तयारी, साथै संकलन र परीक्षण चरणहरू प्रस्तुत गर्नेछ।

वातावरणीय तयारी
"Module_UART" अनुप्रयोग कोडको लागि आवश्यक हार्डवेयर र सफ्टवेयर तल सूचीबद्ध छन्।
तालिका ५. हार्डवेयर/सफ्टवेयर वातावरणीय तयारी 

हार्डवेयर/सफ्टवेयर गणना गर्नुहोस् नोट
स्टार्टर किट 1 यो एप नोटले पूर्वको रूपमा HT32F52352 स्टार्टर किट प्रयोग गर्दछample
USB केबल 1 माइक्रो USB, PC मा जडित
आवेदन कोड डाउनलोड मार्ग, file र डाइरेक्टरी कन्फिगरेसन "संसाधन डाउनलोड र तयारी" खण्डमा प्रस्तुत गरिएको छ। पथ: "\\application\Module_UART\UART_Module_Exampले "
तेरा अवधि "टर्मिनल सफ्टवेयर" खण्डलाई सन्दर्भ गर्नुहोस्
Keil IDE Keil uVision V5.xx

पहिले, UART अनुप्रयोग परिचयको लागि e-Link32 Lite को भर्चुअल COM पोर्ट (VCP) प्रकार्यसँग जोडिएको HT52352F32 स्टार्टर किट प्रयोग गर्नुहोस्। यसलाई लागू गर्न निम्न वातावरणीय तयारी आवश्यक छ:

  1. बोर्डमा दुई USB इन्टरफेसहरू छन्। पीसी र बोर्डमा eLink32 Lite इन्टरफेस जडान गर्न USB केबल प्रयोग गर्नुहोस् चित्र 16-(a) मा देखाइएको छ।
  2. एप्लिकेसन कोडले e-Link32 Lite Virtual COM Port (VCP) प्रकार्य प्रयोग गर्न आवश्यक भएकोले, UART Jumper-J2*2 को PAx*1 र DAP_Tx जम्पर प्रयोग गरेर छोटो पारिएको छ भनी सुनिश्चित गर्नुहोस्। J2 स्थान चित्र 16-(b) द्वारा संकेत गरिएको छ।

नोट

  1. स्टार्टर किटमा J2 मा दुई विकल्पहरू छन्, PAx र DAP_Tx छोटो वा PAx र RS232_Tx छोटो। विस्तृत सेटिङ प्रकार्यहरूको लागि स्टार्टर किट प्रयोगकर्ता पुस्तिका हेर्नुहोस्।
  2. विभिन्न स्टार्टर किटहरूमा MCU UART RX पिन स्थान फरक छ। यो पूर्वample ले RX पिन संकेत गर्न PAx प्रयोग गर्दछ।

चित्र 16. HT32 स्टार्टर किट ब्लक रेखाचित्र
किट ब्लक रेखाचित्र

अब UART अनुप्रयोग परिचयको लागि e-Link32 Pro को भर्चुअल COM पोर्ट (VCP) प्रकार्यसँग जोडिएको प्रयोगकर्ता लक्ष्य बोर्ड प्रयोग गर्नुहोस्। यसलाई लागू गर्न निम्न वातावरणीय तयारी आवश्यक छ:

  1. e-Link32 Pro को एक पक्ष मिनी USB केबल प्रयोग गरेर PC मा जडान गरिएको छ र अर्को पक्ष यसको 10-bit ग्रे केबल मार्फत प्रयोगकर्ता लक्ष्य बोर्डमा जडान गरिएको छ। केबल र लक्ष्य बोर्डको SWD इन्टरफेसहरू बीचको जडान डुपोन्ट लाइनहरू प्रयोग गरी लागू गरिएको छ, चित्र 17-(a) मा देखाइएको छ।
  2. e-Link32 Pro को सिरियल कम्युनिकेशन पिनहरू पिन#7 VCOM_RXD र पिन#8- VCOM_TXD हुन्। चित्र 17-(b) मा देखाइए अनुसार यी प्रयोगकर्ता लक्ष्य बोर्डको TX र RX पिनहरूमा जडान हुनुपर्छ।
    चित्र 17. e-Link32 Pro + प्रयोगकर्ता लक्ष्य बोर्ड ब्लक रेखाचित्र
    प्रयोगकर्ता लक्ष्य बोर्ड

संकलन र परीक्षण
यो खण्डले “application\Module_UART\UART_Module_Ex” लिनेछample" पूर्वको रूपमाampसङ्कलन र परीक्षण प्रक्रियाहरू परिचय गर्न। यस अघि, अघिल्लो खण्डमा वर्णन गरिएका सबै तयारीहरू लागू गरिएको छ र तेरा टर्म टर्मिनल सफ्टवेयर डाउनलोड गरिएको छ भनी सुनिश्चित गर्नुहोस्।

विस्तृत सञ्चालन चरणहरू तल संक्षेप गरिएको छ।
चरण 1. पावर अन परीक्षण

अघिल्लो खण्डमा वर्णन गरिए अनुसार हार्डवेयर वातावरण सेटअप गर्नुहोस्। पावर अन गरेपछि, स्टार्टर किटको तल्लो बायाँमा रहेको D9 पावर LED उज्यालो हुनेछ। माथिल्लो दायाँमा रहेको e-Link1 Lite मा रहेको D32 USB LED USB गणना पूरा भएपछि उज्यालो हुनेछ। यदि D1 लामो समय पछि उज्यालो भएन भने, USB केबल संचार गर्न सक्षम छ कि छैन भनेर पुष्टि गर्नुहोस्। यदि होइन भने, यसलाई हटाउनुहोस् र पुन: घुसाउनुहोस्।

चरण 2. एउटा परियोजना उत्पन्न गर्नुहोस्
एप खोल्नुहोस्\Module_UART\UART_Module_Exampफोल्डरमा, _CreateProject.bat मा क्लिक गर्नुहोस् file परियोजना उत्पन्न गर्न, चित्र 18 मा देखाइएको छ। यस अनुप्रयोग नोटले HT32F52352 स्टार्टर किट प्रयोग गरेको हुनाले, MDK_ARMv52352 फोल्डर अन्तर्गत रहेको Keil IDE परियोजना "Project_5.uvprojx" खोल्नुहोस्।

चित्र 18. परियोजना उत्पन्न गर्न _CreateProject.bat कार्यान्वयन गर्नुहोस्
परियोजना उत्पन्न गर्नुहोस्

चरण 3. कम्पाइल र कार्यक्रम
परियोजना खोलिसकेपछि, पहिले "बिल्ड" मा क्लिक गर्नुहोस् (वा सर्टकट "F7" प्रयोग गर्नुहोस्), त्यसपछि "डाउनलोड" मा क्लिक गर्नुहोस् (वा सर्टकट "F8" प्रयोग गर्नुहोस्)। यस पछि, निर्माण र डाउनलोड परिणामहरू निर्माण आउटपुट विन्डोमा प्रदर्शित हुनेछन्। चित्र १९ हेर्नुहोस्।

चित्र 19. परिणामहरू निर्माण र डाउनलोड गर्नुहोस्
नतिजाहरू निर्माण र डाउनलोड गर्नुहोस्

चरण १। तेरा टर्म सफ्टवेयर खोल्नुहोस् र सिरियल पोर्ट कन्फिगर गर्नुहोस्
तेरा टर्म सफ्टवेयर र COM पोर्ट खोल्नुहोस्। स्टार्टर किट द्वारा उत्पन्न COM पोर्ट नम्बर सही छ वा छैन मा ध्यान दिनुहोस्। त्यसपछि कन्फिगरेसन इन्टरफेस प्रविष्ट गर्न "सेटअप >> सिरियल पोर्ट" मा क्लिक गर्नुहोस्। "Module_UART" अनुप्रयोग कोडको UART इन्टरफेस कन्फिगरेसन "टर्मिनल सफ्टवेयर" खण्डमा वर्णन गरिएको छ। सेटअप परिणाम चित्र 20 मा देखाइएको छ।

चित्र 20. तेरा टर्म सीरियल पोर्ट सेटअप परिणाम
सेटअप परिणाम
चरण 5. प्रणाली र परीक्षण रिसेट गर्नुहोस्
SK रिसेट कुञ्जी थिच्नुहोस् - B1 रिसेट गर्नुहोस्। यस पछि, "एबीसी यो परीक्षण हो!" सन्देश हुनेछ
एपीआई मार्फत पठाइन्छ र टेरा टर्म विन्डोमा देखाइनेछ, जस्तै चित्र 21 मा देखाइएको छ। प्राप्त प्रकार्यको सन्दर्भमा, टेरा टर्म विन्डोमा डाटा प्रविष्ट गर्दा, प्राप्त बफर लम्बाइ निर्धारण गर्न सान्दर्भिक API प्रयोग गरिनेछ। जब PC द्वारा प्राप्त डाटा 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 परियोजना मा। प्रयोगकर्ता फोल्डरमा दायाँ क्लिक गर्नुहोस्। "अवस्थित थप्नुहोस्" चयन गर्नुहोस् Files समूह 'प्रयोगकर्ता'…”, त्यसपछि uart_module.c चयन गर्नुहोस् file र चित्र 23 मा देखाइए अनुसार "थप्नुहोस्" मा क्लिक गर्नुहोस्। को लागि "निर्देशिका संरचना" खण्ड हेर्नुहोस्। file मार्ग विवरण।

चित्र 23. uart_module.c थप्नुहोस् File परियोजना गर्न
File परियोजना गर्न

चरण १। ring_buffer.c थप्नुहोस् file परियोजना मा। प्रयोगकर्ता फोल्डरमा दायाँ क्लिक गर्नुहोस्। "अवस्थित थप्नुहोस्" चयन गर्नुहोस् Files समूह 'प्रयोगकर्ता'…”, त्यसपछि ring_buffer.c चयन गर्नुहोस् file र चित्र 24 मा देखाइए अनुसार "थप्नुहोस्" मा क्लिक गर्नुहोस्। file मार्ग विवरण।
चित्र 24. ring_buffer.c थप्नुहोस् File परियोजना गर्न 
File परियोजना गर्न

चरण १। API हेडर समावेश गर्नुहोस् file main.c को शुरुवातमा, चित्र 25 मा देखाइए अनुसार। (Ext: #include "middleware/uart_module.h")
चित्र 25. API हेडर समावेश गर्नुहोस् File main.c लाई
API हेडर समावेश गर्नुहोस् File

चरण १। Ht32_board_config.h प्रयोग गरेर UART संचारको लागि आवश्यक सेटिङहरू लागू गर्नुहोस् file। यो "सेटिङ विवरण" र "सेटिङ परिमार्जन र FAQs" सेक्सनहरूमा विस्तृत रूपमा प्रस्तुत गरिएको छ।

परिमार्जन र FAQs सेटिङ 

यो खण्डले 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. UART च्यानल थप्नुहोस्
UART च्यानल

FAQs
Q: संकलन र परीक्षण खण्डको चरण 5 मा, प्रसारण कार्यात्मक परीक्षण सामान्य छ। यहाँ, "एबीसी यो परीक्षण हो!" सन्देश सफलतापूर्वक प्रदर्शन गरिएको छ, यद्यपि प्राप्त प्रकार्यको लागि, किन पाँच इनपुट मानहरू फर्काइएन र प्रदर्शन गरिएको छैन?
A: UART Jumper-J2 को MCU UART RX र DAP_Tx पिन जम्पर प्रयोग गरेर छोटो पारिएको छ कि छैन भनी जाँच गर्नुहोस्। "Module_UART" एप्लिकेसन कोडले e-Link32 Lite को भर्चुअल COM पोर्ट (VCP) प्रयोग गर्नु पर्ने हुनाले, चित्र 2 मा देखाइए अनुसार UART Jumper-J29 को बायाँ दुई पिनमा सर्ट-सर्किट सेटिङ लागू गरिनुपर्छ।

चित्र 29. UART जम्पर-J2 सेटिङ
UART जम्पर

प्रश्न: पछि "बिल्ड" (वा सर्टकट "F7") कार्यान्वयन गर्दा, फर्मवेयर लाइब्रेरी संस्करण आवश्यक भन्दा पुरानो छ भनी संकेत गर्ने त्रुटि सन्देश देखा पर्दछ? चित्र 30 हेर्नुहोस्।
A: "Module_UART" अनुप्रयोग कोडको कार्यान्वयनमा uart_module.c/h समावेश गर्न आवश्यक छ। files जसमा निश्चित फर्मवेयर लाइब्रेरी संस्करणको आवश्यकता छ। जब यस्तो त्रुटि सन्देश देखा पर्दछ, यसको मतलब हाल प्रयोग गरिएको फर्मवेयर पुस्तकालय पुरानो संस्करण हो। त्यसैले "फर्मवेयर लाइब्रेरी" खण्डमा प्रदान गरिएको लिङ्क मार्फत नयाँ संस्करण डाउनलोड गर्न आवश्यक छ।

चित्र 30. फर्मवेयर लाइब्रेरी संस्करण त्रुटि सन्देश
संस्करण त्रुटि सन्देश

निष्कर्ष

यस कागजातले प्रयोगकर्ताहरूलाई "Module_UART" अनुप्रयोग कोड र UART संचार प्रोटोकलको राम्रोसँग बुझ्न मद्दत गर्न आधारभूत परिचय प्रदान गरेको छ। यो संसाधन डाउनलोड र तयारी पछि गरिएको थियो। कार्यात्मक विवरण अध्यायले परिचय दियो file डाइरेक्टरी संरचना, एपीआई आर्किटेक्चर, एपीआई विवरण र एपीआई प्रयोग पूर्वampलेस। प्रयोगका लागि निर्देशनहरू अध्यायले "Module_UART" अनुप्रयोग कोडको वातावरणीय तयारी, संकलन र परीक्षण प्रदर्शन गरेको छ। यसले कोड प्रत्यारोपण र परिमार्जन सेटिङको लागि निर्देशनहरू साथै सामना गर्न सक्ने केही सामान्य समस्याहरूको व्याख्या पनि प्रदान गर्यो। यी सबैको संयोजनले प्रयोगकर्ताहरूलाई API हरू कसरी प्रयोग गर्ने र पछि सुरु गर्नको लागि समयको मात्रा कम गर्ने भनेर द्रुत रूपमा बुझ्न अनुमति दिनेछ।

सन्दर्भ सामग्री

थप जानकारीको लागि, Holtek हेर्नुहोस् webसाइट: www.holtek.com

संस्करण र परिमार्जन जानकारी

मिति लेखक रिलीज परिमार्जन जानकारी
2022.04.30 蔡期育(ची-यु साई) V1.00 पहिलो संस्करण

अस्वीकरण

यसमा देखिने सबै जानकारी, ट्रेडमार्क, लोगो, ग्राफिक्स, भिडियो, अडियो क्लिप, लिङ्क र अन्य वस्तुहरू webसाइट ('सूचना') केवल सन्दर्भको लागि हो र कुनै पनि समय पूर्व सूचना बिना र Holtek Semiconductor Inc. र यससँग सम्बन्धित कम्पनीहरूको विवेकमा परिवर्तनको विषय हो (यसपछि 'Holtek', 'कंपनी', 'हामी', ' हामी' वा 'हाम्रो')। जबकि Holtek यस मा जानकारी को शुद्धता सुनिश्चित गर्न को लागी प्रयास गर्दछ webसाइट, जानकारी को शुद्धता को लागी Holtek द्वारा कुनै एक्सप्रेस वा निहित वारेन्टी दिइएको छैन। होल्टेकले कुनै गल्ती वा चुहावटको लागि कुनै जिम्मेवारी वहन गर्ने छैन।
यो प्रयोग गर्दा वा यसको प्रयोगको सम्बन्धमा उत्पन्न हुने कुनै पनि क्षति (कम्प्यूटर भाइरस, प्रणाली समस्या वा डाटा हानि सहित) को लागी होल्टेक उत्तरदायी हुनेछैन। webकुनै पनि पार्टी द्वारा साइट। यस क्षेत्रमा लिङ्कहरू हुन सक्छन्, जसले तपाईंलाई भ्रमण गर्न अनुमति दिन्छ webअन्य कम्पनीहरूको साइटहरू।
यी webसाइटहरू Holtek द्वारा नियन्त्रित छैनन्। Holtek ले कुनै जिम्मेवारी वहन गर्नेछैन र त्यस्ता साइटहरूमा देखाइएका कुनै पनि जानकारीको कुनै ग्यारेन्टी हुनेछैन। अन्यमा हाइपरलिङ्कहरू webसाइटहरू तपाईंको आफ्नै जोखिममा छन्।

दायित्वको सीमा

कुनै पनि हालतमा होल्टेक लिमिटेडले तपाइँको पहुँच वा प्रयोगको सम्बन्धमा प्रत्यक्ष वा अप्रत्यक्ष रूपमा कुनै पनि हानि वा क्षतिको लागि कुनै पनि अन्य पक्षलाई उत्तरदायी हुनेछैन। webसाइट, त्यसमा रहेको सामग्री वा कुनै पनि वस्तु, सामग्री वा सेवाहरू।

शासित कानून
मा समावेश अस्वीकरण webसाइट गणतन्त्र चीन को कानून अनुसार शासित र व्याख्या गरिनेछ। प्रयोगकर्ताहरूले गणतन्त्र चीनको अदालतको गैर-विशेष क्षेत्राधिकारमा पेश गर्नेछन्।

अस्वीकरणको अपडेट
Holtek ले कुनै पनि समयमा पूर्व सूचना बिना वा बिना अस्वीकरण अपडेट गर्ने अधिकार सुरक्षित राख्छ, सबै परिवर्तनहरू तुरुन्तै पोस्ट गर्दा प्रभावकारी हुन्छन्। webसाइट।

कागजातहरू / स्रोतहरू

HOLTEK HT32 MCU UART आवेदन नोट [pdf] प्रयोगकर्ता पुस्तिका
HT32 MCU, UART अनुप्रयोग नोट, HT32 MCU UART, अनुप्रयोग नोट, HT32, MCU UART अनुप्रयोग नोट, HT32 MCU UART अनुप्रयोग नोट

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *