دوال مكتبة الموديول UART :
1- الدالة UART1_Init :
الصيغة العامة :
كود:
void UART1_Init(const unsigned long baud_rate);
مثال :
تقوم الدالة UART1_Init بتهيئة وبدء سجلات قناة USART وتعيين سرعة الاتصال أى قيمة baud_rate . هذه الدالة بدون عائد void ولها بارامتر واحد فقط هو معدل البود baud_rate وهو " عدد صحيح ثابت بدون إشارة طويل(إربع بتات) " const unsigned long .
يجب استدعاء هذه الدالة قبل استخدام أى دالة أخرى من المكتبة .
2- الدالة UART1_Data_Ready
الصيغة العامة :
كود:
char UART1_Data_Ready();
مثال :
كود:
// If data is ready, read it:
if (UART1_Data_Ready() == 1) {
receive = UART1_Read();
}
تستدعى الدالة UART1_Data_Ready للتحقق من أنه قد تم بالفعل "استقبال بايت من البيانات من عدمه" أى تستخدم فى اكتشاف وصول بايت إلى سجل الحافز التسلسلى serial buffer بالميكروكونترولر وأن تلك البيانات جاهزة للقراءة (النسخ) ثم المعالجة .
عائد الدالة من نوع char ويكون بواحد "1" إذا تم بالفعل استقبال بايت ويكون بصفر "0" إذا لم يتم استقبال بايت . هذه الدالة ليس لها بارامترات () . تستخدم هذه الدالة قبل استخدام دالة القراءة UART_Read .
3- الدالة UART1_Read
الصيغة العامة :
مثال :
كود:
// If data is ready, read it:
if (UART1_Data_Ready() == 1) {
receive = UART1_Read();
}
تستدعى الدالة UART1_Read لقراءة "بيانات بايت"من سجل حافز الاستقبال بموديول USART بالميكروكونترولر والعودة به . إذا لم يكن هناك بيانات مستقبلة تعود الدالة بصفر "0" . يجب استدعاء الدالة UART1_Read بعد استدعاء الدالة UART1_Data_Ready للتحقق من أن البيانات متاحة بموديول USART .
عائد الدلة UART1_Read من نوع char وليس لها بارامترات () .
4- الدالة UART1_Write
الصيغة العامة :
كود:
void UART1_Write(char _data);
مثال :
كود:
unsigned char _data = 0x1E;
...
UART1_Write(_data);
تستدعى الدالة UART1_Write لإرسال "بيانات بايت" إلى موديول USART ومن هناك ترسل البيانات تسلسليا إلى خارج الموديول .
الدالة UART1_Write ليس لها عائد void ويجب إمدادها ببارمتر وهو "بيانات البايت المراد إرساله".
مثال : إرسال الحرف A إلى الموديول USART :
كود:
char Temp = ‘A’;
UART1_Write (Temp);
5- الدالة UART1_Read_Text :
الصيغة العامة :
كود:
void UART1_Read_Text(char *Output, char *Delimiter, char Attempts);
هذه الدالة من نوع void أى بدون عائد . تستخدم الدالة UART1_Read_Text فى قراءة الحروف (نص) والتى تم استقبالها من خلال الموديول UART حتى يتم كشف "تسلسل محدد" Delimiter . يتم حفظ نتيجة قراءة النص فى بارامتر "الخرج" Output بينما يتم تحديد التسلسل المحدد عن طريق البارامتر Delimiter . البارامتر "المحاولات" Attempts يعرف عدد الحروف المستقبلة والتى يتوقعها التسلسل المحدد . إذا تم تحديد المحاولات بالقيمة 255 فإن الدالة سوف تحاول بصفة مستمرة كشف التتابع المحدد .
هذه الدالة "مانعة" حيث يتم توقع التسلسل المحدد وإلا إن لم يتواجد هذا التسلسل المحدد يتم الخروج من الدالة .
مثال :
قراءة نص حتى يتم استقبال التسلسل المحدد “OK” ثم إرسال ما تم استقباله عائدا .
كود:
UART1_Init(9600); // initialize UART1 module
Delay_ms(100);
while (1) {
if (UART1_Data_Ready() == 1) { // if data is received
UART1_Read_Text(output, "OK", 10); // reads text until 'OK' is found
UART1_Write_Text(output); // sends back text
}
}
6- الدالة UART1_Write_Text :
الصيغة العامة :
كود:
void UART1_Write_Text(char * UART_text);
هذه الدالة من نوع void أى بدون عائد وتستخدم فى إرسال "نص" text من خلال موديول UART ويجب أن ينتهى النص بصفر النهاية . تحتوى الدالة على بارامتر واحد يشير إلى متغير باسم * UART_text نوع char وهو النص المراد إرساله .