विषयसूची:
- चरण 1: सॉफ्टवेयर और हार्डवेयर आवश्यकताएँ
- चरण 2: STM32CubeMX कॉन्फ़िगरेशन
- चरण 3: कील सॉफ्टवेयर विकास
- चरण 4: पायथन सॉफ्टवेयर विकास
- चरण 5: निष्कर्ष
वीडियो: STM32F4 डिस्कवरी बोर्ड और पायथन USART संचार (STM32CubeMx): 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
नमस्ते! इस ट्यूटोरियल में हम STM32F4 ARM MCU और Python (इसे किसी अन्य भाषा से बदला जा सकता है) के बीच USART संचार स्थापित करने का प्रयास करेंगे। तो चलो शुरू हो जाओ:)
चरण 1: सॉफ्टवेयर और हार्डवेयर आवश्यकताएँ
हार्डवेयर के संदर्भ में आपको चाहिए:
- STM32F4 डिस्कवरी बोर्ड (या कोई अन्य STM32 बोर्ड)
- यूएसबी से टीटीएल कनवर्टर
सॉफ्टवेयर के संदर्भ में:
- STM32CubeMX
- कील यूविज़न5
- सीरियल लाइब्रेरी के साथ पायथन स्थापित
चरण 2: STM32CubeMX कॉन्फ़िगरेशन
आइए पहले समझते हैं कि हम क्या करना चाहते हैं। हम USART पर पायथन से बोर्ड को डेटा संचारित करना चाहते हैं और जांचते हैं कि क्या हमारे पास सही डेटा है और टॉगल का नेतृत्व किया गया है। इसलिए, हमें USART और LED को सक्षम करने की आवश्यकता है।
-
कनेक्टिविटी टैब से USART2 को सक्षम करें।
- मोड को असिंक्रोनस में बदलें
- बॉड दर 9600 बिट/सेकेंड
- शब्द की लंबाई बिना समानता के 8 बिट तक
- कोई समता बिट
- DMA सेटिंग से USART2_RX को सिकुलर मोड में जोड़ें
- NVIC सेटिंग्स से USART2 वैश्विक व्यवधान को सक्षम करें
- PD12 पर क्लिक करके LED सक्षम करें
फिर कोड जेनरेट करें:)
चरण 3: कील सॉफ्टवेयर विकास
#शामिल
#शामिल
स्ट्रिंग संचालन में और बूलियन चर को परिभाषित करने के लिए इन पुस्तकालयों की आवश्यकता होगी।
/* उपयोगकर्ता कोड BEGIN 2 */ HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1); /* उपयोगकर्ता कोड समाप्ति 2 */
यहां, यूएआरटी प्राप्त डीएमए के साथ शुरू हुआ।
/* यूजर कोड BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {/* अप्रयुक्त तर्क (ओं) संकलन चेतावनी को रोकें */ UNUSED(huart); /* नोट: इस फ़ंक्शन को संशोधित नहीं किया जाना चाहिए, जब कॉलबैक की आवश्यकता होती है, तो उपयोगकर्ता फ़ाइल में HAL_UART_RxCpltCallback लागू किया जा सकता है */ if(data_buffer[0] != '\n'){ data_full[index_] = data_buffer[0]; अनुक्रमणिका_++; }अन्य{ अनुक्रमणिका_ = 0; समाप्त = 1; } //HAL_UART_Transmit(&huart2, data_buffer, 1, 10); } /* उपयोगकर्ता कोड समाप्ति 4 */
यह ISR है जो तब सक्रिय होता है जब हमें एक बाइट कैरेक्टर मिलता है। इसलिए। हम उस बाइट को प्राप्त करते हैं और इसे data_full पर लिखते हैं जिसमें पूर्ण प्राप्त डेटा होता है जब तक कि हमें '\ n' नहीं मिलता। जब हमें '\ n' मिलता है तो हम तैयार ध्वज 1 बनाते हैं और लूप में:
जबकि (1) {/* उपयोगकर्ता कोड समाप्त होने पर */ यदि (समाप्त) { अगर (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } मेमसेट (डेटा_फुल, '\ 0', स्ट्रेल (डेटा_फुल)); समाप्त = 0; }और{ _एनओपी (); } /* प्रयोक्ता कोड प्रारंभ ३ */ }
यदि समाप्त ध्वज उच्च है तो हम पूर्ण प्राप्त डेटा और डेटा की सामग्री की तुलना करते हैं जो हम चाहते हैं और यदि वे बराबर हैं तो हम नेतृत्व में टॉगल करते हैं। उसके बाद हम समाप्त ध्वज को साफ़ करते हैं और नए डेटा की प्रतीक्षा करते हैं और सरणी को अधिलेखित न करने के लिए data_full सरणी को भी साफ़ करते हैं।
चरण 4: पायथन सॉफ्टवेयर विकास
इसलिए, यहां हम अंत में '/n' के साथ अपना नंबर भेजना चाहते हैं, क्योंकि कील सॉफ्टवेयर को अंत जानने के लिए इसे देखना होगा।
आयात धारावाहिक
ser = serial. Serial('COM17') # डिवाइस मैनेजर से अपने डिवाइस पर उस पोर्ट की जांच करें
सेर.लिखें (बी'24\n')
हर बार जब आप '24\n' भेजते हैं तो आपको यह देखना चाहिए कि एलईडी टॉगल करता है। अगर आप कुछ और भेजते हैं तो इसका असर नहीं होना चाहिए।
चरण 5: निष्कर्ष
हम ट्यूटोरियल के अंत तक पहुँच चुके हैं। यदि आपको कोई समस्या या प्रश्न है तो कृपया पूछने में संकोच न करें। मुझसे जितना हो सकेगा मदद करने की कोशिश करूंगा। आपका बहुत बहुत धन्यवाद:)
सिफारिश की:
MXY बोर्ड - कम बजट वाला XY प्लॉटर ड्रॉइंग रोबोट बोर्ड: 8 कदम (चित्रों के साथ)
MXY बोर्ड - लो-बजट XY प्लॉटर ड्रॉइंग रोबोट बोर्ड: मेरा लक्ष्य कम बजट को XY प्लॉटर ड्रॉइंग मशीन बनाने के लिए mXY बोर्ड को डिजाइन करना था। इसलिए मैंने एक बोर्ड तैयार किया जो उन लोगों के लिए आसान बनाता है जो इस परियोजना को बनाना चाहते हैं। पिछले प्रोजेक्ट में, 2 पीसी Nema17 स्टेपर मोटर्स का उपयोग करते हुए, यह बोर्ड आपको
STM32F407 डिस्कवरी किट पर स्क्रैच से फ्रीआरटीओएस सेट करना: 14 कदम
STM32F407 डिस्कवरी किट पर स्क्रैच से फ्रीआरटीओएस सेट करना: अपने एम्बेडेड प्रोजेक्ट के लिए फ्रीआरटीओएस को रीयल-टाइम ऑपरेटिंग सिस्टम के रूप में चुनना एक बढ़िया विकल्प है। FreeRTOS वास्तव में मुफ़्त है और कई सरल और प्रभावी RTOS सुविधाएँ प्रदान करता है। लेकिन खरोंच से फ्रीआरटीओएस स्थापित करना मुश्किल हो सकता है या मैं एक द्वि कह सकता हूं
STM32F407 डिस्कवरी किट और GSM A6 मॉड्यूल का उपयोग करते हुए बेसिक मोबाइल फोन: 14 कदम (चित्रों के साथ)
STM32F407 डिस्कवरी किट और GSM A6 मॉड्यूल का उपयोग कर बेसिक मोबाइल फोन: क्या आप कभी एक कूल एम्बेडेड प्रोजेक्ट बनाना चाहते हैं? यदि हां, तो सबसे लोकप्रिय और हर किसी के पसंदीदा गैजेट यानी मोबाइल फोन में से एक बनाने के बारे में क्या? इस निर्देश में, मैं आपको एसटीएम का उपयोग करके एक बुनियादी मोबाइल फोन बनाने के तरीके के बारे में बताऊंगा
एनालॉग डिस्कवरी 2 और लैब व्यू का उपयोग करके DIY ईसीजी: 8 कदम
एनालॉग डिस्कवरी 2 और लैबव्यू का उपयोग करके DIY ईसीजी: इस निर्देश में, मैं आपको दिखाऊंगा कि होममेड इलेक्ट्रोकार्डियोग्राफ़ (ईसीजी) कैसे बनाया जाता है। इस मशीन का लक्ष्य हृदय द्वारा निर्मित प्राकृतिक विद्युत क्षमता को बढ़ाना, मापना और रिकॉर्ड करना है। एक ईसीजी के बारे में जानकारी का खजाना प्रकट कर सकता है
रूमबा डिस्कवरी के फ्रंट व्हील को कैसे साफ करें: 12 कदम
रूमबा डिस्कवरी के फ्रंट व्हील को कैसे साफ करें: रूम्बा डिस्कवरीज के फ्रंट व्हील बाल इकट्ठा करते हैं और अंततः मुड़ना बंद कर देते हैं। यह निस्संदेह प्रदर्शन को प्रभावित करता है, विशेष रूप से रिचार्ज से पहले सफाई का समय, लेकिन इससे भी महत्वपूर्ण बात यह है कि यह वास्तव में मुझे परेशान करता है जब कोई रोबोट अपने चरम पर काम नहीं कर रहा होता है। उसका