DMA1 नहीं है USART1 साथ काम stm32f103c8 में?

वोट
0

मैं stm32f103c8 में USART1 साथ DMA1 सक्षम करने के लिए कोशिश कर रहा हूँ, लेकिन यह काम नहीं करता। मैं ट्रांसमीटर के रूप में काम करने के लिए USART सक्षम होना चाहिए। और फिर DMA1 सक्षम है और इसे करने के लिए इस विन्यास 1: सक्षम आरसीसी से DMA1 घड़ी बनाते हैं। 2-अक्षम DMA1 चैनल। बहुत ही उच्च periority रूप DMA1 चैनल periority 3-निर्धारित किया है। 4-बनाने स्मृति से परिधीय को DMA1 चैनल की दिशा। स्मृति आकार और बाइट के रूप में परिधीय आकार 5-बनाते हैं। 6-सक्षम स्मृति वेतन वृद्धि और अक्षम परिधीय वेतन वृद्धि। परिपत्र मोड 7 से सक्षम करें। स्थानांतरण पूरा हो के लिए डीएमए बाधा 8 निर्धारित किया है। स्मृति पता बफर 7-सेट और परिधीय पता सेट usart1 डेटा रजिस्टर के रूप में। 6 के रूप में डीएमए हस्तांतरण करने के लिए समय की संख्या 8-निर्धारित किया है। NVIC में DMA1 चैनल बाधा 9-सक्षम करें। DMA1 साथ USART काम करने के लिए usart1 में DMAT 10: सक्षम प्रारंभ काम करने के लिए DMA1 11: सक्षम करें।

यह सब विन्यास के बाद डीएमए नहीं wok लेकिन सफलतापूर्वक USART काम करता है। मुख्य कोड में मैं intialize usart1 और फिर बनाने के DMA1 intialize के रूप में मुझे कहा और उसके बाद टर्मिनल के लिए एक चरित्र भेजने के लिए और खाली जबकि (1) बनाते हैं। टर्मिनल केवल पाने के केवल चार मैं इसे भेजने लेकिन स्मृति में चार प्राप्त नहीं और डीएमए डीएमए का मतलब है कि डीएमए कभी नहीं काम नहीं करता है क्यों की हैंडलर नहीं गए थे?

02/12/2019 को 23:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं मेरी समस्या हल कर दिया है यह विन्यास में एक त्रुटि थी। त्रुटि थी जब मैं डेटा का पता गुजर रहा हूँ रजिस्टर मैं पहले से ही पता गुजर नहीं कर रहा हूँ, लेकिन मैं डेटा के मूल्य का पता रजिस्टर गुजर रहा हूँ

08/12/2019 को 11:38
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more