HOLTEK HT32 MCU UART एप्लीकेशन नोट यूजर मैनुअल
परिचय
यूनिवर्सल एसिंक्रोनस रिसीवर/ट्रांसमीटर - यूएआरटी एक व्यापक रूप से इस्तेमाल किया जाने वाला सीरियल ट्रांसमिशन इंटरफ़ेस है जो लचीला एसिंक्रोनस फुल-डुप्लेक्स डेटा ट्रांसमिशन प्रदान करता है। इस एप्लिकेशन नोट में प्रदान किया गया "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड एपीआई के माध्यम से सरल यूएआरटी ट्रांसमिट/प्राप्त कार्यों को लागू करने के लिए सॉफ्टवेयर रिंग बफ़र्स के साथ टीएक्स/आरएक्स इंटरप्ट का उपयोग करता है, जिनके संबंधित फ़ंक्शन नीचे वर्णित हैं। यह संपूर्ण डेटा ट्रांसमिशन प्रक्रिया को सरल बना देगा और उपयोगकर्ताओं को यूएआरटी संचार अनुप्रयोगों को शीघ्रता से समझने और कार्यान्वित करने की अनुमति देगा।
- संचारित/प्राप्त करने के कार्य: बाइट पढ़ना, बाइट लिखना, बफ़र पढ़ना, बफ़र लिखना, आदि।
- स्थिति फ़ंक्शन: बफ़र लंबाई, TX स्थिति, आदि प्राप्त करें।
यह दस्तावेज़ सबसे पहले यूएआरटी संचार प्रोटोकॉल पेश करेगा, जो उपयोगकर्ताओं को सिद्धांत से अनुप्रयोग तक यूएआरटी संचार को बेहतर ढंग से समझने में मदद करेगा। इसके बाद फ़र्मवेयर लाइब्रेरी, एप्लिकेशन कोड डाउनलोड सहित एप्लिकेशन कोड के लिए आवश्यक संसाधनों को डाउनलोड और तैयार किया जाता है। file और निर्देशिका कॉन्फ़िगरेशन के साथ-साथ एप्लिकेशन नोट में प्रयुक्त टर्मिनल सॉफ़्टवेयर टूल का परिचय। कार्यात्मक विवरण अध्याय में, एप्लिकेशन कोड निर्देशिका संरचना, पैरामीटर सेटिंग्स और एपीआई विवरण पेश किया जाएगा। एपीआई उपयोग का वर्णन "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड का उपयोग करके किया जाएगा और एपीआई के लिए आवश्यक फ्लैश/रैम संसाधन खपत को भी सूचीबद्ध किया जाएगा। उपयोग के लिए निर्देश अध्याय उपयोगकर्ता को पर्यावरणीय तैयारी, संकलन और परीक्षण के चरणों के माध्यम से मार्गदर्शन करेगा ताकि यह पुष्टि हो सके कि एप्लिकेशन कोड ठीक से काम करेगा। इसके बाद यह निर्देश देगा कि एपीआई को उपयोगकर्ता की परियोजनाओं में कैसे एकीकृत किया जाए और अंत में संशोधनों और सामने आने वाली सामान्य समस्याओं के लिए एक संदर्भ प्रदान किया जाएगा।
उपयोग किए गए संक्षिप्ताक्षर:
- यूएआरटी: यूनिवर्सल एसिंक्रोनस रिसीवर / ट्रांसमीटर
- एपीआई: अप्लिकेशन प्रोग्रामिंग अंतरफलक
- एलएसबी: कम से कम महत्वपूर्ण बिट
- एमएसबी: सबसे महत्वपूर्ण बिट
- पीसी: पर्सनल कंप्यूटर
- एसके: स्टार्टर किट, HT32 विकास बोर्ड
- आईडीई: एकीकृत विकास पर्यावरण
यूएआरटी संचार प्रोटोकॉल
यूएआरटी एक सीरियल संचार प्रकार का इंटरफ़ेस है जो अपने ट्रांसमीटर पर समानांतर-से-सीरियल डेटा रूपांतरण लागू करता है और फिर एक समान रिसीवर के साथ क्रमिक रूप से संचार करता है। रिसीवर डेटा रिसेप्शन के बाद क्रमिक-से-समानांतर डेटा रूपांतरण करता है। चित्र 1 धारावाहिक संचार का एक योजनाबद्ध आरेख दिखाता है जिसमें दिखाया गया है कि डेटा को बिटवाइज़ क्रम में कैसे स्थानांतरित किया जाता है। इसलिए ट्रांसमीटर और रिसीवर के बीच द्विदिश संचार के लिए, एक दूसरे के बीच क्रमिक रूप से डेटा स्थानांतरित करने के लिए केवल दो तारों, TX और RX की आवश्यकता होती है। TX वह पिन है जिस पर UART सीरियल डेटा प्रसारित करता है और रिसीवर के RX पिन से जुड़ा होता है। इसलिए ट्रांसमीटर और रिसीवर उपकरणों को यूएआरटी दो-तरफा संचार करने के लिए अपने टीएक्स और आरएक्स पिन को क्रॉस-कनेक्ट करने की आवश्यकता होती है, जैसा कि दिखाया गया है आकृति 2.
चित्र 1. सीरियल संचार आरेख
चित्र 2. यूएआरटी सर्किट आरेख
यूएआरटी सीरियल संचार के दौरान, डेटा ट्रांसमिशन अतुल्यकालिक होता है। इसका मतलब है कि ट्रांसमीटर और रिसीवर के बीच कोई घड़ी या अन्य सिंक्रनाइज़ेशन सिग्नल नहीं है। यहां एक बॉड दर का उपयोग किया जाता है, जो क्रमिक डेटा संचारण/प्राप्त करने की गति है और जो डेटा ट्रांसफर से पहले दोनों पक्षों द्वारा निर्धारित की जाती है। इसके अलावा, संपूर्ण यूएआरटी डेटा पैकेट बनाने के लिए डेटा पैकेट की शुरुआत और अंत में विशेष बिट्स जैसे स्टार्ट और स्टॉप बिट्स जोड़े जाते हैं। चित्र 3 यूएआरटी डेटा पैकेट संरचना दिखाता है जबकि चित्र 4 समता बिट के बिना यूएआरटी 8-बिट डेटा पैकेट दिखाता है।
चित्र 3. यूएआरटी डेटा पैकेट संरचना
चित्र 4. यूएआरटी 8-बिट डेटा पैकेट प्रारूप
UART डेटा पैकेट का प्रत्येक भाग नीचे क्रम में प्रस्तुत किया गया है।
- प्रारंभ बिट: यह डेटा पैकेट की शुरुआत को इंगित करता है। ट्रांसमिशन शुरू होने से पहले UART TX पिन आमतौर पर उच्च तर्क स्तर पर रहता है। यदि डेटा ट्रांसमिशन शुरू होता है, तो यूएआरटी ट्रांसमीटर टीएक्स पिन को उच्च से निम्न, यानी 1 से 0 तक खींचेगा, और फिर इसे एक घड़ी चक्र के लिए वहीं रखेगा। आरएक्स पिन पर उच्च से निम्न संक्रमण का पता चलने पर यूएआरटी रिसीवर डेटा पढ़ना शुरू कर देगा।
- डेटा: यह स्थानांतरित किया गया वास्तविक डेटा है, जिसकी डेटा लंबाई 7, 8 या 9 बिट है। डेटा आमतौर पर पहले एलएसबी के साथ स्थानांतरित किया जाता है।
- समता द्वियक: डेटा में तर्क "1" की संख्या का उपयोग यह निर्धारित करने के लिए किया जाता है कि ट्रांसमिशन के दौरान कोई डेटा बदल गया है या नहीं। सम समता के लिए, डेटा में तर्क "1" की कुल संख्या एक सम संख्या होनी चाहिए, इसके विपरीत, विषम समता के लिए डेटा में तर्क "1" की कुल संख्या एक विषम संख्या होनी चाहिए।
- स्टॉप बिट: यह डेटा पैकेट के अंत को इंगित करता है, जहां यूएआरटी ट्रांसमीटर टीएक्स पिन को निम्न से उच्च, यानी 0 से 1 तक खींचेगा, और फिर इसे 1 या 2-बिट समय अवधि के लिए वहां रखेगा।
जैसा कि पहले उल्लेख किया गया है, चूंकि यूएआरटी सर्किट में कोई क्लॉक सिग्नल नहीं है, त्रुटि-मुक्त ट्रांसमिशन को लागू करने के लिए ट्रांसमीटर और रिसीवर के बीच समान सीरियल डेटा ट्रांसमिटिंग/प्राप्त करने की गति, जिसे बॉड दर के रूप में जाना जाता है, को परिभाषित किया जाना चाहिए। बॉड दर को बीपीएस (बिट प्रति सेकंड) में प्रति सेकंड स्थानांतरित बिट्स की संख्या से परिभाषित किया जाता है। कुछ मानक और आमतौर पर उपयोग की जाने वाली बॉड दरें 4800bps, 9600bps, 19200bps, 115200bps आदि हैं। एकल डेटा बिट को स्थानांतरित करने के लिए आवश्यक संबंधित समय नीचे दिखाया गया है।
तालिका 1. बॉड दर बनाम 1-बिट ट्रांसमिशन समय
बॉड दर | 1-बिट ट्रांसमिशन समय |
4800बीपीएस | 208.33µs |
9600बीपीएस | 104.16µs |
19200बीपीएस | 52.08µs |
115200बीपीएस | 8.68µs |
संसाधन डाउनलोड और तैयारी
यह अध्याय एप्लिकेशन कोड और उपयोग किए गए सॉफ़्टवेयर टूल के साथ-साथ निर्देशिका को कॉन्फ़िगर करने के तरीके का परिचय देगा file पथ।
फर्मवेयर लाइब्रेरी
सबसे पहले, सुनिश्चित करें कि एप्लिकेशन कोड का उपयोग करने से पहले होलटेक HT32 फर्मवेयर लाइब्रेरी डाउनलोड की गई है। डाउनलोड लिंक नीचे दिखाया गया है। यहां दो विकल्प हैं, HT32F0xxxx श्रृंखला के लिए HT32_M5p_Vyyyymmdd.zip और HT32F3xxxx श्रृंखला के लिए HT32_M1_Vyyyymmdd.zip। वांछित डाउनलोड करें और अनज़िप करें file.
ज़िप file इसमें कई फ़ोल्डर्स शामिल हैं जिन्हें दस्तावेज़, फ़र्मवेयर लाइब्रेरी, टूल्स और अन्य आइटम के रूप में वर्गीकृत किया जा सकता है, जिसका प्लेसमेंट पथ चित्र 5 में दिखाया गया है। HT32 फ़र्मवेयर लाइब्रेरी ज़िप file के साथ file HT32_STD_xxxxxx_FWLib_Vm.n.r_s.zip का नाम फर्मवेयर_लाइब्रेरी फ़ोल्डर के अंतर्गत स्थित है।
चित्र 5. HT32_M0p_Vyyyymmdd.zip सामग्री
आवेदन कोड
निम्नलिखित लिंक से एप्लिकेशन कोड डाउनलोड करें। एप्लिकेशन कोड को एक ज़िप में पैक किया गया है file के साथ file HT32_APPFW_xxxxxx_APPCODENAME_Vm.n.r_s.zip का नाम. देखना आंकड़ा 6 के लिए file नाम परंपराएँ.
चित्र 6. एप्लिकेशन कोड File नाम परिचय
लिंक को डाउनलोड करें: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/
File और निर्देशिका कॉन्फ़िगरेशन
चूंकि एप्लिकेशन कोड में HT32 फ़र्मवेयर लाइब्रेरी शामिल नहीं है fileएस, एप्लिकेशन कोड और फ़र्मवेयर लाइब्रेरी अनज़िप हो गई fileसंकलन शुरू करने से पहले इसे सही पथ पर रखा जाना चाहिए। एप्लिकेशन कोड ज़िप file आमतौर पर इसमें एक या अधिक फ़ोल्डर होते हैं, जैसे एप्लिकेशन और लाइब्रेरी, जैसा कि चित्र 7 में दिखाया गया है। एप्लिकेशन फ़ोल्डर को पूरा करने के लिए HT32 फ़र्मवेयर लाइब्रेरी रूट डायरेक्टरी के अंतर्गत रखें। file पथ कॉन्फ़िगरेशन, जैसा कि चित्र 8 में दिखाया गया है। वैकल्पिक रूप से, समान कॉन्फ़िगरेशन परिणाम प्राप्त करने के लिए एप्लिकेशन कोड और HT32 फ़र्मवेयर लाइब्रेरी को एक ही पथ में एक साथ अनज़िप करें।
चित्र 7. HT32_APPFW_xxxxxx_APPCODENAME_Vm.n.r_s.zip सामग्री
चित्र 8. डीकंप्रेसन पथ
टर्मिनल सॉफ्टवेयर
फ़ंक्शन चयन या स्थिति प्रदर्शन को लागू करने के लिए एप्लिकेशन कोड COM पोर्ट के माध्यम से संदेशों को स्थानांतरित कर सकता है। इसके लिए मेजबान पक्ष को टर्मिनल सॉफ़्टवेयर पहले से स्थापित करना आवश्यक है। उपयोगकर्ता उचित कनेक्शन सॉफ़्टवेयर चुन सकते हैं, या टेरा टर्म जैसे मुफ़्त लाइसेंस प्राप्त सॉफ़्टवेयर का उपयोग कर सकते हैं। एप्लिकेशन कोड में, UART चैनल को 8-बिट्स की शब्द लंबाई, कोई समता नहीं, 1 स्टॉप बिट और 115200bps की बॉड दर के साथ कॉन्फ़िगर किया गया है।
कार्यात्मक विवरण
यह अध्याय एप्लिकेशन कोड के लिए एक कार्यात्मक विवरण प्रदान करेगा, जिसमें निर्देशिका संरचना, एपीआई आर्किटेक्चर, सेटिंग विवरण आदि की जानकारी शामिल है
निर्देशिका संरचना
एप्लिकेशन कोड file एक एप्लिकेशन फ़ोल्डर शामिल है. अगली परत "मॉड्यूल_यूएआरटी" फ़ोल्डर है जिसमें दो एप्लिकेशन प्रोग्राम हैं, "यूएआरटी_मॉड्यूल_एक्स"ampले" और "UART_Bridge"। प्रासंगिक fileनीचे सूचीबद्ध और वर्णित हैं।
तालिका 2. एप्लिकेशन कोड निर्देशिका संरचना
फ़ोल्डर / File नाम | विवरण |
\\एप्लिकेशन\मॉड्यूल_UART\UART_मॉड्यूल_एक्सample*1 | |
_CreateProject.bat | प्रोजेक्ट बनाने के लिए बैच स्क्रिप्ट files |
_ProjectSource.ini | initialisation file परियोजनाओं में स्रोत कोड जोड़ने के लिए |
ht32_board_config.h | स्थापित करना file आईसी परिधीय I/O असाइनमेंट से संबंधित |
ht32fxxxxx_01_it.c | सेवा कार्यक्रम बाधित करें file |
मुख्य | मुख्य प्रोग्राम स्रोत कोड |
\\आवेदन\मॉड्यूल_UART\UART_ब्रिज*2 | |
_CreateProject.bat | प्रोजेक्ट बनाने के लिए बैच स्क्रिप्ट files |
_ProjectSource.ini | initialisation file परियोजनाओं में स्रोत कोड जोड़ने के लिए |
ht32_board_config.h | स्थापित करना file आईसी परिधीय I/O असाइनमेंट से संबंधित |
ht32fxxxxx_01_it.c | सेवा कार्यक्रम बाधित करें file |
मुख्य | मुख्य कार्यक्रम का स्रोत कोड |
uart_bridge.h uart_bridge.c | यूएआरटी ब्रिज हेडर file और स्रोत कोड file |
\\उपयोगिताएँ\मिडलवेयर | |
uart_module.h*3 uart_module.c*3 | एपीआई हेडर file और स्रोत कोड file |
\\उपयोगिताएँ\सामान्य | |
रिंगबफ़र.एच रिंग_बफ़र.सी | सॉफ़्टवेयर रिंग बफ़र हेडर file और स्रोत कोड file |
टिप्पणी:
- "UART_Module_Ex" मेंampले" एप्लिकेशन कोड, एपीआई पढ़ने और लिखने का संचालन लूपबैक तरीके से किया जाता है, "एपीआई उपयोग पूर्व" देखेंampअधिक जानकारी के लिए लेस” अनुभाग।
- "UART_Bridge" एप्लिकेशन कोड में, दो UART चैनल, UART CH0 और UART CH1 सक्रिय होते हैं, और COMMAND संरचनाओं के माध्यम से कस्टम संचार प्रोटोकॉल दो UART उपकरणों के बीच लागू किया जाता है। अधिक जानकारी के लिए, "एपीआई उपयोग उदाहरण" देखेंampलेस” अनुभाग।
- एप्लिकेशन कोड को uart_module.c/h का उपयोग करने की आवश्यकता है fileजिनमें फ़र्मवेयर लाइब्रेरी संस्करण की आवश्यकता होती है। अपडेट के अनुसार आवश्यकता समय-समय पर बदल सकती है। वर्तमान फ़र्मवेयर लाइब्रेरी संस्करण आवश्यकता की पुष्टि करने के लिए, main.c में कीवर्ड "निर्भरता जाँच" खोजकर निर्भरता जाँच सामग्री देखें। file. यदि फ़र्मवेयर लाइब्रेरी संस्करण आवश्यकताओं को पूरा नहीं करता है, तो "फ़र्मवेयर लाइब्रेरी" अनुभाग में दिए गए लिंक से नवीनतम संस्करण डाउनलोड करें।
एपीआई आर्किटेक्चर
प्रत्येक एपीआई में एक महत्वपूर्ण पैरामीटर सीएच होता है, जो यूएआरटी चैनल है। यह निर्धारित करता है कि किस UART चैनल को नियंत्रित किया जाना है। वर्तमान में अधिकतम चार यूएआरटी चैनल समर्थित हैं और इसलिए चार स्थिर प्रतीकों को निम्नानुसार परिभाषित किया गया है। इनका उपयोग पैरामीटर सीएच के रूप में किया जाता है जो एपीआई को नियंत्रण का आधार प्रदान करता है।
- UARTM_CH0: इनपुट पैरामीटर - UART CH0 को नियंत्रित या कॉन्फ़िगर करें
- UARTM_CH1: इनपुट पैरामीटर - UART CH1 को नियंत्रित या कॉन्फ़िगर करें
- UARTM_CH2: इनपुट पैरामीटर - UART CH2 को नियंत्रित या कॉन्फ़िगर करें
- UARTM_CH3: इनपुट पैरामीटर - UART CH3 को नियंत्रित या कॉन्फ़िगर करें
यदि केवल एक यूएआरटी चैनल का उपयोग किया जाता है तो मेमोरी स्थान बर्बाद नहीं होगा। ऐसा इसलिए है क्योंकि समर्थित यूएआरटी चैनलों की संख्या निर्धारित की जा सकती है और उपलब्ध मेमोरी स्पेस को बढ़ाने के लिए अप्रयुक्त यूएआरटी चैनल कोड को प्रीप्रोसेसर द्वारा हटा दिया जाएगा। एपीआई आर्किटेक्चर में दिखाया गया है आंकड़ा 9.
चित्र 9. एपीआई आर्किटेक्चर ब्लॉक आरेख
प्रत्येक एपीआई यूएआरटी चैनल से संबंधित सेटिंग्स या नियंत्रण के चार समूहों से बना है ताकि उपयोगकर्ताओं को केवल वांछित सीएच पैरामीटर इनपुट करने की आवश्यकता हो। प्रासंगिक एपीआई को कॉन्फ़िगर करने के लिए, संरचना प्रपत्र, USART_InitTypeDef के साथ केवल एक अतिरिक्त 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 | भौतिक यूएआरटी पोर्ट नाम; पूर्व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 कॉन्फ़िगरेशन को संशोधित करने के लिए, संबंधित डिवाइस डेटाशीट देखें। वर्तमान में केवल UART CH0 के लिए I/O परिभाषाएँ प्रभावी हैं क्योंकि केवल UART CH0 को ht32_board_config.h में कॉन्फ़िगर किया गया है। UART CH1~3 को जोड़ने के लिए, उनकी I/O परिभाषाओं को UART CH0 परिभाषा का संदर्भ लेकर या "सेटिंग संशोधन और अक्सर पूछे जाने वाले प्रश्न" अनुभाग का संदर्भ देकर पूरा करना होगा।
तीन एपीआई आर्किटेक्चर मुख्य विशेषताएं हैं:
- अधिकतम चार यूएआरटी चैनल समर्थित हैं। उनके इनपुट पैरामीटर UARTM_CH0, UARTM_CH1, UARTM_CH2 और UARTM_CH3 हैं।
- यूएआरटी चैनलों की संख्या निर्धारित की जा सकती है और अप्रयुक्त चैनल उपलब्ध मेमोरी स्थान को कम नहीं करेंगे।
- सभी UART सेटिंग्स और I/O परिभाषाएँ API से पूरी तरह से अलग हैं। इससे मान सेट करने की प्रबंधन सुविधा बढ़ जाती है और गलत या गुम सेटिंग्स की संभावना कम हो जाती है।
सेटिंग विवरण
यह अनुभाग ht32_board_config.h और uart_module.h में पैरामीटर सेटिंग्स पेश करेगा files.
- ht32_board_config.h: यह file पिन परिभाषाओं और विकास बोर्ड प्रासंगिक सेटिंग्स के लिए उपयोग किया जाता है, जिसमें स्टार्टर किट (एसके) द्वारा उपयोग किए जाने वाले यूएआरटी आईपी चैनल (यूएआरटी0, यूएआरटी1, यूएसएआरटी0…), संबंधित टीएक्स/आरएक्स पिन स्थान और टीएक्स/आरएक्स बफर आकार शामिल हैं। चित्र 10 HT32F52352 स्टार्टर किट की सेटिंग सामग्री दिखाता है। विकास के कार्यात्मक एकीकरण के आधार पर, उपयोगकर्ता पिन परिभाषाओं को लागू करने के लिए प्रयुक्त डिवाइस के डेटाशीट के "पिन असाइनमेंट" अनुभाग का उल्लेख कर सकते हैं। सेटिंग संशोधन के बारे में अधिक विवरण "सेटिंग संशोधन और अक्सर पूछे जाने वाले प्रश्न" अनुभाग में वर्णित किया जाएगा।
चित्र 10. ht32_board_config.h सेटिंग्स (HT32F52352)
- uart_module.h: यह एपीआई हेडर है file एप्लिकेशन कोड द्वारा उपयोग किया जाता है, जिसमें प्रासंगिक डिफ़ॉल्ट सेटिंग्स, फ़ंक्शन परिभाषाएँ आदि शामिल हैं। जैसा कि चित्र 11 में दिखाया गया है, डिफ़ॉल्ट सेटिंग सामग्री को बाहरी कॉन्फ़िगरेशन द्वारा ओवरराइट किया जा सकता है, जैसे कि ht32_board_config.h में सेटिंग्स file.
चित्र 11. uart_module.h में डिफ़ॉल्ट सेटिंग्स
एपीआई विवरण
- एप्लिकेशन कोड डेटा प्रकार विवरण।
- USART_InitTypeDef
यह यूएआरटी बुनियादी कॉन्फ़िगरेशन संरचना है जो बॉड्रेट, वर्डलेंथ, स्टॉपबिट्स, पैरिटी और मोड कॉन्फ़िगरेशन से बनी है, जैसा कि नीचे दिखाया गया है।चर नाम प्रकार विवरण USART_BaudRate u32 यूएआरटी संचार बॉड दर USART_शब्द लंबाई u16 यूएआरटी संचार शब्द की लंबाई: 7, 8 या 9 बिट्स USART_स्टॉपबिट्स u16 यूएआरटी संचार स्टॉप बिट लंबाई: 1 या 2 बिट USART_समता u16 यूएआरटी संचार समता: सम, विषम, चिह्न, स्थान या कोई समता नहीं USART_मोड u16 यूएआरटी संचार मोड; एपीआई केवल सामान्य मोड का समर्थन करते हैं
- USART_InitTypeDef
- एपीआई फ़ंक्शंस का उपयोग करने से पहले, मुख्य प्रोग्राम में यूएआरटी बुनियादी कॉन्फ़िगरेशन को पूरा करें। इस एप्लिकेशन कोड के लिए यूएआरटी मूल कॉन्फ़िगरेशन चित्र 12 में दिखाया गया है। यहां बॉड दर 115200बीपीएस है, शब्द की लंबाई 8-बिट है, स्टॉप बिट की लंबाई 1-बिट है, और कोई समानता नहीं है।
चित्र 12. यूएआरटी मूल विन्यास
- चित्र 13 uart_module.h में घोषित एपीआई फ़ंक्शन दिखाता है file. निम्नलिखित तालिकाएँ एपीआई फ़ंक्शन के फ़ंक्शन, इनपुट पैरामीटर और उपयोग की व्याख्या करती हैं।
चित्र 13. uart_module.h में एपीआई फ़ंक्शन घोषणाएँ
नाम | शून्य UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
समारोह | यूएआरटी मॉड्यूल आरंभीकरण | |
इनपुट | CH | यूएआरटी चैनल |
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 | यूएआरटी चैनल |
uData | जो डेटा लिखा जाना है | |
उत्पादन | सफलता | सफल |
गलती | असफल | |
प्रयोग | UARTM_WriteByte(UARTM_CH0, 'ए'); //UART 1 बाइट लिखता है - 'ए' |
नाम | u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength) | |
समारोह | UART मॉड्यूल राइट ऑपरेशन (TX) | |
इनपुट | CH | यूएआरटी चैनल |
पीबफर | बफ़र सूचक | |
यूलंबाई | लिखे जाने वाले डेटा की लंबाई | |
उत्पादन | सफलता | सफल |
गलती | असफल | |
प्रयोग | u8 टेस्ट[] = "यह परीक्षण है!\r\n"; UARTM_Write(UARTM_CH0, परीक्षण, आकार(परीक्षण) -1); //UART pBuffer डेटा लिखता है |
नाम | u32 UARTM_ReadByte(u32 CH, u8 *pData) | |
समारोह | यूएआरटी मॉड्यूल रीड बाइट ऑपरेशन (आरएक्स) | |
इनपुट | CH | यूएआरटी चैनल |
पीडेटा | पढ़े गए डेटा को रखने का पता | |
उत्पादन | सफलता | सफल |
गलती | विफल (कोई डेटा नहीं) | |
प्रयोग | u8 टेम्पडेटा; यदि (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//यदि UARTM_ReadByte() सफलता लौटाता है तो UART इस डेटा बाइट को लिखता है |
नाम | u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength) | |
समारोह | यूएआरटी मॉड्यूल रीड ऑपरेशन (आरएक्स) | |
इनपुट | CH | यूएआरटी चैनल |
पीबफर | बफ़र सूचक | |
यूलंबाई | पढ़े जाने वाले डेटा की लंबाई | |
उत्पादन | गिनती पढ़ें | डेटा की लंबाई पढ़ ली गई है |
प्रयोग | यू8 टेस्ट2[10]; यू32 लेन; लेन = UARTM_Read(UARTM_CH0, Test2, 5);यदि (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() 5 बाइट डेटा पढ़ता है और डेटा को Test2 में संग्रहीत करता है, और रीड बाइट गिनती निर्दिष्ट करता है लेन के लिए // Test2 से प्राप्त डेटा लिखें |
नाम | u32 UARTM_GetReadBufferLength(u32 सीएच) | |
समारोह | रीड बफ़र लंबाई (RX) प्राप्त करें | |
इनपुट | CH | यूएआरटी चैनल |
उत्पादन | यूलंबाई | बफ़र लंबाई पढ़ें |
प्रयोग | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART मॉड्यूल आरंभीकरण जबकि (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//UARTM_ReadBuffer को 5 बाइट डेटा प्राप्त होने तक प्रतीक्षा करें |
नाम | u32 UARTM_GetWriteBufferLength(u32 सीएच) | |
समारोह | लेखन बफ़र लंबाई (TX) प्राप्त करें | |
इनपुट | CH | यूएआरटी चैनल |
उत्पादन | यूलंबाई | बफ़र लंबाई लिखें |
नाम | u8 UARTM_IsTxसमाप्त(u32 सीएच) | |
समारोह | TX स्थिति प्राप्त करें | |
इनपुट | CH | यूएआरटी चैनल |
उत्पादन | सत्य | TX स्थिति: समाप्त |
असत्य | TX स्थिति: समाप्त नहीं | |
प्रयोग | UARTM_WriteByte(UARTM_CH0, 'O'); #यदि 1 // "uart_module.c" SVN >=525 आवश्यक है जबकि (UARTM_IsTxसमाप्त(UARTM_CH0) == FALSE) #अन्यथा (1) #endif //इस एपीआई का उपयोग टीएक्स स्थिति की जांच करने के लिए किया जा सकता है, जैसा कि ऊपर दिखाया गया है; UARTM_WriteByte() API समाप्त होने तक प्रतीक्षा करें, यानी, TX स्थिति TRUE है, और फिर बाद की कार्रवाइयां जारी रखें। // एक प्रतिबंध जोड़ा गया है क्योंकि यह फ़ंक्शन तब तक नहीं जोड़ा गया है जब तक कि uart_module.c में SVN संस्करण संख्या 525 न हो जाए। |
नाम | खालीपन UARTM_DiscardReadBuffer(u32 सीएच) | |
समारोह | रीड बफ़र में डेटा को हटा दें | |
इनपुट | CH | यूएआरटी चैनल |
एपीआई उपयोग उदाampलेस
यह अनुभाग एपीआई लिखने और पढ़ने को प्रदर्शित करेगाampआरंभीकरण प्रक्रिया और "UART_Module_Ex" का उपयोग करके "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड का उपयोग करेंampले” एप्लिकेशन कोड प्रक्रिया। एपीआई का उपयोग करने से पहले, उपयोगकर्ताओं को एपीआई हेडर शामिल करना होगा file मुख्य प्रोग्राम स्रोत कोड में file (#शामिल है “मिडलवेयर/uart_module.h”)।
जैसा कि चित्र 14 में दिखाया गया है, आरंभीकरण प्रक्रिया में प्रवेश करते समय, पहले UART बुनियादी कॉन्फ़िगरेशन संरचना को परिभाषित करें। फिर बॉड्रेट, वर्डलेंथ, स्टॉपबिट्स, पैरिटी और मोड सहित यूएआरटी बुनियादी कॉन्फ़िगरेशन संरचना सदस्यों को कॉन्फ़िगर करें। अंत में, एपीआई इनिशियलाइज़ेशन फ़ंक्शन को कॉल करें, जिसका पूरा होना इनिशियलाइज़ेशन प्रक्रिया के अंत को इंगित करता है। इसके बाद उपयोगकर्ता पूर्व निर्धारित यूएआरटी बुनियादी कॉन्फ़िगरेशन के आधार पर लिखना और पढ़ना कार्य जारी रख सकते हैं।
चित्र 14. आरंभीकरण फ़्लोचार्ट
"UART_मॉड्यूल_एक्सampले" एप्लिकेशन कोड लूपबैक तरीके से एपीआई पढ़ने और लिखने के संचालन को प्रदर्शित करता है। इसके लिए फ़्लोचार्ट चित्र 15 में दिखाया गया है। उपयोग किए गए एपीआई फ़ंक्शंस में UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() और UARTM_GetReadBufferLength() शामिल हैं। उनका विवरण "एपीआई विवरण" अनुभाग में दिया गया है।
चित्र 15. लिखें और पढ़ें उदाहरण का फ़्लोचार्टampलेस
"मॉड्यूल_यूएआरटी" फ़ोल्डर के अंतर्गत एक और "यूएआरटी_ब्रिज" एप्लिकेशन कोड है जिसका संबंध है file विवरण "निर्देशिका संरचना" अनुभाग में प्रस्तुत किया गया है। "UART_Bridge" एप्लिकेशन कोड दो UART चैनल, UART CH0 और UART CH1 को सक्रिय करता है, और फिर COMMAND संरचनाओं, gCMD1 और gCMD2 के माध्यम से दो UART उपकरणों के बीच संचार प्रोटोकॉल को अनुकूलित करता है। इन्हें uart_bridge.c में परिभाषित किया गया है, जैसा कि नीचे दिखाया गया है। UARTBridge_CMD1TypeDef gCMD1:
चर नाम | प्रकार | विवरण |
यूहैडर | u8 | हैडर |
यूसीएमडी | u8 | आज्ञा |
यूडेटा[3] | u8 | डेटा |
UARTBridge_CMD2TypeDef gCMD2:
चर नाम | प्रकार | विवरण |
यूहैडर | u8 | हैडर |
यूसीएमडीए | u8 | कमान ए |
यूसीएमडीबी | u8 | कमान बी |
यूडेटा[3] | u8 | डेटा |
"UART_Bridge" एप्लिकेशन कोड में, कमांड पैकेट के रूप में डेटा प्राप्त करने के लिए gCMD1 का उपयोग करें और फिर उसका विश्लेषण करें। फिर अनुकूलित संचार प्रोटोकॉल के अनुसार, gCMD2 को प्रतिक्रिया पैकेट के रूप में सेट करें और इसे प्रसारित करें। निम्नलिखित एक पूर्व हैampएक कमांड पैकेट gCMD1) और एक प्रतिक्रिया पैकेट (gCMD2)। कमांड पैकेट (UARTBridge_CMD1TypeDef gCMD1):
बाइट 0 | बाइट 1 | बाइट 2 ~ बाइट 4 |
यूहैडर | यूसीएमडी | यूडेटा [3] |
"ए" | “1” | "एक्स, वाई, जेड" |
प्रतिक्रिया पैकेट (UARTBridge_CMD2TypeDef gCMD2):
बाइट 0 | बाइट 1 | बाइट 2 | बाइट 3 ~ बाइट 5 |
यूहैडर | यूसीएमडीए | यूसीएमडीबी | यूडेटा [3] |
"बी" | "ए" | “1” | "एक्स, वाई, जेड" |
संसाधन व्यवसाय
HT32F52352 को पूर्व के रूप में लेनाampले, यूएआरटी मॉड्यूल द्वारा कब्जा किए गए संसाधनों को नीचे दिखाया गया है।
HT32F52352 | |
रोम का आकार | 946 बाइट्स |
रैम आकार | 40*1 + 256*2 बाइट्स |
टिप्पणी:
- एक चैनल के लिए झंडे और स्थिति सहित वैश्विक चर 40 बाइट्स रैम पर कब्जा करते हैं।
- यह उस स्थिति के लिए है जहां एकल चैनल का उपयोग किया जाता है और TX/RX बफर आकार 128/128 बाइट्स है। बफ़र आकार को एप्लिकेशन आवश्यकताओं के अनुसार सेट किया जा सकता है।
तालिका 4. एप्लिकेशन कोड संसाधन व्यवसाय
- संकलन वातावरण: एमडीके-आर्म वी5.36, एआरएमसीसी वी5.06 अपडेट 7 (बिल्ड 960)
- अनुकूलन विकल्प: लेवल 2 (-O2)
उपयोग हेतु निर्देश
यह अध्याय "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड के लिए पर्यावरणीय तैयारी के साथ-साथ संकलन और परीक्षण चरणों का परिचय देगा।
पर्यावरणीय तैयारी
"मॉड्यूल_यूएआरटी" एप्लिकेशन कोड के लिए आवश्यक हार्डवेयर और सॉफ्टवेयर नीचे सूचीबद्ध हैं।
तालिका 5. हार्डवेयर/सॉफ्टवेयर पर्यावरण तैयारी
हार्डवेयर सॉफ्टवेयर | गिनती करना | टिप्पणी |
आरंभक साज - सामान | 1 | यह एप्लिकेशन नोट पूर्व के रूप में HT32F52352 स्टार्टर किट का उपयोग करता हैample |
यूएसबी तार | 1 | माइक्रो यूएसबी, पीसी से जुड़ा |
आवेदन कोड | — | डाउनलोड पथ, file और निर्देशिका कॉन्फ़िगरेशन को "संसाधन डाउनलोड और तैयारी" अनुभाग में पेश किया गया है। पथ: "\\application\Module_UART\UART_Module_Exampद" |
टेरा टर्म | — | "टर्मिनल सॉफ़्टवेयर" अनुभाग देखें |
कील आईडीई | — | कील यूविज़न V5.xx |
सबसे पहले, यूएआरटी एप्लिकेशन परिचय के लिए ई-लिंक32 लाइट के वर्चुअल COM पोर्ट (वीसीपी) फ़ंक्शन के साथ संयुक्त HT52352F32 स्टार्टर किट का उपयोग करें। इसके लिए निम्नलिखित पर्यावरणीय तैयारी को लागू करने की आवश्यकता है:
- बोर्ड पर दो यूएसबी इंटरफेस हैं। जैसा कि चित्र 32-(ए) में दिखाया गया है, पीसी और बोर्ड पर ईलिंक16 लाइट इंटरफ़ेस को कनेक्ट करने के लिए यूएसबी केबल का उपयोग करें।
- चूंकि एप्लिकेशन कोड को ई-लिंक32 लाइट वर्चुअल COM पोर्ट (VCP) फ़ंक्शन का उपयोग करने की आवश्यकता है, इसलिए सुनिश्चित करें कि UART जम्पर-J2*2 के PAx*1 और DAP_Tx को जम्पर का उपयोग करके छोटा कर दिया गया है। J2 स्थान चित्र 16-(बी) द्वारा दर्शाया गया है।
टिप्पणी
- स्टार्टर किट पर J2 के दो विकल्प हैं, PAx और DAP_Tx शॉर्टेड या PAx और RS232_Tx शॉर्टेड। विस्तृत सेटिंग फ़ंक्शन के लिए स्टार्टर किट उपयोगकर्ता मैनुअल देखें।
- अलग-अलग स्टार्टर किट पर MCU UART RX पिन का स्थान अलग-अलग होता है। यह पूर्वampRX पिन को इंगित करने के लिए PAx का उपयोग करता है।
चित्र 16. HT32 स्टार्टर किट ब्लॉक आरेख
अब यूएआरटी एप्लिकेशन परिचय के लिए ई-लिंक32 प्रो के वर्चुअल COM पोर्ट (वीसीपी) फ़ंक्शन के साथ संयुक्त उपयोगकर्ता लक्ष्य बोर्ड का उपयोग करें। इसके लिए निम्नलिखित पर्यावरणीय तैयारी को लागू करने की आवश्यकता है:
- ई-लिंक32 प्रो का एक किनारा मिनी यूएसबी केबल का उपयोग करके पीसी से जुड़ा है और दूसरा किनारा इसके 10-बिट ग्रे केबल के माध्यम से उपयोगकर्ता लक्ष्य बोर्ड से जुड़ा है। केबल और लक्ष्य बोर्ड के एसडब्ल्यूडी इंटरफेस के बीच कनेक्शन ड्यूपॉन्ट लाइनों का उपयोग करके कार्यान्वित किया जाता है, जैसा चित्र 17-(ए) में दिखाया गया है।
- ई-लिंक32 प्रो के सीरियल संचार पिन पिन#7 VCOM_RXD और पिन#8- VCOM_TXD हैं। इन्हें उपयोगकर्ता लक्ष्य बोर्ड के TX और RX पिन से जोड़ा जाना चाहिए, जैसा चित्र 17-(बी) में दिखाया गया है।
चित्र 17. ई-लिंक32 प्रो + उपयोगकर्ता लक्ष्य बोर्ड ब्लॉक आरेख
संकलन एवं परीक्षण
यह अनुभाग "एप्लिकेशन\मॉड्यूल_यूएआरटी\यूएआरटी_मॉड्यूल_एक्स" लेगाampले” एक पूर्व के रूप मेंampसंकलन और परीक्षण प्रक्रियाओं का परिचय दें। इससे पहले, सुनिश्चित करें कि पिछले अनुभाग में वर्णित सभी तैयारियां लागू कर दी गई हैं और टेरा टर्म टर्मिनल सॉफ्टवेयर डाउनलोड कर लिया गया है।
विस्तृत ऑपरेशन चरणों का सारांश नीचे दिया गया है।
चरण 1. पावर-ऑन परीक्षण
पिछले अनुभाग में बताए अनुसार हार्डवेयर वातावरण सेट करें। पावर-ऑन के बाद, स्टार्टर किट के नीचे बाईं ओर D9 पावर एलईडी प्रकाशित हो जाएगी। यूएसबी गणना पूरी होने के बाद ऊपर दाईं ओर ई-लिंक1 लाइट पर डी32 यूएसबी एलईडी प्रकाशित हो जाएगी। यदि लंबे समय के बाद भी D1 प्रकाशित नहीं होता है, तो पुष्टि करें कि USB केबल संचार करने में सक्षम है या नहीं। यदि नहीं तो इसे हटा दें और दोबारा डालें।
चरण 2. एक प्रोजेक्ट बनाएं
एप्लिकेशन\Module_UART\UART_Module_Ex खोलेंampफ़ोल्डर में, _CreateProject.bat पर क्लिक करें file एक प्रोजेक्ट तैयार करने के लिए, जैसा कि चित्र 18 में दिखाया गया है। चूंकि यह एप्लिकेशन नोट HT32F52352 स्टार्टर किट का उपयोग करता है, MDK_ARMv52352 फ़ोल्डर के अंतर्गत स्थित Keil IDE प्रोजेक्ट "Project_5.uvprojx" खोलें।
चित्र 18. प्रोजेक्ट बनाने के लिए _CreateProject.bat निष्पादित करें
चरण 3. संकलित करें और प्रोग्राम करें
प्रोजेक्ट खुलने के बाद, पहले "बिल्ड" पर क्लिक करें (या शॉर्टकट "F7" का उपयोग करें), फिर "डाउनलोड" पर क्लिक करें (या शॉर्टकट "F8" का उपयोग करें)। इसके बाद, बिल्ड और डाउनलोड परिणाम बिल्ड आउटपुट विंडो में प्रदर्शित होंगे। चित्र 19 देखें.
चित्र 19. परिणाम बनाएं और डाउनलोड करें
स्टेप 4. टेरा टर्म सॉफ़्टवेयर खोलें और सीरियल पोर्ट कॉन्फ़िगर करें
टेरा टर्म सॉफ्टवेयर और COM पोर्ट खोलें। इस बात पर ध्यान दें कि स्टार्टर किट द्वारा जनरेट किया गया COM पोर्ट नंबर सही है या नहीं। फिर कॉन्फ़िगरेशन इंटरफ़ेस दर्ज करने के लिए "सेटअप >> सीरियल पोर्ट" पर क्लिक करें। "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड का यूएआरटी इंटरफ़ेस कॉन्फ़िगरेशन "टर्मिनल सॉफ़्टवेयर" अनुभाग में वर्णित है। सेटअप परिणाम चित्र 20 में दिखाया गया है।
चित्र 20. तेरा टर्म सीरियल पोर्ट सेटअप परिणाम
चरण 5. सिस्टम को रीसेट करें और परीक्षण करें
SK रीसेट कुंजी - B1 रीसेट दबाएँ। इसके बाद, "एबीसीयह परीक्षण है!" संदेश होगा
एपीआई के माध्यम से प्रेषित और टेरा टर्म विंडो में प्रदर्शित किया जाएगा, जैसा कि चित्र 21 में दिखाया गया है। प्राप्त फ़ंक्शन के संबंध में, टेरा टर्म विंडो में डेटा दर्ज करते समय, संबंधित एपीआई का उपयोग प्राप्त बफर लंबाई निर्धारित करने के लिए किया जाएगा। जब पीसी द्वारा प्राप्त डेटा 5 बाइट्स तक पहुंच जाता है, तो प्राप्त डेटा के 5 बाइट्स क्रमिक रूप से भेजे जाएंगे। जैसा कि चित्र 22 में दिखाया गया है, क्रमिक रूप से दर्ज किया गया डेटा "1, 2, 3, 4, 5" है, जो एपीआई के माध्यम से प्राप्त और निर्धारित किया जाता है। इसके बाद पांच इनपुट के बाद डेटा “1, 2, 3, 4, 5” प्रिंट हो जाएगा।
चित्र 21. "मॉड्यूल_यूएआरटी" एप्लीकेशन कोड कार्यात्मक परीक्षण - ट्रांसमिट
चित्र 22. "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड कार्यात्मक परीक्षण - प्राप्त करें
प्रत्यारोपण निर्देश
यह अनुभाग परिचय देगा कि उपयोगकर्ता की परियोजनाओं में एपीआई को कैसे एकीकृत किया जाए।
स्टेप 1। Uart_module.c जोड़ें file परियोजना में. उपयोगकर्ता फ़ोल्डर पर राइट-क्लिक करें। “मौजूदा जोड़ें” चुनें Files को समूह 'उपयोगकर्ता'...' में बदलें, फिर uart_module.c चुनें file और "जोड़ें" पर क्लिक करें, जैसा चित्र 23 में दिखाया गया है। के लिए "निर्देशिका संरचना" अनुभाग देखें file पथ विवरण.
चित्र 23. uart_module.c जोड़ें File अनुमान लगाना
स्टेप 2. Ring_buffer.c जोड़ें file परियोजना में. उपयोगकर्ता फ़ोल्डर पर राइट-क्लिक करें। “मौजूदा जोड़ें” चुनें Files को समूह 'उपयोगकर्ता'...' में बदलें, फिर रिंग_बफ़र.c चुनें file और "जोड़ें" पर क्लिक करें, जैसा चित्र 24 में दिखाया गया है।\ के लिए "निर्देशिका संरचना" अनुभाग देखें file पथ विवरण.
चित्र 24. रिंग_बफ़र.सी जोड़ें File अनुमान लगाना
स्टेप 3. एपीआई हेडर शामिल करें file Main.c की शुरुआत में, जैसा कि चित्र 25 में दिखाया गया है। (एक्स्ट: #include "middleware/uart_module.h")
चित्र 25. एपीआई हेडर शामिल करें File से main.c
स्टेप 4. Ht32_board_config.h का उपयोग करके UART संचार के लिए आवश्यक सेटिंग्स लागू करें file. इसे "सेटिंग विवरण" और "सेटिंग संशोधन और अक्सर पूछे जाने वाले प्रश्न" अनुभागों में विस्तार से प्रस्तुत किया गया है।
संशोधन और अक्सर पूछे जाने वाले प्रश्न सेट करना
यह अनुभाग यूएआरटी सेटिंग्स को संशोधित करने का तरीका बताएगा और उपयोग के दौरान आने वाले कुछ सामान्य प्रश्नों की व्याख्या करेगा।
यूएआरटी पिन असाइनमेंट बदलें
- HT32F52352 डेटाशीट "पिन असाइनमेंट" अध्याय का संदर्भ लेते हुए, वैकल्पिक फ़ंक्शन मैपिंग तालिका देखें जो डिवाइस प्रकार के AFIO फ़ंक्शंस को सूचीबद्ध करती है। UART प्रासंगिक पिन के लिए, "AF6 USART/UART" कॉलम देखें, जैसा चित्र 26 में दिखाया गया है।
चित्र 26. HT32F52352 वैकल्पिक फ़ंक्शन मैपिंग तालिका
- यह चरण उपयोगकर्ताओं को उपरोक्त तालिका का उपयोग करके संबंधित यूएआरटी पिन का पता लगाने में मार्गदर्शन करेगा। HT32F52352 पूर्वampवह डिफ़ॉल्ट चैनल के रूप में USART1 का उपयोग करता है। यहां, TX और RX पिन USR1_TX और USR1_RX हैं और क्रमशः PA4 और PA5 पर स्थित हैं। चित्र 27 "ht32_board_config.h" में पिन पत्राचार के साथ-साथ पिन परिभाषाएँ दिखाता है। पिन असाइनमेंट तालिका में "पैकेज" के खाली फ़ील्ड का मतलब है कि इस पैकेज में कोई प्रासंगिक GPIO नहीं हैं। यूएआरटी पिन को संशोधित करने के लिए, लक्ष्य पिन स्थान ढूंढें और "ht32_board_config.h" का उपयोग करके पिन को फिर से परिभाषित करें। file.
चित्र 27. पिन पत्राचार और सेटिंग संशोधन
एक UART चैनल जोड़ें
HT32F52352 HTCFG_UARTM_CH1 को पूर्व के रूप में लेनाampले, यहां बताया गया है कि नया यूएआरटी चैनल कैसे जोड़ा जाए।
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. एक यूएआरटी चैनल जोड़ें
पूछे जाने वाले प्रश्न
Q: संकलन और परीक्षण अनुभाग के चरण 5 में, संचारित कार्यात्मक परीक्षण सामान्य है। यहाँ, "एबीसीयह परीक्षण है!" संदेश सफलतापूर्वक प्रदर्शित किया गया है, हालाँकि प्राप्त फ़ंक्शन के लिए, पाँच इनपुट मान वापस क्यों नहीं किए जाते और प्रदर्शित नहीं किए जाते?
A: जंपर का उपयोग करके जांचें कि क्या UART जम्पर-J2 के MCU UART RX और DAP_Tx पिन को छोटा कर दिया गया है। चूंकि "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड को ई-लिंक32 लाइट के वर्चुअल COM पोर्ट (वीसीपी) का उपयोग करने की आवश्यकता है, शॉर्ट-सर्किट सेटिंग को यूएआरटी जम्पर-जे2 के बाएं दो पिनों पर लागू किया जाना चाहिए, जैसा कि चित्र 29 में दिखाया गया है।
चित्र 29. यूएआरटी जम्पर-जे2 सेटिंग
प्रश्न: बाद में "बिल्ड" (या शॉर्टकट "F7") को निष्पादित करते समय, एक त्रुटि संदेश दिखाई देता है जो दर्शाता है कि फर्मवेयर लाइब्रेरी संस्करण आवश्यक संस्करण से पुराना है? चित्र 30 देखें.
A: "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड के कार्यान्वयन में uart_module.c/h को शामिल करना आवश्यक है files जिसमें एक निश्चित फ़र्मवेयर लाइब्रेरी संस्करण की आवश्यकता होती है। जब ऐसा त्रुटि संदेश प्रकट होता है, तो इसका मतलब है कि वर्तमान में उपयोग की जाने वाली फ़र्मवेयर लाइब्रेरी पुराना संस्करण है। इसलिए "फर्मवेयर लाइब्रेरी" अनुभाग में दिए गए लिंक के माध्यम से नवीनतम संस्करण डाउनलोड करना आवश्यक है।
चित्र 30. फ़र्मवेयर लाइब्रेरी संस्करण त्रुटि संदेश
निष्कर्ष
इस दस्तावेज़ ने उपयोगकर्ताओं को "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड और यूएआरटी संचार प्रोटोकॉल की बेहतर समझ में सहायता के लिए एक बुनियादी परिचय प्रदान किया है। इसके बाद संसाधन डाउनलोड और तैयारी की गई। कार्यात्मक विवरण अध्याय ने परिचय दिया file निर्देशिका संरचना, एपीआई वास्तुकला, एपीआई विवरण और एपीआई उपयोग उदाampलेस. उपयोग के लिए निर्देश अध्याय ने "मॉड्यूल_यूएआरटी" एप्लिकेशन कोड की पर्यावरणीय तैयारी, संकलन और परीक्षण का प्रदर्शन किया। इसमें कोड ट्रांसप्लांट और संशोधन सेटिंग के साथ-साथ सामने आने वाली कुछ सामान्य समस्याओं के बारे में भी निर्देश दिए गए हैं। यह सब मिलकर उपयोगकर्ताओं को एपीआई का उपयोग करने के तरीके को तुरंत समझने की अनुमति देगा और बाद में आरंभ करने के लिए समय की मात्रा कम कर देगा।
संदर्भ सामग्री
अधिक जानकारी के लिए, होल्टेक देखें webसाइट: www.holtek.com
संस्करण और संशोधन जानकारी
तारीख | लेखक | मुक्त करना | संशोधन सूचना |
2022.04.30 | 蔡期育(ची-यू त्साई) | वी1.00 | पहला संस्करण |
अस्वीकरण
इस पर दिखाई देने वाली सभी जानकारी, ट्रेडमार्क, लोगो, ग्राफिक्स, वीडियो, ऑडियो क्लिप, लिंक और अन्य आइटम webसाइट ('सूचना') केवल संदर्भ के लिए है और बिना किसी पूर्व सूचना के और होल्टेक सेमीकंडक्टर इंक. और इसकी संबंधित कंपनियों (इसके बाद 'होल्टेक', 'कंपनी', 'हमें', 'के विवेक पर परिवर्तन के अधीन है। हम' या 'हमारा')। जबकि होल्टेक इस पर सूचना की सटीकता सुनिश्चित करने का प्रयास करता है webसाइट, सूचना की सटीकता के लिए होल्टेक द्वारा कोई स्पष्ट या निहित वारंटी नहीं दी गई है। होल्टेक किसी भी गलत या लीकेज के लिए जिम्मेदार नहीं होगा।
होल्टेक किसी भी नुकसान के लिए उत्तरदायी नहीं होगा (जिसमें कंप्यूटर वायरस, सिस्टम की समस्याएं या डेटा हानि शामिल है लेकिन सीमित नहीं है) जो भी इसका उपयोग करने या इसके उपयोग के संबंध में उत्पन्न होता है। webकिसी भी पार्टी द्वारा साइट। इस क्षेत्र में लिंक हो सकते हैं, जो आपको यहां जाने की अनुमति देते हैं webअन्य कंपनियों की साइटें.
इन webसाइटों को Holtek द्वारा नियंत्रित नहीं किया जाता है। होल्टेक ऐसी साइटों पर प्रदर्शित किसी भी जानकारी के लिए कोई जिम्मेदारी और कोई गारंटी नहीं लेगा। अन्य के लिए हाइपरलिंक webसाइटें आपके अपने जोखिम पर हैं।
दायित्व की सीमा
किसी भी स्थिति में होलटेक लिमिटेड किसी भी नुकसान या क्षति के लिए किसी भी अन्य पार्टी के लिए उत्तरदायी नहीं होगा या जो कुछ भी प्रत्यक्ष या अप्रत्यक्ष रूप से आपके उपयोग या इसके उपयोग के संबंध में हुआ हो। webसाइट, उस पर सामग्री या कोई सामान, सामग्री या सेवाएं।
शासी कानून
अस्वीकरण में निहित है webसाइट चीन गणराज्य के कानूनों के अनुसार शासित और व्याख्या की जाएगी। उपयोगकर्ता चीन गणराज्य की अदालतों के गैर-अनन्य क्षेत्राधिकार को प्रस्तुत करेंगे।
अस्वीकरण का अद्यतन
होल्टेक किसी भी समय पूर्व सूचना के साथ या बिना किसी भी समय अस्वीकरण को अपडेट करने का अधिकार सुरक्षित रखता है, सभी परिवर्तन पोस्ट करने के तुरंत बाद प्रभावी होते हैं webसाइट।
दस्तावेज़ / संसाधन
![]() |
HOLTEK HT32 MCU UART एप्लीकेशन नोट [पीडीएफ] उपयोगकर्ता पुस्तिका HT32 MCU, UART एप्लीकेशन नोट, HT32 MCU UART, एप्लीकेशन नोट, HT32, MCU UART एप्लीकेशन नोट, HT32 MCU UART एप्लीकेशन नोट |