HOLTEK HT32 MCU UART ایپلیکیشن نوٹ یوزر مینوئل
HOLTEK HT32 MCU UART درخواست نوٹ

تعارف

یونیورسل اسینکرونس وصول کنندہ/ٹرانسمیٹر - UART ایک وسیع پیمانے پر استعمال ہونے والا سیریل ٹرانسمیشن انٹرفیس ہے جو لچکدار غیر مطابقت پذیر فل ڈوپلیکس ڈیٹا ٹرانسمیشن فراہم کرتا ہے۔ اس ایپلیکیشن نوٹ میں فراہم کردہ "Module_UART" ایپلیکیشن کوڈ سافٹ ویئر رِنگ بفرز کے ساتھ TX/RX انٹرپٹس کا استعمال کرتا ہے تاکہ APIs کے ذریعے سادہ UART ٹرانسمٹ/ریسیو فنکشنز کو لاگو کیا جا سکے، جن کے متعلقہ افعال ذیل میں بیان کیے گئے ہیں۔ یہ ڈیٹا کی منتقلی کے پورے عمل کو آسان بنائے گا اور صارفین کو UART کمیونیکیشن ایپلی کیشنز کو تیزی سے سمجھنے اور لاگو کرنے کی اجازت دے گا۔

  • ٹرانسمٹ/ریسیو فنکشنز: بائٹ ریڈ، بائٹ رائٹ، بفر ریڈ، بفر رائٹ، وغیرہ۔
  • اسٹیٹس کے افعال: بفر کی لمبائی، TX اسٹیٹس وغیرہ حاصل کریں۔

یہ دستاویز پہلے UART کمیونیکیشن پروٹوکول کو متعارف کرائے گی، جو صارفین کو UART مواصلات کو اصول سے لے کر اطلاق تک بہتر طور پر سمجھنے میں مدد دے گی۔ اس کے بعد ایپلیکیشن کوڈ کے لیے درکار وسائل کی ڈاؤن لوڈ اور تیاری کی جاتی ہے، بشمول فرم ویئر لائبریری، ایپلیکیشن کوڈ ڈاؤن لوڈ، file اور ڈائریکٹری کنفیگریشن کے ساتھ ساتھ ایپلیکیشن نوٹ میں استعمال ہونے والے ٹرمینل سافٹ ویئر ٹول کا تعارف۔ فنکشنل تفصیل کے باب میں، ایپلیکیشن کوڈ ڈائرکٹری کا ڈھانچہ، پیرامیٹر کی ترتیبات اور API کی تفصیل کو متعارف کرایا جائے گا۔ API کے استعمال کو "Module_UART" ایپلیکیشن کوڈ کا استعمال کرتے ہوئے بیان کیا جائے گا اور APIs کے لیے درکار فلیش/RAM وسائل کی کھپت کو بھی درج کیا جائے گا۔ استعمال کے لیے ہدایات کا باب ماحولیاتی تیاری، تالیف اور جانچ کے مراحل کے ذریعے صارف کی رہنمائی کرے گا تاکہ اس بات کی تصدیق کی جا سکے کہ درخواست کا کوڈ صحیح طریقے سے کام کرے گا۔ اس کے بعد یہ ہدایات فراہم کرے گا کہ APIs کو صارف کے پروجیکٹس میں کیسے ضم کیا جائے اور آخر میں ان ترمیمات اور عام مسائل کا حوالہ فراہم کیا جائے جن کا سامنا ہو سکتا ہے۔

استعمال شدہ مخففات: 

  • UART: یونیورسل غیر مطابقت پذیر وصول کنندہ/ٹرانسمیٹر
  • API: ایپلیکیشن پروگرامنگ انٹرفیس
  • LSB: کم سے کم اہم بٹ
  • MSB: سب سے اہم بٹ
  • پی سی: پرسنل کمپیوٹر
  • ایس کے: سٹارٹر کٹ، HT32 ڈویلپمنٹ بورڈ
  • IDE: مربوط ترقیاتی ماحول

UART کمیونیکیشن پروٹوکول

UART ایک سیریل کمیونیکیشن قسم کا انٹرفیس ہے جو اپنے ٹرانسمیٹر پر متوازی سے سیریل ڈیٹا کی تبدیلی کو لاگو کرتا ہے اور پھر اسی طرح کے وصول کنندہ کے ساتھ سلسلہ وار بات چیت کرتا ہے۔ وصول کنندہ پھر ڈیٹا کے استقبال کے بعد سیریل سے متوازی ڈیٹا کی تبدیلی کرتا ہے۔ شکل 1 سیریل کمیونیکیشن کا ایک اسکیمیٹک خاکہ دکھاتا ہے جس میں دکھایا گیا ہے کہ ڈیٹا کو بٹ وار ترتیب میں کیسے منتقل کیا جاتا ہے۔ اس لیے ٹرانسمیٹر اور وصول کنندہ کے درمیان دو طرفہ مواصلت کے لیے، صرف دو تاروں، TX اور RX، کو ایک دوسرے کے درمیان سلسلہ وار ڈیٹا منتقل کرنے کی ضرورت ہے۔ TX وہ پن ہے جس پر UART سیریل ڈیٹا منتقل کرتا ہے اور وصول کنندہ کے RX پن سے منسلک ہوتا ہے۔ اس لیے ٹرانسمیٹر اور رسیور ڈیوائسز کو UART دو طرفہ کمیونیکیشن انجام دینے کے لیے اپنے TX اور RX پنوں کو آپس میں جوڑنے کی ضرورت ہے، جیسا کہ اس میں دکھایا گیا ہے۔ پیکر 2.

شکل 1. سیریل کمیونیکیشن ڈایاگرام
سیریل کمیونیکیشن ڈایاگرام

تصویر 2. UART سرکٹ ڈایاگرام
UART سرکٹ ڈایاگرام

UART سیریل مواصلات کے دوران، ڈیٹا ٹرانسمیشن غیر مطابقت پذیر ہے. اس کا مطلب ہے کہ ٹرانسمیٹر اور وصول کنندہ کے درمیان کوئی گھڑی یا دیگر ہم آہنگی کا سگنل نہیں ہے۔ یہاں ایک باؤڈ ریٹ استعمال کیا جاتا ہے، جو کہ سیریل ڈیٹا کی ترسیل / وصول کرنے کی رفتار ہے اور جو ڈیٹا کی منتقلی سے پہلے دونوں طرف سے سیٹ کی جاتی ہے۔ اس کے علاوہ، خصوصی بٹس جیسے اسٹارٹ اور اسٹاپ بٹس کو ڈیٹا پیکٹ کے شروع اور آخر میں شامل کیا جاتا ہے تاکہ ایک مکمل UART ڈیٹا پیکٹ بنایا جا سکے۔ شکل 3 UART ڈیٹا پیکٹ کا ڈھانچہ دکھاتا ہے جبکہ شکل 4 بغیر برابری بٹ کے UART 8 بٹ ڈیٹا پیکٹ دکھاتا ہے۔
تصویر 3. UART ڈیٹا پیکٹ کا ڈھانچہ
UART ڈیٹا پیکٹ کا ڈھانچہ

شکل 4. UART 8 بٹ ڈیٹا پیکٹ فارمیٹ
ڈیٹا پیکٹ فارمیٹ
UART ڈیٹا پیکٹ کا ہر حصہ ذیل میں ترتیب دیا گیا ہے۔

  • اسٹارٹ بٹ: یہ ڈیٹا پیکٹ کے آغاز کی نشاندہی کرتا ہے۔ UART TX پن عام طور پر ٹرانسمیشن شروع ہونے سے پہلے ایک اعلی منطقی سطح پر رہتا ہے۔ اگر ڈیٹا کی منتقلی شروع ہوتی ہے، تو UART ٹرانسمیٹر TX پن کو اونچی سے نچلی طرف کھینچ لے گا، یعنی 1 سے 0 تک، اور پھر اسے ایک گھڑی کے چکر کے لیے وہاں رکھے گا۔ UART وصول کنندہ ڈیٹا کو پڑھنا شروع کر دے گا جب RX پن پر اعلی سے کم منتقلی کا پتہ چل جائے گا۔
  • ڈیٹا: یہ 7، 8 یا 9 بٹس کے ڈیٹا کی لمبائی کے ساتھ منتقل کردہ اصل ڈیٹا ہے۔ ڈیٹا عام طور پر پہلے LSB کے ساتھ منتقل کیا جاتا ہے۔
  • برابری بٹ: ڈیٹا میں منطق "1" کی تعداد کا استعمال اس بات کا تعین کرنے کے لیے کیا جاتا ہے کہ آیا ٹرانسمیشن کے دوران کوئی ڈیٹا تبدیل ہوا ہے۔ برابر برابری کے لیے، ڈیٹا میں منطق "1" کی کل تعداد ایک یکساں نمبر ہونی چاہیے، اس کے برعکس، ڈیٹا میں منطق "1" کی کل تعداد طاق برابری کے لیے طاق عدد ہونی چاہیے۔
  • سٹاپ بٹ: یہ ڈیٹا پیکٹ کے اختتام کی طرف اشارہ کرتا ہے، جہاں UART ٹرانسمیٹر TX پن کو نچلے سے اونچے تک کھینچ لے گا، یعنی 0 سے 1 تک، اور پھر اسے 1 یا 2 بٹ ٹائم پیریڈ کے لیے وہاں رکھے گا۔

جیسا کہ پہلے ذکر کیا گیا ہے، چونکہ UART سرکٹ میں کوئی گھڑی کا سگنل نہیں ہے، اسی سیریل ڈیٹا کی ترسیل/ وصول کرنے کی رفتار، جسے باؤڈ ریٹ کے نام سے جانا جاتا ہے، کو ٹرانسمیٹر اور وصول کنندہ کے درمیان غلطی سے پاک ٹرانسمیشن کو نافذ کرنے کے لیے متعین کیا جانا چاہیے۔ باؤڈ کی شرح کی وضاحت بی پی ایس (بٹ فی سیکنڈ) میں فی سیکنڈ منتقل ہونے والے بٹس کی تعداد سے ہوتی ہے۔ کچھ معیاری اور عام طور پر استعمال ہونے والے بوڈ ریٹ ہیں 4800bps، 9600bps، 19200bps، 115200bps، وغیرہ۔ ایک ڈیٹا بٹ کی منتقلی کے لیے درکار متعلقہ وقت ذیل میں دکھایا گیا ہے۔
ٹیبل 1. بوڈ ریٹ بمقابلہ 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 کا نام Firmware_Library فولڈر کے نیچے واقع ہے۔

شکل 5. HT32_M0p_Vyyyymmdd.zip مشمولات
مشمولات

درخواست کا کوڈ
درج ذیل لنک سے درخواست کوڈ ڈاؤن لوڈ کریں۔ ایپلیکیشن کوڈ زپ میں پیک کیا جاتا ہے۔ file a کے ساتھ file HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip کا نام۔ دیکھیں تصویر 6 کے لیے file نام کنونشنز

تصویر 6. درخواست کا کوڈ File نام کا تعارف 

ڈاؤن لوڈ لنک: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/ درخواست کا کوڈ

File اور ڈائریکٹری کنفیگریشن
چونکہ ایپلیکیشن کوڈ میں HT32 فرم ویئر لائبریری شامل نہیں ہے۔ files، ایپلیکیشن کوڈ اور فرم ویئر لائبریری کو ان زپ کر دیا گیا۔ fileتالیف شروع کرنے سے پہلے s کو صحیح راستے میں رکھنا چاہئے۔ ایپلیکیشن کوڈ زپ file عام طور پر ایک یا زیادہ فولڈرز پر مشتمل ہوتا ہے، جیسا کہ ایپلیکیشن اور لائبریری، جیسا کہ شکل 7 میں دکھایا گیا ہے۔ ایپلیکیشن فولڈر کو HT32 فرم ویئر لائبریری روٹ ڈائرکٹری کے نیچے رکھیں file پاتھ کنفیگریشن، جیسا کہ شکل 8 میں دکھایا گیا ہے۔ متبادل کے طور پر، ایک ہی کنفیگریشن کے نتائج حاصل کرنے کے لیے ایپلیکیشن کوڈ اور HT32 فرم ویئر لائبریری کو بیک وقت ایک ہی راستے میں ان زپ کریں۔

شکل 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip مشمولات
مشمولات

شکل 8. ڈیکمپریشن پاتھ
ڈیکمپریشن کا راستہ

ٹرمینل سافٹ ویئر
ایپلیکیشن کوڈ فنکشن سلیکشن یا اسٹیٹس ڈسپلے کو لاگو کرنے کے لیے COM پورٹ کے ذریعے پیغامات کو منتقل کر سکتا ہے۔ اس کے لیے میزبان سائیڈ کو ٹرمینل سافٹ ویئر پہلے سے انسٹال کرنے کی ضرورت ہے۔ صارفین مناسب کنکشن سافٹ ویئر کا انتخاب کر سکتے ہیں، یا مفت لائسنس یافتہ سافٹ ویئر استعمال کر سکتے ہیں جیسے Tera Term۔ ایپلیکیشن کوڈ میں، UART چینل کو 8 بٹس، بغیر برابری، 1 سٹاپ بٹ اور 115200bps کی بوڈ ریٹ کے ساتھ ترتیب دیا گیا ہے۔

فنکشنل تفصیل

یہ باب ایپلیکیشن کوڈ کے لیے ایک فعال وضاحت فراہم کرے گا، بشمول ڈائریکٹری ڈھانچہ، API فن تعمیر، ترتیب کی تفصیل وغیرہ

ڈائرکٹری کا ڈھانچہ
درخواست کا کوڈ file ایک ایپلیکیشن فولڈر پر مشتمل ہے۔ اگلی پرت "Module_UART" فولڈر ہے جس میں دو ایپلیکیشن پروگرام ہیں، "UART_Module_Example" اور "UART_Bridge"۔ متعلقہ files درج اور ذیل میں بیان کیے گئے ہیں۔
ٹیبل 2۔ ایپلیکیشن کوڈ ڈائرکٹری کا ڈھانچہ

فولڈر/ File نام تفصیل
\\درخواست\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 پڑھنے اور لکھنے کی کارروائیاں لوپ بیک طریقے سے انجام دی جاتی ہیں، "API استعمال سابقہ" سے رجوع کریں۔ampمزید تفصیلات کے لیے les" سیکشن۔
  2.  "UART_Bridge" ایپلیکیشن کوڈ میں، دو UART چینلز، UART CH0 اور UART CH1، کو چالو کیا جاتا ہے، اور COMMAND ڈھانچے کے ذریعے اپنی مرضی کے مواصلاتی پروٹوکول کو دو UART آلات کے درمیان لاگو کیا جاتا ہے۔ مزید معلومات کے لیے، "API استعمال Examples" سیکشن.
  3. ایپلیکیشن کوڈ کو uart_module.c/h استعمال کرنے کی ضرورت ہے۔ files جس میں فرم ویئر لائبریری ورژن کی ضرورت ہے۔ اپ ڈیٹ کے مطابق ضرورت وقتاً فوقتاً تبدیل ہو سکتی ہے۔ موجودہ فرم ویئر لائبریری ورژن کی ضرورت کی تصدیق کرنے کے لیے، main.c میں کلیدی لفظ "انحصار چیک" تلاش کرکے انحصار کی جانچ کے مواد سے رجوع کریں۔ file. اگر فرم ویئر لائبریری کا ورژن تقاضوں کو پورا نہیں کرتا ہے، تو "فرم ویئر لائبریری" سیکشن میں فراہم کردہ لنک سے تازہ ترین ورژن ڈاؤن لوڈ کریں۔

API فن تعمیر
ہر API میں ایک اہم پیرامیٹر CH ہوتا ہے، جو UART چینل ہے۔ یہ طے کرتا ہے کہ کون سا UART چینل کنٹرول کیا جانا ہے۔ فی الحال چار UART چینلز کی حمایت کی گئی ہے اور اس لیے چار مستقل علامتوں کی وضاحت اس طرح کی گئی ہے۔ یہ پیرامیٹر CH کے طور پر استعمال ہوتے ہیں جو APIs کو کنٹرول کی بنیاد فراہم کرتے ہیں۔

  • UARTM_CH0: ان پٹ پیرامیٹر - UART CH0 کو کنٹرول یا کنفیگر کریں۔
  • UARTM_CH1: ان پٹ پیرامیٹر - UART CH1 کو کنٹرول یا کنفیگر کریں۔
  • UARTM_CH2: ان پٹ پیرامیٹر - UART CH2 کو کنٹرول یا کنفیگر کریں۔
  • UARTM_CH3: ان پٹ پیرامیٹر - UART CH3 کو کنٹرول یا کنفیگر کریں۔

اگر صرف ایک UART چینل استعمال کیا جائے تو میموری کی جگہ ضائع نہیں ہوگی۔ اس کی وجہ یہ ہے کہ تعاون یافتہ UART چینلز کی تعداد سیٹ کی جا سکتی ہے اور غیر استعمال شدہ UART چینل کوڈ کو پری پروسیسر کے ذریعے ہٹا دیا جائے گا تاکہ میموری کی دستیاب جگہ کو بڑھایا جا سکے۔ API فن تعمیر میں دکھایا گیا ہے۔ تصویر 9.

پیکر 9. API آرکیٹیکچر بلاک ڈایاگرام
آرکیٹیکچر بلاک ڈایاگرام

ہر API UART چینل سے متعلق ترتیبات یا کنٹرولز کے چار گروپوں پر مشتمل ہوتا ہے تاکہ صارفین کو صرف مطلوبہ CH پیرامیٹر داخل کرنے کی ضرورت ہو۔ متعلقہ API کو کنفیگر کرنے کے لیے، صرف ڈھانچہ فارم USART_InitTypeDef کے ساتھ ایک اضافی UART بنیادی کنفیگریشن پیرامیٹر ٹیبل کا ہونا ضروری ہے۔ API ٹیبل میں پیرامیٹر کے مواد کے مطابق UART بنیادی ترتیب کو نافذ کرے گا۔ UART بنیادی کنفیگریشن سٹرکچر ٹیبل کے لیے "API تفصیل" سیکشن سے رجوع کریں۔

uart_module.c/.h files میں ہر UART چینل کا صرف انٹرپٹ (CHx_IRQ) ​​اور اسٹیٹس ٹیبل (CHx Status) ہوتا ہے جبکہ 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: 0~15
HTCFG_UARTM0_RX_GPIO_PORT CH0 کے لیے RX کے پورٹ نام کی وضاحت کرتا ہے۔ سابقample: A, B, C…
HTCFG_UARTM0_RX_GPIO_PIN CH0 کے لیے TX کے پن نمبر کی وضاحت کرتا ہے۔ سابقample: 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 تعریفیں لاگو ہوتی ہیں کیونکہ ht0_board_config.h میں صرف UART CH32 کو کنفیگر کیا گیا ہے۔ UART CH1~3 کو شامل کرنے کے لیے، ان کی I/O تعریفیں UART CH0 تعریف کا حوالہ دے کر یا "ترمیم میں ترمیم اور عمومی سوالنامہ" کے سیکشن کا حوالہ دے کر مکمل کرنے کی ضرورت ہے۔

API فن تعمیر کی تین اہم خصوصیات ہیں: 

  1. چار UART چینلز تک تعاون یافتہ ہیں۔ ان کے ان پٹ پیرامیٹرز ہیں UARTM_CH0, UARTM_CH1, UARTM_CH2 اور UARTM_CH3۔
  2.  UART چینلز کی تعداد سیٹ کی جا سکتی ہے اور غیر استعمال شدہ چینل دستیاب میموری کی جگہ کو کم نہیں کریں گے۔
  3. تمام UART ترتیبات اور I/O تعریفیں APIs سے مکمل طور پر الگ ہیں۔ یہ اقدار کو ترتیب دینے کی انتظامی سہولت کو بڑھاتا ہے اور غلط یا گمشدہ ترتیبات کے امکان کو کم کرتا ہے۔

ترتیب کی تفصیل 

یہ سیکشن ht32_board_config.h اور uart_module.h میں پیرامیٹر کی ترتیبات متعارف کرائے گا۔ files.

  1. ht32_board_config.h: یہ file پن کی تعریفوں اور ڈویلپمنٹ بورڈ کی متعلقہ ترتیبات کے لیے استعمال کیا جاتا ہے، جس میں UART IP چینل (UART0, UART1, USART0…) شامل ہے جو Starter Kit (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 اور Mode configurations پر مشتمل ہے، جیسا کہ ذیل میں دکھایا گیا ہے۔
      متغیر نام قسم تفصیل
      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 مواصلات موڈ؛ APIs صرف نارمل موڈ کو سپورٹ کرتے ہیں۔
  2. API فنکشنز کو استعمال کرنے سے پہلے، مین پروگرام میں UART بنیادی کنفیگریشن کو مکمل کریں۔ اس ایپلیکیشن کوڈ کے لیے UART کی بنیادی ترتیب تصویر 12 میں دکھائی گئی ہے۔ یہاں baud کی شرح 115200bps ہے، لفظ کی لمبائی 8-bit ہے، سٹاپ بٹ کی لمبائی 1-bit ہے، اور کوئی برابری نہیں ہے۔
    تصویر 12. UART بنیادی ترتیب
    بنیادی ترتیب
  3. شکل 13 uart_module.h میں اعلان کردہ API افعال کو ظاہر کرتا ہے۔ file. درج ذیل جدولیں API فنکشنز کے فنکشن، ان پٹ پیرامیٹرز اور استعمال کی وضاحت کرتی ہیں۔
    تصویر 13. uart_module.h میں API فنکشن ڈیکلریشنز 
    API فنکشن کے اعلانات
نام void 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 ٹیسٹ[] = "یہ ٹیسٹ ہے!\r\n"؛ UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); //UART pBuffer ڈیٹا لکھتا ہے۔
نام u32 UARTM_ReadByte(u32 CH, u8 *pData)
فنکشن UART ماڈیول ریڈ بائٹ آپریشن (RX)
ان پٹ CH UART چینل
پی ڈیٹا پڑھنے کا ڈیٹا رکھنے کا پتہ
آؤٹ پٹ کامیابی کامیاب
غلطی ناکام (کوئی ڈیٹا نہیں)
   استعمال u8 ٹیمپ ڈیٹا؛ اگر (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 ٹیسٹ2[10]؛ u32 لین؛ Len = UARTM_Read(UARTM_CH0, Test2, 5); if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() ڈیٹا کے 5 بائٹس کو پڑھتا ہے اور ڈیٹا کو Test2 میں اسٹور کرتا ہے، اور پڑھنے والے بائٹ شمار کو تفویض کرتا ہے۔ Len//Test2 سے حاصل کردہ ڈیٹا لکھیں۔
نام u32 UARTM_GetReadBufferLength(u32 چودھری)
فنکشن پڑھنے والے بفر کی لمبائی (RX) حاصل کریں
ان پٹ CH UART چینل
آؤٹ پٹ u لمبائی بفر کی لمبائی پڑھیں
  استعمال UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART ماڈیول کی ابتدا جبکہ (UARTM_GetReadBufferLength(UARTM_CH0) <5)؛//اس وقت تک انتظار کریں جب تک UARTM_ReadBuffer کو 5 بائٹس ڈیٹا موصول نہ ہو جائے۔
نام u32 UARTM_GetWriteBufferLength(u32 چودھری)
فنکشن رائٹ بفر کی لمبائی (TX) حاصل کریں
ان پٹ CH UART چینل
آؤٹ پٹ u لمبائی بفر کی لمبائی لکھیں۔
نام u8 UARTM_IsTxFinished(u32 چودھری)
فنکشن TX کی حیثیت حاصل کریں۔
ان پٹ CH UART چینل
آؤٹ پٹ سچ ہے۔ TX کی حیثیت: ختم
غلط 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 کی حیثیت درست ہے، اور پھر اس کے بعد کی کارروائیوں کو جاری رکھیں۔//ایک پابندی شامل کی گئی ہے کیونکہ اس فنکشن کو اس وقت تک شامل نہیں کیا گیا جب تک uart_module.c میں SVN ورژن نمبر 525 نہیں ہے۔
نام باطل UARTM_DiscardReadBuffer(u32 چودھری)
فنکشن پڑھنے والے بفر میں ڈیٹا کو ضائع کریں۔
ان پٹ CH UART چینل

API کا استعمال سابقamples 

یہ سیکشن API لکھنے اور پڑھنے کا مظاہرہ کرے گا۔ampابتدائی عمل کا استعمال کرتے ہوئے "Module_UART" ایپلیکیشن کوڈ کے les اور "UART_Module_Example" درخواست کوڈ کا عمل۔ APIs استعمال کرنے سے پہلے، صارفین کو API ہیڈر شامل کرنے کی ضرورت ہے۔ file مین پروگرام سورس کوڈ میں file (# "midleware/uart_module.h" شامل کریں)۔

جیسا کہ شکل 14 میں دکھایا گیا ہے، ابتداء کے عمل میں داخل ہونے پر، پہلے UART کے بنیادی کنفیگریشن ڈھانچے کی وضاحت کریں۔ پھر UART کے بنیادی کنفیگریشن ڈھانچے کے ارکان کو ترتیب دیں جن میں BaudRate، WordLength، StopBits، Parity اور Mode شامل ہیں۔ آخر میں، API انیشیلائزیشن فنکشن کو کال کریں، جس کی تکمیل ابتدائی عمل کے اختتام کی طرف اشارہ کرتی ہے۔ اس کے بعد صارف پہلے سے طے شدہ UART بنیادی ترتیب کی بنیاد پر لکھنے اور پڑھنے کے عمل کو جاری رکھ سکتے ہیں۔

شکل 14۔ ابتدائیہ فلو چارٹ
ابتدائی فلو چارٹ

"UART_Module_Example" ایپلیکیشن کوڈ API پڑھنے اور لکھنے کی کارروائیوں کو لوپ بیک انداز میں ظاہر کرتا ہے۔ اس کے لیے فلو چارٹ شکل 15 میں دکھایا گیا ہے۔ استعمال شدہ API فنکشنز میں UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() اور UARTM_GetReadBufferLength() شامل ہیں۔ ان کی تفصیل "API تفصیل" سیکشن میں فراہم کی گئی ہے۔

شکل 15. لکھنے اور پڑھنے کا فلو چارٹ Examples
لکھنے اور پڑھنے کا فلو چارٹ Examples

"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 کا le) اور ایک رسپانس پیکٹ (gCMD2)۔ کمانڈ پیکٹ (UARTBridge_CMD1TypeDef gCMD1):

بائٹ 0 بائٹ 1 بائٹ 2 ~ بائٹ 4
uHeader uCmd uData [3]
"ا" "1" "x، y، z"

رسپانس پیکٹ (UARTBridge_CMD2TypeDef gCMD2):

بائٹ 0 بائٹ 1 بائٹ 2 بائٹ 3 ~ بائٹ 5
uHeader uCmdA uCmdB uData [3]
"B" "a" "1" "x، y، z"

وسائل کا پیشہ
HT32F52352 کو بطور سابق لیناampمثال کے طور پر، UART ماڈیول کے زیر قبضہ وسائل ذیل میں دکھائے گئے ہیں۔

HT32F52352
ROM کا سائز 946 بائٹس
رام سائز 40*1 + 256*2 بائٹس

نوٹ:

  1. عالمی متغیرات بشمول جھنڈے اور ایک واحد چینل کے اسٹیٹس RAM کے 40 بائٹس پر قابض ہیں۔
  2.  یہ ایسی حالت کے لیے ہے جہاں ایک چینل استعمال کیا جاتا ہے اور TX/RX بفر کا سائز 128/128 بائٹس ہے۔ بفر سائز درخواست کی ضروریات کے مطابق مقرر کیا جا سکتا ہے.

ٹیبل 4. ایپلیکیشن کوڈ وسائل کا پیشہ 

  • تالیف کا ماحول: MDK-Arm V5.36, ARMCC V5.06 اپ ڈیٹ 7 (بلڈ 960)
  • آپشن کو بہتر بنائیں: لیول 2 (-O2)

استعمال کے لیے ہدایات

یہ باب "Module_UART" ایپلیکیشن کوڈ کے لیے ماحولیاتی تیاری کے ساتھ ساتھ تالیف اور جانچ کے مراحل کو متعارف کرائے گا۔

ماحولیاتی تیاری
"Module_UART" ایپلیکیشن کوڈ کے لیے درکار ہارڈ ویئر اور سافٹ ویئر ذیل میں درج ہیں۔
جدول 5۔ ہارڈ ویئر/سافٹ ویئر ماحولیاتی تیاری 

ہارڈ ویئر/سافٹ ویئر شمار نوٹ
اسٹارٹر کٹ 1 یہ ایپلیکیشن نوٹ HT32F52352 اسٹارٹر کٹ بطور سابق استعمال کرتا ہے۔ample
USB کیبل 1 مائیکرو USB، پی سی سے منسلک
درخواست کا کوڈ ڈاؤن لوڈ کا راستہ، file اور ڈائریکٹری کنفیگریشن کو "وسائل ڈاؤن لوڈ اور تیاری" سیکشن میں متعارف کرایا گیا ہے۔ راستہ: "\\application\Module_UART\UART_Module_Exampلی "
تیرا اصطلاح "ٹرمینل سافٹ ویئر" سیکشن سے رجوع کریں۔
کیل IDE Keil uVision V5.xx

سب سے پہلے، UART ایپلیکیشن کے تعارف کے لیے E-Link32 Lite کے ورچوئل COM پورٹ (VCP) فنکشن کے ساتھ مل کر HT52352F32 اسٹارٹر کٹ استعمال کریں۔ اس کو لاگو کرنے کے لیے درج ذیل ماحولیاتی تیاری کی ضرورت ہے۔

  1. بورڈ پر دو USB انٹرفیس ہیں۔ بورڈ پر PC اور 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. ای-لنک 32 پرو کا ایک سائیڈ منی یو ایس بی کیبل کا استعمال کرتے ہوئے پی سی سے جڑا ہوا ہے اور دوسری طرف اس کی 10 بٹ گرے کیبل کے ذریعے صارف کے ہدف بورڈ سے منسلک ہے۔ کیبل اور ٹارگٹ بورڈ کے SWD انٹرفیس کے درمیان کنکشن ڈوپونٹ لائنوں کا استعمال کرتے ہوئے لاگو کیا جاتا ہے، جیسا کہ شکل 17-(a) میں دکھایا گیا ہے۔
  2. e-Link32 Pro کے سیریل کمیونیکیشن پن پن#7 VCOM_RXD اور پن#8- VCOM_TXD ہیں۔ یہ صارف کے ٹارگٹ بورڈ کے TX اور RX پنوں سے منسلک ہونے چاہئیں، جیسا کہ شکل 17-(b) میں دکھایا گیا ہے۔
    تصویر 17۔ ای-لنک32 پرو + یوزر ٹارگٹ بورڈ بلاک ڈایاگرام
    یوزر ٹارگٹ بورڈ

تالیف اور ٹیسٹ
یہ سیکشن "درخواست\Module_UART\UART_Module_Ex" لے گا۔ample" بطور سابقampتالیف اور جانچ کے عمل کو متعارف کرانے کے لیے۔ اس سے پہلے، اس بات کو یقینی بنائیں کہ پچھلے حصے میں بیان کی گئی تمام تیاریوں پر عمل درآمد ہو چکا ہے اور یہ کہ Tera Term ٹرمینل سافٹ ویئر ڈاؤن لوڈ ہو چکا ہے۔

آپریشن کے تفصیلی اقدامات کا خلاصہ ذیل میں دیا گیا ہے۔
مرحلہ 1۔ پاور آن ٹیسٹ

ہارڈ ویئر ماحول کو ترتیب دیں جیسا کہ پچھلے حصے میں بیان کیا گیا ہے۔ پاور آن ہونے کے بعد، سٹارٹر کٹ کے نیچے بائیں طرف D9 پاور LED روشن ہو جائے گی۔ اوپری دائیں جانب e-Link1 Lite پر D32 USB LED USB کی گنتی مکمل ہونے کے بعد روشن ہو جائے گی۔ اگر طویل مدت کے بعد D1 روشن نہیں ہوتا ہے تو تصدیق کریں کہ آیا USB کیبل بات چیت کرنے کے قابل ہے۔ اگر نہیں تو اسے ہٹا دیں اور دوبارہ داخل کریں۔

مرحلہ 2۔ ایک پروجیکٹ بنائیں
ایپلیکیشن\Module_UART\UART_Module_Ex کھولیں۔ample فولڈر میں، _CreateProject.bat پر کلک کریں۔ file ایک پروجیکٹ بنانے کے لیے، جیسا کہ شکل 18 میں دکھایا گیا ہے۔ چونکہ یہ ایپلیکیشن نوٹ HT32F52352 اسٹارٹر کٹ استعمال کرتا ہے، اس لیے MDK_ARMv52352 فولڈر کے نیچے واقع Keil IDE پروجیکٹ "Project_5.uvprojx" کھولیں۔

چترا 18۔ پروجیکٹ بنانے کے لیے _CreateProject.bat پر عمل کریں۔
پروجیکٹ بنائیں

مرحلہ 3۔ مرتب کریں اور پروگرام کریں۔
پروجیکٹ کھولنے کے بعد، پہلے "Build" پر کلک کریں (یا شارٹ کٹ "F7" استعمال کریں)، پھر "ڈاؤن لوڈ" پر کلک کریں (یا شارٹ کٹ "F8" استعمال کریں)۔ اس کے بعد، بلڈ اور ڈاؤن لوڈ کے نتائج بلڈ آؤٹ پٹ ونڈو میں ظاہر ہوں گے۔ تصویر 19 دیکھیں۔

شکل 19. نتائج بنائیں اور ڈاؤن لوڈ کریں۔
نتائج بنائیں اور ڈاؤن لوڈ کریں۔

مرحلہ 4. ٹیرا ٹرم سافٹ ویئر کھولیں اور سیریل پورٹ کو کنفیگر کریں۔
ٹیرا ٹرم سافٹ ویئر اور COM پورٹ کھولیں۔ اس بات پر توجہ دیں کہ آیا سٹارٹر کٹ کے ذریعہ تیار کردہ COM پورٹ نمبر درست ہے یا نہیں۔ پھر کنفیگریشن انٹرفیس میں داخل ہونے کے لیے "Setup >> سیریل پورٹ" پر کلک کریں۔ "Module_UART" ایپلیکیشن کوڈ کی UART انٹرفیس کنفیگریشن "ٹرمینل سافٹ ویئر" سیکشن میں بیان کی گئی ہے۔ سیٹ اپ کا نتیجہ شکل 20 میں دکھایا گیا ہے۔

تصویر 20. تیرا ٹرم سیریل پورٹ سیٹ اپ نتیجہ
سیٹ اپ کا نتیجہ
مرحلہ 5۔ سسٹم کو ری سیٹ کریں اور ٹیسٹ کریں۔
دبائیں SK ری سیٹ کلید – B1 ری سیٹ۔ اس کے بعد، "ABC یہ ٹیسٹ ہے!" پیغام ہو گا
API کے ذریعے منتقل کیا جائے گا اور ٹیرا ٹرم ونڈو میں دکھایا جائے گا، جیسا کہ شکل 21 میں دکھایا گیا ہے۔ وصول کرنے کے فنکشن کے بارے میں، Tera Term ونڈو میں ڈیٹا داخل کرتے وقت، متعلقہ API کا استعمال بفر کی لمبائی کا تعین کرنے کے لیے کیا جائے گا۔ جب پی سی کو موصول ہونے والا ڈیٹا 5 بائٹس تک پہنچ جاتا ہے تو موصول ہونے والے 5 بائٹس ڈیٹا کو ترتیب وار بھیج دیا جائے گا۔ جیسا کہ شکل 22 میں دکھایا گیا ہے، ترتیب وار درج کردہ ڈیٹا "1, 2, 3, 4, 5" ہے، جو API کے ذریعے موصول اور تعین کیا جاتا ہے۔ اس کے بعد پانچ ان پٹ کے بعد ڈیٹا "1، 2، 3، 4، 5" پرنٹ کیا جائے گا۔

شکل 21۔ "Module_UART" ایپلیکیشن کوڈ فنکشنل ٹیسٹ - ٹرانسمٹ
ایپلیکیشن کوڈ فنکشنل ٹیسٹ

شکل 22۔ "Module_UART" ایپلیکیشن کوڈ فنکشنل ٹیسٹ - وصول کریں
ایپلیکیشن کوڈ فنکشنل ٹیسٹ

ٹرانسپلانٹ کی ہدایات
یہ سیکشن صارف کے پروجیکٹس میں APIs کو ضم کرنے کا طریقہ متعارف کرائے گا۔
مرحلہ 1۔ uart_module.c شامل کریں۔ file منصوبے میں. یوزر فولڈر پر دائیں کلک کریں۔ "موجودہ شامل کریں کو منتخب کریں۔ Files کو گروپ 'صارف'…”، پھر uart_module.c کو منتخب کریں۔ file اور "شامل کریں" پر کلک کریں، جیسا کہ شکل 23 میں دکھایا گیا ہے۔ file راستے کی تفصیل

شکل 23۔ uart_module.c شامل کریں۔ File پروجیکٹ کے لیے
File پروجیکٹ کے لیے

مرحلہ 2. ring_buffer.c شامل کریں۔ file منصوبے میں. یوزر فولڈر پر دائیں کلک کریں۔ "موجودہ شامل کریں کو منتخب کریں۔ Files کو گروپ 'صارف'…”، پھر ring_buffer.c کو منتخب کریں۔ file اور "شامل کریں" پر کلک کریں، جیسا کہ شکل 24 میں دکھایا گیا ہے۔\ کے لیے "ڈائریکٹری سٹرکچر" سیکشن دیکھیں۔ file راستے کی تفصیل
شکل 24۔ ring_buffer.c شامل کریں۔ File پروجیکٹ کے لیے 
File پروجیکٹ کے لیے

مرحلہ 3. API ہیڈر شامل کریں۔ file main.c کے شروع میں، جیسا کہ شکل 25 میں دکھایا گیا ہے۔ (Ext: #include "midleware/uart_module.h")
شکل 25. API ہیڈر شامل کریں۔ File main.c سے
API ہیڈر شامل کریں۔ File

مرحلہ 4. ht32_board_config.h کا استعمال کرتے ہوئے UART مواصلت کے لیے درکار ترتیبات کو نافذ کریں۔ file. اس کا تعارف "سیٹنگ کی تفصیل" اور "ترمیم میں ترمیم اور اکثر پوچھے گئے سوالات" کے سیکشنز میں کیا گیا ہے۔

ترتیب میں ترمیم اور اکثر پوچھے گئے سوالات 

یہ سیکشن UART کی ترتیبات میں ترمیم کرنے کا طریقہ متعارف کرائے گا اور استعمال کے دوران پیش آنے والے کچھ عام سوالات کی وضاحت کرے گا۔

UART پن اسائنمنٹ کو تبدیل کریں۔ 

  1. HT32F52352 ڈیٹا شیٹ "پن اسائنمنٹ" باب کا حوالہ دیتے ہوئے، متبادل فنکشن میپنگ ٹیبل کو دیکھیں جس میں ڈیوائس کی قسم کے AFIO افعال کی فہرست دی گئی ہے۔ UART متعلقہ پنوں کے لیے، "AF6 USART/UART" کالم سے رجوع کریں، جیسا کہ شکل 26 میں دکھایا گیا ہے۔
    شکل 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.

تصویر 28. ایک UART چینل شامل کریں۔
UART چینل

اکثر پوچھے گئے سوالات
Q: کمپلیشن اور ٹیسٹ سیکشن کے مرحلہ 5 میں، ٹرانسمٹ فنکشنل ٹیسٹ نارمل ہے۔ یہاں، "ABC یہ ٹیسٹ ہے!" میسج کو کامیابی کے ساتھ ظاہر کیا گیا ہے، تاہم ریسیو فنکشن کے لیے، پانچ ان پٹ ویلیوز کو واپس کیوں نہیں دکھایا گیا؟
A: چیک کریں کہ آیا UART Jumper-J2 کے MCU UART RX اور DAP_Tx پنوں کو جمپر کا استعمال کرتے ہوئے چھوٹا کیا گیا ہے۔ چونکہ "Module_UART" ایپلیکیشن کوڈ کو e-Link32 Lite کے ورچوئل COM پورٹ (VCP) کو استعمال کرنے کی ضرورت ہے، اس لیے شارٹ سرکٹ کی ترتیب UART Jumper-J2 کے بائیں دو پنوں پر لاگو کی جانی چاہیے، جیسا کہ شکل 29 میں دکھایا گیا ہے۔

تصویر 29. UART جمپر-J2 سیٹنگ
UART جمپر

س: بعد میں "Build" (یا شارٹ کٹ "F7") پر عمل کرتے ہوئے، ایک ایرر میسج ظاہر ہوتا ہے جس سے ظاہر ہوتا ہے کہ فرم ویئر لائبریری ورژن مطلوبہ ورژن سے پرانا ہے؟ تصویر 30 دیکھیں۔
A: "Module_UART" ایپلیکیشن کوڈ کے نفاذ میں uart_module.c/h شامل کرنے کی ضرورت ہے۔ files جس میں ایک مخصوص فرم ویئر لائبریری ورژن کی ضرورت ہے۔ جب ایسا ایرر میسج ظاہر ہوتا ہے تو اس کا مطلب ہے کہ فی الحال استعمال شدہ فرم ویئر لائبریری ایک پرانا ورژن ہے۔ اس لیے "فرم ویئر لائبریری" سیکشن میں فراہم کردہ لنک کے ذریعے جدید ترین ورژن ڈاؤن لوڈ کرنا ضروری ہے۔

فگر 30۔ فرم ویئر لائبریری ورژن ایرر میسیج
ورژن میں خرابی کا پیغام

نتیجہ

اس دستاویز نے "Module_UART" ایپلیکیشن کوڈ اور UART کمیونیکیشن پروٹوکول کی بہتر تفہیم کے ساتھ صارفین کی مدد کرنے کے لیے ایک بنیادی تعارف فراہم کیا ہے۔ اس کے بعد وسیلہ ڈاؤن لوڈ اور تیاری کی گئی۔ فنکشنل تفصیل کے باب نے متعارف کرایا file ڈائریکٹری ڈھانچہ، API فن تعمیر، API کی تفصیل اور API کا استعمال سابقamples ہدایات برائے استعمال کے باب میں "Module_UART" ایپلیکیشن کوڈ کی ماحولیاتی تیاری، تالیف اور جانچ کا مظاہرہ کیا گیا ہے۔ اس نے کوڈ ٹرانسپلانٹ اور ترمیم کی ترتیب کے ساتھ ساتھ کچھ عام مسائل کی وضاحت بھی کی جن کا سامنا ہو سکتا ہے۔ یہ سب مل کر صارفین کو تیزی سے سمجھنے کی اجازت دے گا کہ APIs کا استعمال کیسے کیا جائے اور اس کے بعد شروع کرنے کے لیے وقت کی مقدار کو کم کیا جائے۔

حوالہ مواد

مزید معلومات کے لیے ہولٹیک سے رجوع کریں۔ webسائٹ: www.holtek.com

ورژن اور ترمیم کی معلومات

تاریخ مصنف رہائی ترمیم کی معلومات
2022.04.30 蔡期育(چی-یو تسائی) V1.00 پہلا ورژن

ڈس کلیمر

اس پر ظاہر ہونے والی تمام معلومات، ٹریڈ مارکس، لوگو، گرافکس، ویڈیوز، آڈیو کلپس، لنکس اور دیگر آئٹمز webسائٹ ('معلومات') صرف حوالہ کے لیے ہیں اور کسی بھی وقت پیشگی اطلاع کے بغیر اور Holtek Semiconductor Inc. اور اس سے متعلقہ کمپنیوں (اس کے بعد 'Holtek'، 'کمپنی'، 'ہم'، 'کی صوابدید پر تبدیل ہوسکتی ہے۔ ہم' یا 'ہمارے')۔ جب کہ ہولٹیک اس پر معلومات کی درستگی کو یقینی بنانے کی کوشش کرتا ہے۔ webسائٹ، معلومات کی درستگی کے لیے Holtek کی طرف سے کوئی واضح یا مضمر وارنٹی نہیں دی جاتی ہے۔ ہولٹیک کسی بھی غلطی یا رساو کی ذمہ داری نہیں اٹھائے گا۔
ہولٹیک کسی بھی نقصان کے لیے ذمہ دار نہیں ہوگا (بشمول لیکن اس تک محدود نہیں ہے کمپیوٹر وائرس، سسٹم کے مسائل یا ڈیٹا کے نقصان) جو بھی اس کے استعمال میں یا اس کے استعمال سے پیدا ہوتا ہے۔ webکسی بھی پارٹی کی طرف سے سائٹ. اس علاقے میں لنکس ہوسکتے ہیں، جو آپ کو دیکھنے کی اجازت دیتے ہیں webدوسری کمپنیوں کی سائٹس۔
یہ webسائٹس ہولٹیک کے زیر کنٹرول نہیں ہیں۔ ہولٹیک ایسی سائٹوں پر ظاہر ہونے والی کسی بھی معلومات کی کوئی ذمہ داری اور کوئی ضمانت نہیں لے گا۔ دوسرے سے ہائپر لنکس webسائٹس آپ کے اپنے خطرے پر ہیں۔

ذمہ داری کی حد

کسی بھی صورت میں Holtek Limited کسی دوسرے فریق کو کسی بھی نقصان یا نقصان کے لیے ذمہ دار نہیں ہوگا جو بھی یا کسی بھی طرح سے آپ کی رسائی یا اس تک رسائی کے سلسلے میں بالواسطہ یا بلاواسطہ ہوا ہو۔ webسائٹ، اس پر موجود مواد یا کوئی سامان، مواد یا خدمات۔

گورننگ قانون
ڈس کلیمر میں شامل ہے۔ webسائٹ جمہوریہ چین کے قوانین کے مطابق چلائی جائے گی اور اس کی تشریح کی جائے گی۔ صارفین جمہوریہ چین کی عدالتوں کے غیر خصوصی دائرہ اختیار میں جمع کرائیں گے۔

ڈس کلیمر کی تازہ کاری
Holtek کسی بھی وقت پیشگی اطلاع کے ساتھ یا اس کے بغیر اعلان دستبرداری کو اپ ڈیٹ کرنے کا حق محفوظ رکھتا ہے، تمام تبدیلیاں فوری طور پر پوسٹ کرنے کے بعد مؤثر ہو جاتی ہیں۔ webسائٹ

دستاویزات / وسائل

HOLTEK HT32 MCU UART درخواست نوٹ [پی ڈی ایف] یوزر مینوئل
HT32 MCU، UART درخواست نوٹ، HT32 MCU UART، درخواست نوٹ، HT32، MCU UART درخواست نوٹ، HT32 MCU UART درخواست نوٹ

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *