विषयसूची:
- चरण 1: हार्डवेयर और सॉफ्टवेयर आवश्यकताएँ
- चरण 2: समस्या को समझना
- चरण 3: STM32CubeMX कॉन्फ़िगरेशन
- चरण 4: कील सॉफ्टवेयर विकास
- चरण 5: निष्कर्ष
वीडियो: STM32CubeMX बटन रुकावट के साथ शुरू होता है: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
नमस्ते, इस ट्यूटोरियल में मैं बटन बाउंस को रोकने के लिए अपना सरल समाधान देने की कोशिश करूंगा जो कि बहुत गंभीर मुद्दा है। इंटरनेट पर इस मुद्दे के समाधान की पेशकश करने के लिए कई वीडियो हैं, लेकिन उनमें से बाहरी रुकावट के लिए नहीं हैं। इन सभी वीडियो में मतदान विधि द्वारा बटन प्रेस की जांच की जाती है जो अक्षम है। चलिए, शुरू करते हैं!
चरण 1: हार्डवेयर और सॉफ्टवेयर आवश्यकताएँ
हार्डवेयर आवश्यकताएँ:
- STM32 एआरएम विकास बोर्ड
- एक कंप्यूटर
सॉफ़्टवेयर आवश्यकताएं:
- STM32CubeMX
- कील यूविज़न5
चरण 2: समस्या को समझना
इसलिए, हम बटन बाउंसिंग समस्या का समाधान खोजने का प्रयास करते हैं। इसलिए हमें इस मुद्दे को समझना होगा। इसलिए, जब हम एक बटन दबाते हैं तो यह एक ऐसी स्थिति में आना चाहिए जो अपनी पिछली स्थिति के विपरीत हो। उदाहरण के लिए, यदि यह उच्च था तो इसे निम्न होना चाहिए और यदि यह निम्न था तो इसे उच्च होना चाहिए। हालांकि, यह आदर्श स्थिति है (प्रोटियस में:)) वास्तव में, जब हम एक बटन दबाते हैं तो यह निष्क्रिय अवस्था में आने से पहले उच्च और निम्न के बीच उछालना शुरू कर देता है। तो, दिखावा करता है कि इसे कई बार दबाया गया है जिससे समस्याएं होती हैं। तो, हमें क्या करना चाहिए?
यहां मैं यह नोट करना चाहता हूं कि इस उदाहरण में, हम बटन प्रेस का पता लगाने के लिए बाहरी इंटरप्ट का उपयोग करेंगे। इसलिए, जब हम बटन प्रेस का पता लगाते हैं, तो हमें कुछ समय प्रतीक्षा करने की आवश्यकता होती है, जैसे कि 50mS निष्क्रिय अवस्था तक पहुँचने के लिए और फिर से जाँच करें कि बटन निष्क्रिय अवस्था में है या नहीं। यदि यह निष्क्रिय अवस्था में है तो हम अपने कार्य को जारी रख सकते हैं। तो, आइए कोड देखें:)
चरण 3: STM32CubeMX कॉन्फ़िगरेशन
इसलिए, हमें पहले अपने पुश बटन के लिए बाहरी व्यवधान को सक्षम करने की आवश्यकता है (मैं यहां मानता हूं कि आप STM32F407VG डिस्कवरी बोर्ड का उपयोग करते हैं):
- "पिनआउट और कॉन्फ़िगरेशन" टैब में पिन PA0 पर क्लिक करें जो पुश बटन से जुड़ा है और GPIO_EXTI0 चुनें जो उस पिन पर बाहरी रुकावट को सक्षम करता है।
- पिन के "उपयोगकर्ता लेबल" को "पुश_बटन" या अपनी इच्छित किसी भी चीज़ में बदलें।
फिर, हमें 50mS समय विलंब बनाने के लिए टाइमर को कॉन्फ़िगर करने की आवश्यकता है:
- "टाइमर" अनुभाग दर्ज करें
- TIM1. पर क्लिक करें
- घड़ी स्रोत के रूप में "आंतरिक घड़ी" चुनें
-
कॉन्फ़िगरेशन में (यदि आप इस खंड को समझना चाहते हैं तो कृपया इस ट्यूटोरियल को देखें, अत्यधिक अनुशंसित "STM32F4 ARM MCU के साथ सर्वो मोटर कंट्रोल"):
- प्रीस्कूलर को 32000. के रूप में सेट करें
- और काउंटर अवधि 50. तक
- "NVIC सेटिंग्स" टैब में सभी व्यवधानों को सक्षम करें
आउटपुट के रूप में एलईडी सक्षम करें:
PD12 पर क्लिक करें और "GPIO_Output" के रूप में सेट करें
फिर, ऊपर दी गई छवि के अनुसार घड़ी को कॉन्फ़िगर करें और कोड जनरेट करें।
चरण 4: कील सॉफ्टवेयर विकास
सबसे पहले, हम स्टेट वेरिएबल को परिभाषित करते हैं जो यह सुनिश्चित करेगा कि बाउंस होने पर हम बाहरी इंटरप्ट के अंदर टाइमर शुरू न करें:
/* यूजर कोड BEGIN PFP */बूल स्टेट = ट्रू; /* यूजर कोड एंड पीएफपी */
फिर, हम बाहरी व्यवधान के लिए ISR लिखते हैं:
शून्य HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {अगर (GPIO_Pin == Push_Button_Pin && State == true) {HAL_TIM_Base_Start_IT(&htim1); राज्य = झूठा; } और { _NOP (); } }
जब बटन दबाया जाता है तो हम जांचते हैं कि क्या यह हमारा परिभाषित पुश बटन था और क्या राज्य सत्य है। शुरुआत में अगर कथन दर्ज करने के लिए राज्य सत्य होगा। दर्ज करने के बाद हम टाइमर शुरू करते हैं और यह सुनिश्चित करने के लिए राज्य को झूठा बनाते हैं कि बाउंसिंग टाइमर को पुनरारंभ नहीं करेगा।
फिर, हम टाइमर इंटरप्ट के लिए ISR लिखते हैं:
शून्य HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){/* अप्रयुक्त तर्कों को रोकें संकलन चेतावनी */ UNUSED(htim);
/* नोट: कॉलबैक की आवश्यकता होने पर इस फ़ंक्शन को संशोधित नहीं किया जाना चाहिए, उपयोगकर्ता फ़ाइल में HAL_TIM_PeriodElapsedCallback लागू किया जा सकता है */ if(HAL_GPIO_ReadPin(Push_Button_GPIO_Port, Push_Button_Pin) == GPIO_PIN_RESET){ HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); राज्य = सच; HAL_TIM_Base_Stop_IT(&htim1); } }
/* उपयोगकर्ता कोड समाप्ति 4 */
50mS के बाद हम जाँचते हैं कि बटन अभी तक रीसेट स्थिति में है या जारी किया गया है, यदि हाँ तो हम जानते हैं कि बटन निष्क्रिय अवस्था में है। फिर हम एलईडी को टॉगल करते हैं, एक और बटन प्रेस का पता लगाने में सक्षम होने के लिए राज्य को सही बनाते हैं और इसे फिर से शुरू करने में सक्षम होने के लिए टाइमर को रोकते हैं।
इसलिए, यह प्रक्रिया सुनिश्चित करेगी कि हम बाउंसिंग इश्यू को रोकें।
चरण 5: निष्कर्ष
यह बटन डेब्यू के लिए कोड था। मैं यह नोट करना चाहता हूं कि यह कोड मेरे द्वारा विकसित किया गया था और मैं एक विशेषज्ञ प्रोग्रामर नहीं हूं। तो, निश्चित रूप से त्रुटियां हो सकती हैं। यदि आपके पास बेहतर समाधान है तो कृपया इसे नोट करें। मत भूलो, अगर आपको कोई समस्या आती है तो कृपया मुझे लिखें और मैं मदद करने की कोशिश करूंगा।
सिफारिश की:
हैट नॉट हैट - उन लोगों के लिए एक हैट जो वास्तव में टोपी नहीं पहनते हैं, लेकिन एक हैट अनुभव चाहते हैं: 8 कदम
हैट नॉट हैट - उन लोगों के लिए एक हैट जो वास्तव में टोपी नहीं पहनते हैं, लेकिन एक टोपी अनुभव चाहते हैं: मैंने हमेशा कामना की है कि मैं एक टोपी वाला व्यक्ति बन सकता हूं, लेकिन मुझे कभी ऐसी टोपी नहीं मिली जो मेरे लिए काम करे। यह "हैट नॉट हैट," या फासिनेटर जैसा कि इसे कहा जाता है, मेरी टोपी की समस्या का एक ऊपरी-क्रस्टी समाधान है जिसमें मैं केंटकी डर्बी में भाग ले सकता हूं, vacu
क्या आप जानते हैं कि आपके पौधे कैसा महसूस कर रहे हैं? [कण+यूबिडॉट्स]: ६ कदम
क्या आप जानते हैं कि आपके पौधे कैसा महसूस कर रहे हैं? [पार्टिकल+यूबिडॉट्स]: बाहर घूमने और मिट्टी को संभालने की जगह कुछ भी नहीं ले सकता है, लेकिन आज की तकनीक ने मिट्टी की दूर से निगरानी करना और मेरी मानवीय संवेदनाओं को मापने योग्य मापदंडों को ट्रैक करना संभव बना दिया है। SHT10 जैसी मिट्टी की जांच अब बेहद सटीक है और
एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम
एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: संगीत के साथ समन्वयित क्रिसमस लाइट शो चलाते समय आप एक बटन दबाकर शो शुरू करना चाह सकते हैं। यह ट्यूटोरियल केवल एक शो के लिए लागू होता है जिसे रास्पबेरी पाई पर चलने वाले फाल्कन पाई प्लेयर (FPP) के माध्यम से नियंत्रित किया जाता है। यदि आप F चला रहे हैं
एनएफसी लॉक - जब एक पीसीबी बटन, एंटीना और भी बहुत कुछ होता है: 7 कदम (चित्रों के साथ)
एनएफसी लॉक - जब एक पीसीबी बटन, एंटीना और भी बहुत कुछ होता है …: आप इस निर्देश से दो चीजों में से एक ले सकते हैं। आप साथ चल सकते हैं और एक संख्यात्मक कीपैड और एक एनएफसी रीडर का अपना संयोजन बना सकते हैं। योजनाबद्ध यहाँ है। पीसीबी लेआउट यहाँ है। आपको पी ऑर्डर करने के लिए सामग्री का बिल मिलेगा
लगभग किसी भी (हाहा) वेबसाइट से संगीत कैसे प्राप्त करें (जब तक आप इसे सुन सकते हैं आप इसे प्राप्त कर सकते हैं ठीक है अगर यह फ्लैश में एम्बेड किया गया है तो आप शायद नहीं कर पाएंगे) संपादित !!!!! जोड़ी गई जानकारी: 4 कदम
लगभग किसी भी (हाहा) वेबसाइट से संगीत कैसे प्राप्त करें (जब तक आप इसे सुन सकते हैं आप इसे प्राप्त कर सकते हैं … ठीक है अगर यह फ्लैश में एम्बेड किया गया है तो आप शायद नहीं कर पाएंगे) संपादित !!!!! जोड़ी गई जानकारी: यदि आप कभी किसी वेबसाइट पर जाते हैं और यह एक गाना बजाता है जो आपको पसंद है और आप इसे चाहते हैं तो यहां आपके लिए निर्देश है कि अगर आप कुछ गड़बड़ करते हैं तो मेरी गलती नहीं है (ऐसा ही होगा यदि आप बिना किसी कारण के सामान हटाना शुरू कर देते हैं) ) ive संगीत प्राप्त करने में सक्षम है