HOLTEK HT32 MCU UART אַפּפּליקאַטיאָן באַמערקונג באַניצער מאַנואַל
הקדמה
די וניווערסאַל אַסינטשראָנאָוס ופנעמער / טראַנסמיטער - UART איז אַ וויידלי געוויינט סיריאַל טראַנסמיסיע צובינד וואָס גיט פלעקסאַבאַל ייסינגקראַנאַס פול-דופּלעקס דאַטן טראַנסמיסיע. די "Module_UART" אַפּלאַקיישאַן קאָד צוגעשטעלט אין דעם אַפּלאַקיישאַן טאָן ניצט TX / RX ינטעראַפּץ מיט ווייכווארג רינג באַפערז צו ינסטרומענט פּשוט UART טראַנסמיסיע / באַקומען פאַנגקשאַנז דורך אַפּיס, וועמענס פֿאַרבונדענע פאַנגקשאַנז זענען דיסקרייבד אונטן. דאָס וועט פאַרפּאָשעטערן די גאנצע דאַטן טראַנסמיסיע פּראָצעס און לאָזן יוזערז געשווינד פֿאַרשטיין און ינסטרומענט UART קאָמוניקאַציע אַפּלאַקיישאַנז.
- יבערשיקן / באַקומען פאַנגקשאַנז: ביטע לייענען, ביטע שרייַבן, באַפער לייענען, באַפער שרייַבן, עטק.
- סטאַטוס פאַנגקשאַנז: באַקומען די באַפער לענג, טקס סטאַטוס, עטק.
דער דאָקומענט וועט ערשטער באַקענען די UART קאָמוניקאַציע פּראָטאָקאָל, וואָס וועט העלפֿן ניצערס צו בעסער פֿאַרשטיין די UART קאָמוניקאַציע פֿון פּרינציפּ צו אַפּלאַקיישאַן. דעם איז נאכגעגאנגען דורך די אראפקאפיע און צוגרייטונג פון די רעסורסן פארלאנגט פֿאַר די אַפּלאַקיישאַן קאָד, אַרייַנגערעכנט די פירמוואַרע ביבליאָטעק, אַפּלאַקיישאַן קאָד אראפקאפיע, file און וועגווייַזער קאַנפיגיעריישאַן און אַ הקדמה צו די וואָקזאַל ווייכווארג געצייַג געניצט אין די אַפּלאַקיישאַן טאָן. אין די פאַנגקשאַנאַל באַשרייַבונג קאַפּיטל, די אַפּלאַקיישאַן קאָד וועגווייַזער סטרוקטור, פּאַראַמעטער סעטטינגס און אַפּי באַשרייַבונג וועט זיין באַקענענ. די אַפּי באַניץ וועט זיין דיסקרייבד מיט די "Module_UART" אַפּלאַקיישאַן קאָד און די פלאַש / באַראַן מיטל קאַנסאַמשאַן פארלאנגט פֿאַר די אַפּיס וועט אויך זיין ליסטעד. די אינסטרוקציעס פֿאַר נוצן קאַפּיטל וועט פירן די באַניצער דורך די סטעפּס פון ינווייראַנמענאַל צוגרייטונג, זאַמלונג און פּרובירן צו באַשטעטיקן אַז די אַפּלאַקיישאַן קאָד וועט אַרבעטן רעכט. דערנאָך, עס וועט צושטעלן ינסטראַקשאַנז וואָס דערקלערן ווי צו ויסשטימען די אַפּיס אין די פּראַדזשעקס פון דער באַניצער און לעסאָף צושטעלן אַ רעפֿערענץ פֿאַר מאָדיפיקאַטיאָנס און פּראָסט פּראָבלעמס וואָס קען זיין געפּלאָנטערט.
געניצט אַבריווייישאַנז:
- UART: וניווערסאַל אַסינטשראָנאָוס ופנעמער / טראַנסמיטער
- API: אַפּפּליקאַטיאָן פּראָגראַממינג צובינד
- LSB: קלענסטער באַטייטיק ביסל
- MSB: די מערסט וויכטיק זאַך
- פּיסי: פערזענלעכע קאָמפּיוטער
- סק: סטאַרטער קיט, HT32 אַנטוויקלונג ברעט
- IDE: ינטעגראַטעד אנטוויקלונג סוויווע
UART קאָמוניקאַציע פּראָטאָקאָל
די UART איז אַ סיריאַל קאָמוניקאַציע טיפּ פון צובינד וואָס ימפּלאַמאַנץ פּאַראַלעל-צו-סיריאַל דאַטן קאַנווערזשאַן ביי זיין טראַנסמיטער און דערנאָך קאַמיונאַקייץ סיריאַל מיט אַ ענלעך ופנעמער. דער ופנעמער דעמאָלט פּערפאָרמז אַ סיריאַל-צו-פּאַראַלעל דאַטן קאַנווערזשאַן נאָך דאַטן אָפּטראָג. פיגורע 1 ווייזט אַ סכעמאַטיש דיאַגראַמע פון סיריאַל קאָמוניקאַציע וואָס ווייַזן ווי די דאַטן זענען טראַנספערד אין אַ ביטווייז סדר. דעריבער פֿאַר ביידירעקטיאָנאַל קאָמוניקאַציע צווישן טראַנסמיטער און ופנעמער, בלויז צוויי ווירעס, טקס און רקס, זענען פארלאנגט צו אַריבערפירן דאַטן סיריאַל צווישן יעדער אנדערער. טקס איז דער שטיפט אויף וואָס די UART טראַנסמיטט די סיריאַל דאַטן און איז קאָננעקטעד צו די RX שטיפט פון די ופנעמער. דעריבער די טראַנסמיטער און ופנעמער דעוויסעס דאַרפֿן צו קרייַז-פאַרבינדן זייער טקס און רקס פּינס צו דורכפירן צוויי-וועג קאָמוניקאַציע פון UART, ווי געוויזן אין פיגורע 2.
פיגורע 1. סיריאַל קאָמוניקאַציע דיאַגראַמע
פיגורע 2. UART Circuit Diagram
בעשאַס די UART סיריאַל קאָמוניקאַציע, דאַטן טראַנסמיסיע איז ייסינגקראַנאַס. דעם מיטל אַז עס איז קיין זייגער אָדער אנדערע סינגקראַנאַזיישאַן סיגנאַל צווישן די טראַנסמיטער און ופנעמער. דאָ אַ באַוד קורס איז געניצט, וואָס איז די סיריאַל דאַטן טראַנסמיטינג / ריסיווינג גיכקייַט און וואָס איז באַשטימט דורך ביידע זייטן אין שטייַגן פון דאַטן טראַנספערס. אין אַדישאַן, ספּעציעל ביטן אַזאַ ווי אָנהייב און האַלטן ביטן זענען מוסיף צו די אָנהייב און סוף פון די דאַטן פּאַקאַט צו פאָרעם אַ גאַנץ UART דאַטן פּאַקאַט. פיגורע 3 ווייזט די UART דאַטן פּאַקאַט סטרוקטור בשעת פיגורע 4 ווייזט אַ UART 8-ביסל דאַטן פּאַקאַט אָן אַ פּאַריטעט ביסל.
פיגורע 3. ואַרט דאַטאַ פּאַקאַט סטרוקטור
פיגורע 4. ואַרט 8-ביסל דאַטאַ פּאַקאַט פֿאָרמאַט
יעדער טייל פון די UART דאַטן פּאַקאַט איז באַקענענ אין סדר אונטן.
- אָנהייב ביסל: דאָס ינדיקייץ די אָנהייב פון אַ דאַטן פּאַקאַט. די UART TX שטיפט יוזשאַוואַלי בלייבט אויף אַ הויך לאָגיק מדרגה איידער טראַנסמיסיע סטאַרץ. אויב דאַטן טראַנסמיסיע סטאַרץ, די UART טראַנסמיטער וועט ציען די TX שטיפט פון הויך צו נידעריק, דאָס הייסט, פֿון 1 צו 0, און דאַן האַלטן עס דאָרט פֿאַר איין זייגער ציקל. די UART ופנעמער וועט אָנהייבן לייענען דאַטן ווען אַ הויך צו נידעריק יבערגאַנג איז דיטעקטאַד אויף די RX שטיפט.
- דאַטן: דאָס איז די פאַקטיש טראַנספערד דאַטן, מיט אַ דאַטן לענג פון 7, 8 אָדער 9 ביץ. די דאַטן זענען יוזשאַוואַלי טראַנספערד מיט די LSB ערשטער.
- פּאַריטי ביסל: די נומער פון לאָגיק "1" אין די דאַטן איז געניצט צו באַשליסן צי קיין דאַטן האָבן געביטן בעשאַס טראַנסמיסיע. פֿאַר אפילו פּאַריטעט, די גאַנץ נומער פון לאָגיק "1" אין די דאַטן זאָל זיין אַן אפילו נומער, פאַרקערט, די גאַנץ נומער פון לאָגיק "1" אין די דאַטן זאָל זיין אַ מאָדנע נומער פֿאַר מאָדנע פּאַריטעט.
- האַלטן ביסל: דאָס ינדיקייץ די סוף פון אַ דאַטן פּאַקאַט, ווו די UART טראַנסמיטער וועט ציען די טקס שטיפט פון נידעריק צו הויך, דאָס הייסט, פֿון 0 צו 1, און דאַן האַלטן עס דאָרט פֿאַר אַ 1 אָדער 2-ביסל צייט.
ווי דערמאנט פריער, זינט עס איז קיין זייגער סיגנאַל אין די UART קרייַז, דער זעלביקער סיריאַל דאַטן טראַנסמיטינג / ריסיווינג גיכקייַט, וואָס איז באקאנט ווי די באַוד קורס, מוזן זיין דיפיינד צווישן די טראַנסמיטער און ופנעמער צו ינסטרומענט טעות-פריי טראַנסמיסיע. די באַוד קורס איז דיפיינד דורך די נומער פון ביטן טראַנספערד פּער סעקונדע, אין בפּס (ביסל פּער סעקונדע). עטלעכע נאָרמאַל און קאַמאַנלי געוויינט באַוד רייץ זענען 4800bps, 9600bps, 19200bps, 115200bps, עטק. די קאָראַספּאַנדינג צייט פארלאנגט פֿאַר טראַנספערינג אַ איין דאַטן ביסל איז געוויזן אונטן.
טיש 1. באַוד קורס ווס 1-ביסל טראַנסמיסיע צייט
באַוד קורס | 1-ביסל טראַנסמיסיע צייט |
4800בפּס | 208.33 µs |
9600בפּס | 104.16 µs |
19200בפּס | 52.08 µs |
115200בפּס | 8.68 µs |
מיטל אראפקאפיע און צוגרייטונג
דעם קאַפּיטל וועט פאָרשטעלן די אַפּלאַקיישאַן קאָד און די ווייכווארג געצייַג געניצט, ווי געזונט ווי צו קאַנפיגיער די וועגווייַזער און file דרך.
פירמוואַרע ביבליאָטעק
ערשטער, ענשור אַז די Holtek HT32 פירמוואַרע ביבליאָטעק איז דאַונלאָודיד איידער איר נוצן די אַפּלאַקיישאַן קאָד. די אראפקאפיע לינק איז געוויזן אונטן. דאָ עס זענען צוויי אָפּציעס, HT32_M0p_Vyyyymmdd.zip פֿאַר די HT32F5xxxx סעריע און HT32_M3_Vyyyymmdd.zip פֿאַר די HT32F1xxxx סעריע. אראפקאפיע און אַנזיפּ די געוואלט file.
די פאַרשלעסלען file כּולל עטלעכע פאָלדערס וואָס קענען זיין קלאַסאַפייד ווי דאָקומענט, פירמוואַרע ביבליאָטעק, מכשירים און אנדערע זאכן, די פּלייסמאַנט וועג פון וואָס איז געוויזן אין פיגורע 5. די HT32 פירמוואַרע ביבליאָטעק פאַרשלעסלען file מיט א file נאָמען פון HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip איז ליגן אונטער די Firmware_Library טעקע.
פיגורע 5. HT32_M0p_Vyyyymmdd.zip אינהאַלט
אַפּפּליקאַטיאָן קאָד
אראפקאפיע די אַפּלאַקיישאַן קאָד פון די פאלגענדע לינק. די אַפּלאַקיישאַן קאָד איז פּאַקידזשד אין אַ פאַרשלעסלען file מיט א 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 און Directory קאָנפיגוראַטיאָן
ווייַל די אַפּלאַקיישאַן קאָד טוט נישט אַנטהאַלטן די HT32 פירמוואַרע ביבליאָטעק files, די אַפּלאַקיישאַן קאָד און פירמוואַרע ביבליאָטעק אַנזיפּט files זאָל זיין געשטעלט אין די ריכטיק דרך איידער איר אָנהייבן די זאַמלונג. די אַפּלאַקיישאַן קאָד פאַרשלעסלען file יוזשאַוואַלי כּולל איינער אָדער מער פאָלדערס, אַזאַ ווי אַפּלאַקיישאַן און ביבליאָטעק, ווי געוויזן אין פיגורע 7. שטעלן די אַפּלאַקיישאַן טעקע אונטער די HT32 פירמוואַרע ביבליאָטעק וואָרצל וועגווייַזער צו פאַרענדיקן די file וועג קאַנפיגיעריישאַן, ווי געוויזן אין פיגורע 8. אַלטערנאַטיוועלי, אַנזיפּ די אַפּלאַקיישאַן קאָד און HT32 פירמוואַרע ביבליאָטעק סיימאַלטייניאַסלי אין דער זעלביקער וועג צו דערגרייכן די זעלבע קאַנפיגיעריישאַן רעזולטאַטן.
פיגורע 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip אינהאַלט
פיגורע 8. דיקאַמפּרעשאַן פּאַט
טערמינאַל ווייכווארג
די אַפּלאַקיישאַן קאָד קענען אַריבערפירן אַרטיקלען דורך די COM פּאָרט צו ינסטרומענט פונקציע סעלעקציע אָדער סטאַטוס אַרויסווייַזן. דעם ריקווייערז דער באַלעבאָס זייַט צו האָבן די וואָקזאַל ווייכווארג אינסטאַלירן אין שטייַגן. יוזערז קענען קלייַבן צונעמען קשר ווייכווארג, אָדער נוצן פריי לייסאַנסט ווייכווארג אַזאַ ווי Tera Term. אין די אַפּלאַקיישאַן קאָד, די UART קאַנאַל איז קאַנפיגיערד מיט אַ וואָרט לענג פון 8-ביט, קיין פּאַריטעט, 1 האַלטן ביסל און אַ באַוד קורס פון 115200בפּס.
פאַנגקשאַנאַל באַשרייַבונג
דער קאַפּיטל וועט צושטעלן אַ פאַנגקשאַנאַל באַשרייַבונג פֿאַר די אַפּלאַקיישאַן קאָד, אַרייַנגערעכנט אינפֿאָרמאַציע אויף די וועגווייַזער סטרוקטור, אַפּי אַרקאַטעקטשער, באַשטעטיקן באַשרייַבונג, עטק.
Directory סטרוקטור
די אַפּלאַקיישאַן קאָד file כּולל אַ אַפּלאַקיישאַן טעקע. דער ווייַטער שיכטע איז די "Module_UART" טעקע וואָס כּולל צוויי אַפּלאַקיישאַן מגילה, "UART_Module_Ex"ample" און "UART_Bridge". די באַטייַטיק fileס זענען ליסטעד און דיסקרייבד אונטן.
טיש 2. אַפּפּליקאַטיאָן קאָוד Directory סטרוקטור
טעקע / File נאָמען | באַשרייַבונג |
\\ אַפּלאַקיישאַן\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | פּעקל סקריפּס פֿאַר קריייטינג פּרויעקט files |
_ProjectSource.ini | ייטיאַליזאַטיאָן file פֿאַר אַדינג מקור קאָד צו פּראַדזשעקס |
ht32_board_config.h | סעטאַפּ file שייַכות צו IC פּעריפעראַל איך / אָ אַסיינמאַנט |
ht32fxxxxx_01_it.c | יבעררייַסן דינסט פּראָגראַם file |
main.c | הויפּט פּראָגראַם מקור קאָד |
\\ אַפּלאַקיישאַן\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | פּעקל סקריפּס פֿאַר קריייטינג פּרויעקט files |
_ProjectSource.ini | ייטיאַליזאַטיאָן file פֿאַר אַדינג מקור קאָד צו פּראַדזשעקס |
ht32_board_config.h | סעטאַפּ file שייַכות צו IC פּעריפעראַל איך / אָ אַסיינמאַנט |
ht32fxxxxx_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 |
באַמערקונג:
- אין די "UART_Module_Example" אַפּלאַקיישאַן קאָד, די API לייענען און שרייַבן אַפּעריישאַנז זענען דורכגעקאָכט אין אַ לופּבאַק שטייגער, אָפּשיקן צו די "API Usage Examples" אָפּטיילונג פֿאַר מער דעטאַילס.
- אין די "UART_Bridge" אַפּלאַקיישאַן קאָד, צוויי UART טשאַנאַלז, UART CH0 און UART CH1, זענען אַקטיווייטיד, און מנהג קאָמוניקאַציע פּראָטאָקאָל דורך די COMMAND סטראַקטשערז זענען ימפּלאַמענאַד צווישן די צוויי UART דעוויסעס. פֿאַר מער אינפֿאָרמאַציע, אָפּשיקן צו די "API Usage Examples" אָפּטיילונג.
- די אַפּלאַקיישאַן קאָד דאַרף נוצן די uart_module.c/h files וואָס האָבן אַ פירמוואַרע ביבליאָטעק ווערסיע פאָדערונג. די פאָדערונג קען טוישן צייט צו צייט לויט די דערהייַנטיקן. צו באַשטעטיקן די פאָדערונג פֿאַר די קראַנט פירמוואַרע ביבליאָטעק ווערסיע, אָפּשיקן צו די אינהאַלט פון די דעפּענדענסי טשעק דורך זוכן פֿאַר קיווערד "אָפענגיקייַט טשעק" אין די main.c file. אויב די פירמוואַרע ביבליאָטעק ווערסיע טוט נישט טרעפן די רעקווירעמענץ, אראפקאפיע די נואַסט ווערסיע פֿון די לינק צוגעשטעלט אין די "פירמוואַרע ביבליאָטעק" אָפּטיילונג.
אַפּי אַרטשיטעקטורע
יעדער אַפּי האט אַ וויכטיק פּאַראַמעטער CH, וואָס איז די UART קאַנאַל. דאָס דיטערמאַנז וואָס UART קאַנאַל זאָל זיין קאַנטראָולד. דערווייַל אַרויף צו פיר UART טשאַנאַלז זענען געשטיצט און דעריבער פיר קעסיידערדיק סימבאָלס זענען דיפיינד ווי גייט. די זענען געניצט ווי דער פּאַראַמעטער CH, וואָס גיט די API די יקער פֿאַר קאָנטראָל.
- UARTM_CH0: אַרייַנשרייַב פּאַראַמעטער - קאָנטראָל אָדער קאַנפיגיער UART CH0
- UARTM_CH1: אַרייַנשרייַב פּאַראַמעטער - קאָנטראָל אָדער קאַנפיגיער UART CH1
- UARTM_CH2: אַרייַנשרייַב פּאַראַמעטער - קאָנטראָל אָדער קאַנפיגיער UART CH2
- UARTM_CH3: אַרייַנשרייַב פּאַראַמעטער - קאָנטראָל אָדער קאַנפיגיער UART CH3
זיקאָרן פּלאַץ וועט נישט זיין ווייסטאַד אויב בלויז איין UART קאַנאַל איז געניצט. דאָס איז ווייַל די נומער פון די שטיצט UART טשאַנאַלז קענען זיין באַשטימט און די אַניוזד UART קאַנאַל קאָד וועט זיין אַוועקגענומען דורך די פּרעפּראָסעססאָר צו פאַרגרעסערן די בנימצא זכּרון פּלאַץ. די API אַרקאַטעקטשער איז געוויזן אין פיגורע 9.
פיגורע 9. אַפּי אַרטשיטעקטורע בלאַק דיאַגראַמע
יעדער אַפּי איז קאַמפּאָוזד פון פיר גרופּעס פון UART קאַנאַל-פֿאַרבונדענע סעטטינגס אָדער קאָנטראָלס אַזוי אַז יוזערז נאָר דאַרפֿן צו אַרייַנשרייַב די געבעטן CH פּאַראַמעטער. צו קאַנפיגיער די באַטייַטיק אַפּי, עס איז בלויז פארלאנגט צו האָבן אַן נאָך UART יקערדיק קאַנפיגיעריישאַן פּאַראַמעטער טיש מיט די סטרוקטור פאָרעם, USART_InitTypeDef. די API וועט ינסטרומענט די UART יקערדיק קאַנפיגיעריישאַן לויט די פּאַראַמעטער אינהאַלט אין די טיש. אָפּשיקן צו די "API באַשרייַבונג" אָפּטיילונג פֿאַר די UART יקערדיק קאַנפיגיעריישאַן סטרוקטור טיש.
די uart_module.c/.h fileעס כּולל בלויז די יבעררייַס (CHx_IRQ) און סטאַטוס טיש (CHx סטאַטוס) פון יעדער UART קאַנאַל בשעת אַלע די סעטטינגס פארלאנגט פֿאַר UART קאָמוניקאַציע איז צוגעשטעלט דורך ht32_board_config.h. די ייַזנוואַרג באַטייַטיק פּאַראַמעטערס אין די ht32_board_config.h file זענען געוויזן אין די טיש אונטן. מער דעטאַילס זענען צוגעשטעלט אין די "סעטטינג באַשרייַבונג" אָפּטיילונג.
די ייַזנוואַרג באַטייַטיק פּאַראַמעטערס אין די ht32_board_config.h אַרייַננעמען י / אָ סעטטינגס און גשמיות UART פּאָרט סעטטינגס, ווי גייט.
טיש 3. דעפֿיניציע סימבאָלס אין ht32_board_config.h
סימבאָל | באַשרייַבונג |
HTCFG_UARTM_CH0 | גשמיות UART פּאָרט נאָמען; עקסample: UART0, UART1… |
HTCFG_UARTM0_TX_GPIO_PORT | דיפיינז די פּאָרט נאָמען פון טקס פֿאַר CH0; עקסampל: א, ב, C... |
HTCFG_UARTM0_TX_GPIO_PIN | דיפיינז די שטיפט נומער פון טקס פֿאַר CH0; עקסampלע: 0~15 |
HTCFG_UARTM0_RX_GPIO_PORT | דיפיינז די פּאָרט נאָמען פון רקס פֿאַר CH0; עקסampל: א, ב, C... |
HTCFG_UARTM0_RX_GPIO_PIN | דיפיינז די שטיפט נומער פון טקס פֿאַר CH0; עקסampלע: 0~15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | דיפיינז די טקס באַפער גרייס פֿאַר טש0; עקסampל: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | דיפיינז די רקס באַפער גרייס פֿאַר טש0; עקסampל: 128 |
צו מאָדיפיצירן די UART קאַנאַל AFIO קאַנפיגיעריישאַן, אָפּשיקן צו די באַטייַטיק מיטל דאַטאַשיט. דערווייַל בלויז די י / אָ דעפֿיניציע פֿאַר UART CH0 נעמען ווירקונג ווייַל בלויז UART CH0 איז קאַנפיגיערד אין ht32_board_config.h. צו לייגן UART CH1 ~ 3, זייער י / אָ דעפֿיניציע מוזן זיין געענדיקט דורך ריפערינג צו די UART CH0 דעפֿיניציע אָדער ריפערינג צו די "סעטטינג מאָדיפיקאַטיאָן און FAQ" אָפּטיילונג.
עס זענען דריי הויפּט פֿעיִקייטן פון API אַרקאַטעקטשער:
- אַרויף צו פיר UART טשאַנאַלז זענען געשטיצט. זייער אַרייַנשרייַב פּאַראַמעטערס זענען UARTM_CH0, UARTM_CH1, UARTM_CH2 און UARTM_CH3.
- די נומער פון UART טשאַנאַלז קענען זיין באַשטימט און אַניוזד טשאַנאַלז וועט נישט רעדוצירן די בנימצא זכּרון פּלאַץ.
- כל די UART סעטטינגס און י / אָ זוך זענען גאָר אפגעשיידט פון די אַפּיס. דאָס ינקריסיז די קאַנוויניאַנס פון פאַרוואַלטונג פון באַשטעטיקן וואַלועס און ראַדוסאַז די מעגלעכקייט פון פאַלש אָדער פעלנדיק סעטטינגס.
באַשטעטיקן באַשרייַבונג
דער אָפּטיילונג וועט פאָרשטעלן די פּאַראַמעטער סעטטינגס אין די ht32_board_config.h און uart_module.h files.
- ht32_board_config.h: דאָס file איז גענוצט פֿאַר שטיפט זוך און באַטייַטיק סעטטינגס פֿאַר אַנטוויקלונג ברעט, וואָס אַרייַננעמען די UART IP קאַנאַל (UART0, UART1, USART0 ...) געניצט דורך די סטאַרטער קיט (SK), קאָראַספּאַנדינג TX / RX שטיפט לאָוקיישאַנז און TX / RX באַפער גרייס. פיגורע 10 ווייזט די באַשטעטיקן אינהאַלט פון די HT32F52352 סטאַרטער קיט. דעפּענדינג אויף די פאַנגקשאַנאַל ינאַגריישאַן פון דער אַנטוויקלונג, יוזערז קענען אָפּשיקן צו די "Pin Assignment" אָפּטיילונג פון די דאַטאַשיט פון די געוויינט מיטל צו ינסטרומענט די שטיפט זוך. מער דעטאַילס וועגן באַשטעטיקן מאָדיפיקאַטיאָן וועט זיין דיסקרייבד אין די "סעטטינג מאָדיפיקאַטיאָן און FAQ" אָפּטיילונג.
פיגורע 10. ht32_board_config.h סעטטינגס (HT32F52352)
- uart_module.h: דאָס איז די API כעדער file געוויינט דורך די אַפּלאַקיישאַן קאָד, וואָס כולל די באַטייַטיק פעליקייַט סעטטינגס, פונקציע זוך, אאז"ו ו file.
פיגורע 11. פעליקייַט סעטטינגס אין uart_module.h
אַפּי באַשרייַבונג
- אַפּפּליקאַטיאָן קאָד דאַטן טיפּ באַשרייַבונג.
- USART_InitTypeDef
דאָס איז די UART יקערדיק קאַנפיגיעריישאַן סטרוקטור וואָס איז קאַמפּאָוזד פון BaudRate, WordLength, StopBits, Parity און Mode קאַנפיגיעריישאַנז, ווי געוויזן אונטן.וואַריאַבלע נאָמען טיפּ באַשרייַבונג USART_BaudRate u32 UART קאָמוניקאַציע באַוד קורס USART_WordLength u16 UART קאָמוניקאַציע וואָרט לענג: 7, 8 אָדער 9 ביץ USART_StopBits u16 UART קאָמוניקאַציע האַלטן ביסל לענג: 1 אָדער 2 ביטן USART_Parity u16 UART קאָמוניקאַציע פּאַריטעט: אפילו, מאָדנע, צייכן, פּלאַץ אָדער קיין פּאַריטעט USART_מאָדע u16 UART קאָמוניקאַציע מאָדע; די אַפּיס שטיצן בלויז נאָרמאַל מאָדע
- USART_InitTypeDef
- איידער איר נוצן די API פאַנגקשאַנז, פאַרענדיקן די UART יקערדיק קאַנפיגיעריישאַן אין די הויפּט פּראָגראַם. די UART יקערדיק קאַנפיגיעריישאַן פֿאַר דעם אַפּלאַקיישאַן קאָד איז געוויזן אין פיגורע 12. דאָ די באַוד קורס איז 115200bps, וואָרט לענג איז 8-ביסל, האַלטן ביסל לענג איז 1-ביסל, און עס איז קיין פּאַריטעט.
פיגורע 12. UART Basic Configuration
- פיגורע 13 ווייזט די אַפּי פאַנגקשאַנז דערקלערט אין די uart_module.h file. די פאלגענדע טישן דערקלערן די פאַנגקשאַנז, אַרייַנשרייַב פּאַראַמעטערס און באַניץ פון די API פאַנגקשאַנז.
פיגורע 13. אַפּי פֿונקציע דעקלאַראַטיאָנס אין uart_module.h
נאָמען | 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 יקערדיק קאַנפיגיעריישאַן // אָפּשיקן צו פיגורע 12 פֿאַר USART_InitStructure קאַנפיגיעריישאַן |
נאָמען | u32 UARTM_WriteByte (u32 CH, u8 uData) | |
פֿונקציע | UART מאָדולע שרייַבן בייט אָפּעראַציע (TX) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
uData | די דאַטן צו שרייַבן | |
רעזולטאַט | הצלחה | געראָטן |
טעות | ניט אַנדערש | |
באַניץ | UARTM_WriteByte (UARTM_CH0, 'א'); // UART שרייבט 1 בייט - 'א' |
נאָמען | u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength) | |
פֿונקציע | UART מאָדולע שרייַבן אָפּעראַציע (TX) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
pBuffer | באַפער טייַטל | |
uLength | די לענג פון די דאַטן צו שרייַבן | |
רעזולטאַט | הצלחה | געראָטן |
טעות | ניט אַנדערש | |
באַניץ | u8 Test[] = "דאס איז פּראָבע!\r\n"; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); //UART שרייבט פּבופער דאַטן |
נאָמען | u32 UARTM_ReadByte(u32 CH, u8 *pData) | |
פֿונקציע | UART מאָדולע לייענען בייט אָפּעראַציע (RX) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
pData | די אַדרעס צו שטעלן די לייענען דאַטן | |
רעזולטאַט | הצלחה | געראָטן |
טעות | דורכפאַל (קיין דאַטן) | |
באַניץ | u8 TempData; אויב (UARTM_ReadByte(UARTM_CH0, &TempData) == הצלחה){UARTM_WriteByte(UARTM_CH0, TempData);}//אויב UARTM_ReadByte() קערט הצלחה, UART שרייבט דעם דאַטן בייט |
נאָמען | u32 UARTM_Read (u32 CH, u8 *pBuffer, u32 uLength) | |
פֿונקציע | UART מאָדולע לייענען אָפּעראַציע (RX) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
pBuffer | באַפער טייַטל | |
uLength | די לענג פון די דאַטן צו לייענען | |
רעזולטאַט | לייענען ציילן | די לענג פון די דאַטן איז לייענען |
באַניץ | ו8 טעסט2[10]; ו32 לן; Len = UARTM_Read(UARTM_CH0, Test2, 5); אויב (Len> 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() לייענט 5 ביטעס פון דאַטן און סטאָרז דאַטן אין טעסט2, און אַסיינד די לייענען בייט ציילן צו לענ // שרייַבן די דאַטן מקורים פֿון Test2 |
נאָמען | u32 UARTM_GetReadBufferLength(u32 CH) | |
פֿונקציע | באַקומען די לייענען באַפער לענג (RX) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
רעזולטאַט | uLength | לייענען באַפער לענג |
באַניץ | UARTM_Init (UARTM_CH0, &USART_InitStructure, 40); // UART מאָדולע יניטיאַליזאַטיאָן בשעת (UARTM_GetReadBufferLength (UARTM_CH0) <5); // וואַרטן ביז UARTM_ReadBuffer האט באקומען 5 ביטעס פון דאַטן |
נאָמען | u32 UARTM_GetWriteBufferLength(u32 CH) | |
פֿונקציע | באַקומען די שרייַבן באַפער לענג (טקס) | |
אַרייַנשרייַב | CH | UART קאַנאַל |
רעזולטאַט | uLength | שרייב באַפער לענג |
נאָמען | u8 UARTM_IsTxFinished(u32 CH) | |
פֿונקציע | באַקומען די TX סטאַטוס | |
אַרייַנשרייַב | CH | UART קאַנאַל |
רעזולטאַט | אמת | טקס סטאַטוס: פאַרטיק |
פאַלש | טקס סטאַטוס: ניט פאַרטיק | |
באַניץ | UARTM_WriteByte (UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 requiredווייל (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif // דעם אַפּי קענען ווערן גענוצט צו קאָנטראָלירן די טקס סטאַטוס, ווי געוויזן אויבן; וואַרטן ביז די UARTM_WriteByte () אַפּי איז פאַרטיק, דאָס הייסט, TX סטאַטוס איז TRUE, און דאַן פאָרזעצן די סאַבסאַקוואַנט אַקשאַנז.// א ריסטריקשאַן איז צוגעגעבן ווייַל די פונקציע איז נישט צוגעגעבן ביז די SVN ווערסיע נומער אין uart_module.c איז 525. |
נאָמען | פּאָסל UARTM_DiscardReadBuffer(u32 CH) | |
פֿונקציע | אַוועקוואַרפן די דאַטן אין די לייענען באַפער | |
אַרייַנשרייַב | CH | UART קאַנאַל |
אַפּי באַניץ עקסamples
דער אָפּטיילונג וועט באַווייַזן אַפּי שרייַבן און לייענען עקסampליי פון די "Module_UART" אַפּלאַקיישאַן קאָד ניצן די יניטיאַליזאַטיאָן פּראָצעס און די "UART_Module_Example" אַפּלאַקיישאַן קאָד פּראָצעס. איידער איר נוצן די APIs, יוזערז דאַרפֿן צו אַרייַננעמען די API כעדער file אין די הויפּט פּראָגראַם מקור קאָד file (#אַרייַננעמען "מיטלוואַרע/ואַרט_מאָדולע.ה").
ווי געוויזן אין פיגורע 14, ווען איר אַרייַן די יניטיאַליזאַטיאָן פּראָצעס, ערשטער דעפינירן די UART יקערדיק קאַנפיגיעריישאַן סטרוקטור. דערנאָך קאַנפיגיער די UART יקערדיק קאַנפיגיעריישאַן סטרוקטור מיטגלידער אַרייַנגערעכנט BaudRate, WordLength, StopBits, Parity און Mode. צום סוף, רופן די API יניטיאַליזאַטיאָן פונקציע, די קאַמפּלישאַן פון וואָס ינדיקייץ די סוף פון די יניטיאַליזאַטיאָן פּראָצעס. נאָך דעם, ניצערס קענען פאָרזעצן שרייבן און לייענען אַפּעריישאַנז באזירט אויף די פּריסעט UART יקערדיק קאַנפיגיעריישאַן.
פיגורע 14. יניטיאַליזאַטיאָן פלאָווטשאַרט
די "UART_Module_Example" אַפּלאַקיישאַן קאָד דעמאַנסטרייץ די אַפּי לייענען און שרייַבן אַפּעריישאַנז אין אַ לופּבאַק שטייגער. די פלאָווטשאַרט פֿאַר דעם איז געוויזן אין פיגורע 15. די אַפּי פאַנגקשאַנז געניצט אַרייַננעמען UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() און UARTM_GetReadBufferLength(). זייער באַשרייַבונג איז צוגעשטעלט אין די "API באַשרייַבונג" אָפּטיילונג.
פיגורע 15. פלאָווטשאַרט פון שרייב און לייענען עקסamples
עס איז אן אנדער "UART_Bridge" אַפּלאַקיישאַן קאָד אונטער די "Module_UART" טעקע וועמענס שייַכות file באַשרייַבונג איז באַקענענ אין די "דירעקטאָרי סטרוקטור" אָפּטיילונג. די "UART_Bridge" אַפּלאַקיישאַן קאָד אַקטאַווייץ צוויי UART טשאַנאַלז, UART CH0 און UART CH1, און דערנאָך קאַסטאַמייז די קאָמוניקאַציע פּראָטאָקאָל צווישן די צוויי UART דעוויסעס דורך COMMAND סטראַקטשערז, gCMD1 און gCMD2. די זענען דיפיינד אין 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) און אַ ענטפער פּאַקאַט (gCMD2). באַפֿעלן פּאַקאַט (UARTBridge_CMD1TypeDef gCMD1):
בייט 0 | בייט 1 | בייטע 2 ~ בייטע 4 |
uHeader | uCmd | uData [3] |
"א" | "1" | "רענטגענ, י, ז" |
ענטפער פּאַקאַט (UARTBridge_CMD2TypeDef gCMD2):
בייט 0 | בייט 1 | בייט 2 | בייטע 3 ~ בייטע 5 |
uHeader | uCmdA | uCmdB | uData [3] |
"ב" | "אַ" | "1" | "רענטגענ, י, ז" |
מיטל אַקיאַפּיישאַן
גענומען די HT32F52352 ווי אַן עקסampליי, די רעסורסן פאַרנומען דורך די UART מאָדולע איז געוויזן אונטן.
HT32F52352 | |
ראַם גרייס | 946 ביטעס |
באַראַן גרייס | 40*1 + 256*2 ביטעס |
באַמערקונג:
- גלאבאלע וועריאַבאַלז אַרייַנגערעכנט פלאַגס און סטאַטוס פֿאַר אַ איין קאַנאַל פאַרנעמען 40 ביטעס פון באַראַן.
- דאָס איז פֿאַר אַ צושטאַנד ווו אַ איין קאַנאַל איז געניצט און די TX/RX באַפער גרייס איז 128/128 ביטעס. די באַפער גרייס קענען זיין באַשטימט לויט די אַפּלאַקיישאַן רעקווירעמענץ.
טיש 4. אַפּפּליקאַטיאָן קאָוד ריסאָרס פאַך
- קאָמפּילאַטיאָן סוויווע: MDK-Arm V5.36, ARMCC V5.06 דערהייַנטיקן 7 (בויען 960)
- אָפּטימיזירן אָפּציע: מדרגה 2 (-אָ 2)
ינסטראַקשאַנז פֿאַר נוצן
דער קאַפּיטל וועט פאָרשטעלן די ינווייראַנמענאַל צוגרייטונג פֿאַר די "Module_UART" אַפּלאַקיישאַן קאָד, ווי געזונט ווי די זאַמלונג און פּרובירן סטעפּס.
ענוויראָנמענטאַל צוגרייטונג
די ייַזנוואַרג און ווייכווארג פארלאנגט פֿאַר די "Module_UART" אַפּלאַקיישאַן קאָד זענען ליסטעד אונטן.
טיש 5. ייַזנוואַרג / ווייכווארג ינווייראַנמענאַל צוגרייטונג
האַרדוואַרע / ווייכווארג | ציילן | באַמערקונג |
סטאַרטער קיט | 1 | די אַפּלאַקיישאַן טאָן ניצט די HT32F52352 סטאַרטער קיט ווי אַן עקסample |
וסב קאַבלע | 1 | מיקראָ וסב, קאָננעקטעד צו פּיסי |
אַפּפּליקאַטיאָן קאָד | — | דער אראפקאפיע דרך, file און וועגווייַזער קאַנפיגיעריישאַן זענען באַקענענ אין די "ריסאָרס דאַונלאָוד און צוגרייטונג" אָפּטיילונג. פּאַט: "\\ אַפּלאַקיישאַן \ מאָדולע_ואַרט\ ואַרט_מאָדול_עקסampלא" |
טעראַ טערמין | — | אָפּשיקן צו די אָפּטיילונג "טערמינאַל ווייכווארג". |
Keil IDE | — | Keil uVision V5.xx |
ערשטער, נוצן די HT32F52352 סטאַרטער קיט קאַמביינד מיט די ווירטואַל COM פּאָרט (VCP) פֿונקציע פון e-Link32 Lite פֿאַר די הקדמה פון UART אַפּלאַקיישאַן. דעם ריקווייערז די פאלגענדע ינווייראַנמענאַל צוגרייטונג צו זיין ימפּלאַמענאַד:
- עס זענען צוויי וסב ינטערפייסיז אויף די ברעט. ניצן די וסב קאַבלע צו פאַרבינדן די פּיסי און די eLink32 Lite צובינד אויף די ברעט ווי געוויזן אין פיגורע 16-(אַ).
- ווי די אַפּלאַקיישאַן קאָד דאַרף נוצן די e-Link32 Lite Virtual COM Port (VCP) פֿונקציע, ענשור אַז די PAx * 2 און DAP_Tx פון UART Jumper-J2 * 1 איז שאָרטיד מיט אַ דזשאַמפּער. די J2 אָרט איז אנגעוויזן דורך פיגורע 16-(ב).
באַמערקונג
- J2 אויף די סטאַרטער קיט האט צוויי אָפּציעס, PAx און DAP_Tx שאָרטיד אָדער PAx און RS232_Tx שאָרטיד. אָפּשיקן צו די סטאַרטער קיט באַניצער מאַנואַל פֿאַר דיטיילד באַשטעטיקן פאַנגקשאַנז.
- די MCU UART RX שטיפט אָרט אויף פאַרשידענע סטאַרטער קיץ זענען אַנדערש. דעם עקסample ניצט PAx צו אָנווייַזן די RX שטיפט.
פיגורע 16. הט32 סטאַרטער קיט בלאַק דיאַגראַמע
איצט נוצן די באַניצער ציל ברעט קאַמביינד מיט די ווירטואַל COM פּאָרט (VCP) פונקציע פון די E-Link32 Pro פֿאַר די הקדמה פון UART אַפּלאַקיישאַן. דעם ריקווייערז די פאלגענדע ינווייראַנמענאַל צוגרייטונג צו זיין ימפּלאַמענאַד:
- איין זייַט פון e-Link32 Pro איז קאָננעקטעד צו אַ פּיסי מיט אַ מיני וסב קאַבלע און די אנדערע זייַט איז קאָננעקטעד צו די באַניצער ציל ברעט דורך זיין 10-ביסל גרוי קאַבלע. די פֿאַרבינדונג צווישן די SWD ינטערפייסיז פון די קאַבלע און ציל ברעט איז ימפּלאַמענאַד מיט דופּאָנט שורות, ווי געוויזן אין פיגורע 17-(אַ).
- די סיריאַל קאָמוניקאַציע פּינס פון די E-Link32 Pro זענען שפּילקע #7 VCOM_RXD און שפּילקע #8-VCOM_TXD. די זאָל זיין קאָננעקטעד צו די TX און RX פּינס פון די באַניצער ציל ברעט, ווי געוויזן אין פיגורע 17-(ב).
פיגורע 17. e-Link32 Pro + User Target Board Block Diagram
זאַמלונג און טעסט
דער אָפּטיילונג וועט נעמען די "אַפּפּליקאַטיאָן\Module_UART\UART_Module_Example" ווי אַן עקסampצו באַקענען די זאַמלונג און פּרובירן פּראַסעסאַז. איידער דעם, ענשור אַז אַלע די פּרעפּעריישאַנז דיסקרייבד אין די פריערדיקע אָפּטיילונג זענען ימפּלאַמענאַד און אַז די טעראַ טערמין וואָקזאַל ווייכווארג איז דאַונלאָודיד.
די דיטיילד אָפּעראַציע סטעפּס זענען סאַמערייזד אונטן.
שריט 1. מאַכט-אויף פּרובירן
שטעלן די ייַזנוואַרג סוויווע ווי דיסקרייבד אין די פריערדיקע אָפּטיילונג. נאָך מאַכט אויף, די D9 מאַכט געפירט אויף דער נידעריקער לינקס פון די סטאַרטער קיט וועט זיין ילומאַנייטאַד. די D1 USB געפירט אויף די e-Link32 Lite אויף די אויבערשטער רעכט וועט זיין ילומאַנייטאַד נאָך די וסב ינומעריישאַן איז געענדיקט. אויב D1 איז נישט ילומאַנייטאַד נאָך אַ לאַנג צייַט, באַשטעטיקן צי די וסב קאַבלע איז ביכולת צו יבערגעבן. אויב נישט, אַראָפּנעמען עס און שייַעך-אַרייַנלייגן עס ווידער.
שריט 2. דזשענערייט אַ פּרויעקט
עפֿענען די אַפּלאַקיישאַן\Module_UART\UART_Module_Exampאין דער טעקע, גיט די _CreateProject.bat file צו דזשענערייט אַ פּרויעקט, ווי געוויזן אין פיגורע 18. זינט דעם אַפּלאַקיישאַן טאָן ניצט די HT32F52352 סטאַרטער קיט, עפענען די Keil IDE פּרויעקט "Project_52352.uvprojx" ליגן אונטער די MDK_ARMv5 טעקע.
פיגורע 18. ויספירן _CreateProject.bat צו דזשענערייט פּראָיעקט
שריט 3. צונויפנעמען און פּראָגראַם
נאָך די פּרויעקט איז געעפנט, ערשטער גיט אויף "בויען" (אָדער נוצן דורכוועג "F7"), דעמאָלט גיט אויף "Download" (אָדער נוצן דורכוועג "F8"). נאָך דעם, די בויען און אראפקאפיע רעזולטאַטן וועט זיין געוויזן אין די בילד רעזולטאַט פֿענצטער. זען פיגורע 19.
פיגורע 19. בויען און אראפקאפיע רעזולטאַטן
שריט 4. עפֿענען די Tera Term ווייכווארג און קאַנפיגיער די סיריאַל פּאָרט
עפֿענען די Tera Term ווייכווארג און די COM פּאָרט. באַצאָלן ופמערקזאַמקייט צו צי די COM פּאָרט נומער דזשענערייטאַד דורך די סטאַרטער קיט איז ריכטיק אָדער נישט. דערנאָך דריקט אויף "סעטאַפּ >> סיריאַל פּאָרט" צו אַרייַן די קאַנפיגיעריישאַן צובינד. די UART צובינד קאַנפיגיעריישאַן פון די "Module_UART" אַפּלאַקיישאַן קאָד איז דיסקרייבד אין די "טערמינאַל ווייכווארג" אָפּטיילונג. די סעטאַפּ רעזולטאַט איז געוויזן אין פיגורע 20.
פיגורע 20. טעראַ טערמין סיריאַל פּאָרט סעטאַפּ רעזולטאַט
שריט 5. באַשטעטיק די סיסטעם און פּרובירן
דריקן די SK באַשטעטיק שליסל - B1 Reset. נאָך דעם, אַ "אַבקטהיס איז פּראָבע!" אָנזאָג וועט זיין
טראַנסמיטטעד דורך די אַפּי און וועט זיין געוויזן אין די טעראַ טערמין פֿענצטער, ווי געוויזן אין פיגורע 21. וועגן די באַקומען פונקציע, ווען אַרייַן דאַטן אין די טעראַ טערמין פֿענצטער, די באַטייַטיק אַפּי וועט זיין געניצט צו באַשטימען די לענג פון די באַקומען באַפער. ווען די דאַטן באקומען דורך פּיסי ריטשאַז 5 ביטעס, די באקומען 5 ביטעס פון דאַטן וועט זיין געשיקט סאַקווענטשאַלי. ווי געוויזן אין פיגורע 22, די דאַטן סאַקווענטשאַלי אריין איז "1, 2, 3, 4, 5", וואָס איז באקומען און באשלאסן דורך די אַפּי. נאָך דעם, די דאַטן "1, 2, 3, 4, 5" וועט זיין געדרוקט נאָך די פינף ינפּוץ.
פיגורע 21. "Module_UART" אַפּפּליקאַטיאָן קאָוד פאַנגקשאַנאַל טעסט - טראַנסמיט
פיגורע 22. "Module_UART" אַפּפּליקאַטיאָן קאָוד פאַנגקשאַנאַל טעסט - באַקומען
טראַנספּלאַנט ינסטרוקטיאָנס
דער אָפּטיילונג וועט באַקענען ווי צו ויסשטימען די אַפּיס אין די באַניצער ס פּראַדזשעקס.
שריט 1. לייג די uart_module.c file אין די פּרויעקט. רעכט גיט אויף די באַניצער טעקע. סעלעקטירן "לייג עקסיסטינג Files צו גרופע 'באַניצער'...", און סעלעקטירן דעם uart_module.c file און גיט אויף "לייג", ווי געוויזן אין פיגורע 23. אָפּשיקן צו די "דירעקטאָרי סטרוקטור" אָפּטיילונג פֿאַר די file דרך באַשרייַבונג.
פיגורע 23. לייג uart_module.c File צו פּראָיעקט
שריט 2. לייג די ring_buffer.c file אין די פּרויעקט. רעכט גיט אויף די באַניצער טעקע. סעלעקטירן "לייג עקסיסטינג Files צו גרופע 'באַניצער'...", און סעלעקטירן דעם ring_buffer.c file און גיט אויף "לייג", ווי געוויזן אין פיגורע 24. file דרך באַשרייַבונג.
פיגורע 24. לייג ring_buffer.c File צו פּראָיעקט
שריט 3. אַרייַננעמען די API כעדער file אין די אָנהייב פון main.c, ווי געוויזן אין פיגורע 25. (עקסט: #include "middleware/uart_module.h")
פיגורע 25. אַרייַננעמען אַפּי כעדער File צו הויפּט.ק
שריט 4. ינסטרומענט די סעטטינגס פארלאנגט פֿאַר די UART קאָמוניקאַציע ניצן די ht32_board_config.h file. דעם איז באַקענענ אין דעטאַל אין די "סעטטינג באַשרייַבונג" און "סעטטינג מאָדיפיקאַטיאָן און FAQ" סעקשאַנז.
באַשטעטיקן מאָדיפיקאַטיאָן און FAQ
דער אָפּטיילונג וועט באַקענען ווי צו מאָדיפיצירן די UART סעטטינגס און דערקלערן עטלעכע פּראָסט פֿראגן געפּלאָנטערט בעשאַס נוצן.
טוישן די UART שפּילקע אַסיינמאַנט
- ריפערינג צו די HT32F52352 דאַטאַשיט "Pin Assignment" קאַפּיטל, קוק אַרויף די אַלטערנאַטיווע פֿונקציע מאַפּינג טיש וואָס ליסטעד די AFIO פאַנגקשאַנז פון די מיטל טיפּ. פֿאַר די UART באַטייַטיק פּינס, אָפּשיקן צו די "AF6 USART / UART" זייַל, ווי געוויזן אין פיגורע 26.
פיגורע 26. הט32פ52352 אַלטערנאַטיווע פֿונקציע מאַפּינג טיש
- דער שריט וועט פירן יוזערז צו געפֿינען די קאָראַספּאַנדינג UART פּינס ניצן די אויבן טיש. די HT32F52352 עקסample ניצט USART1 ווי די פעליקייַט קאַנאַל. דאָ, די TX און RX פּינס זענען USR1_TX און USR1_RX און זענען ריספּעקטיוולי ליגן אויף PA4 און PA5. פיגורע 27 ווייזט די שטיפט קאָרעספּאָנדענץ און די שטיפט דעפֿיניציע אין "ht32_board_config.h". די ליידיק פעלדער פון "פּאַקקאַגע" אין די שטיפט אַסיינמאַנט טיש מיטל אַז עס זענען קיין באַטייַטיק GPIOs אין דעם פּעקל. צו מאָדיפיצירן די UART פּינס, געפֿינען די ציל שטיפט לאָוקיישאַנז און שייַעך-דעפינירן די פּינס ניצן די "ht32_board_config.h" file.
פיגורע 27. שטיפט קאָררעספּאָנדענסע און באַשטעטיקן מאָדיפיקאַטיאָן
לייג אַ UART קאַנאַל
גענומען די HT32F52352 HTCFG_UARTM_CH1 ווי אַן עקסampדאָ, עס איז דיסקרייבד ווי צו לייגן אַ נייַע UART קאַנאַל.
מאָדיפיצירן די ht32_board_config.h file
ריפערינג צו די HT32F52352 דאַטאַשיט "Pin Assignment" קאַפּיטל, קוק אַרויף די אַלטערנאַטיווע פֿונקציע מאַפּינג טיש וואָס ליסטעד די AFIO פאַנגקשאַנז פון די מיטל טיפּ. ווי USART1 איז געניצט ווי HTCFG_UARTM_CH0, די ניי צוגעלייגט HTCFG_UARTM_CH1 קענען קלייַבן USART0. דאָ, די TX און RX פּינס זענען ריספּעקטיוולי ליגן אויף PA2 און PA3, ווי געוויזן אין דער אויבערשטער העלפט פון פיגורע 28. די קאָראַספּאַנדינג מאָדיפיקאַטיאָנס זענען ימפּלאַמענאַד ניצן קאָד שורות 120 ~ 126 אין ht32_board_config.h, ווי געוויזן דורך די רויט דאַטיד קעסטל אין פיגורע 28 .
פיגורע 28. לייג אַ UART טשאַננעל
FAQ
Q: אין שריט 5 פון די זאַמלונג און טעסט אָפּטיילונג, די טראַנסמיסיע פאַנגקשאַנאַל פּרובירן איז נאָרמאַל. דאָ, די "אַבקטהיס איז פּראָבע!" אָנזאָג איז געוויזן הצלחה, אָבער פֿאַר די באַקומען פונקציע, וואָס די פינף אַרייַנשרייַב וואַלועס זענען נישט אומגעקערט און געוויזן?
A: קוק צי די MCU UART RX און DAP_Tx פּינס פון UART Jumper-J2 זענען שאָרטיד מיט אַ דזשאַמפּער. ווי די "Module_UART" אַפּלאַקיישאַן קאָד דאַרף נוצן די ווירטואַל קאַם פּאָרט (VCP) פון e-Link32 Lite, די קורץ-קרייַז באַשטעטיקן זאָל זיין געווענדט צו די לינקס צוויי פּינס פון UART Jumper-J2, ווי געוויזן אין פיגורע 29.
פיגורע 29. UART דזשאַמפּער-דזש2 באַשטעטיקן
ק: נאָך עקסאַקיוטינג "Build" (אָדער דורכוועג "F7"), אַ טעות אָנזאָג איז ינדיקייץ אַז די פירמוואַרע ביבליאָטעק ווערסיע איז עלטער ווי דער איינער וואָס איז פארלאנגט? זען פיגורע 30.
A: די ימפּלאַמענטיישאַן פון די "Module_UART" אַפּלאַקיישאַן קאָד דאַרף אַרייַננעמען די uart_module.c/h files וואָס האט אַ פאָדערונג פֿאַר אַ זיכער פירמוואַרע ביבליאָטעק ווערסיע. ווען אַזאַ אַ טעות אָנזאָג אויס, עס מיטל אַז די דערווייַל געוויינט פירמוואַרע ביבליאָטעק איז אַן עלטערע ווערסיע. דעריבער עס איז נייטיק צו אָפּלאָדירן די נואַסט ווערסיע דורך די לינק צוגעשטעלט אין די "פירמוואַרע ביבליאָטעק" אָפּטיילונג.
פיגורע 30. פירמוואַרע ביבליאָטעק ווערסיע טעות אָנזאָג
מסקנא
דער דאָקומענט האט צוגעשטעלט אַ יקערדיק הקדמה צו אַרוישעלפן יוזערז מיט אַ בעסער פארשטאנד פון די "Module_UART" אַפּלאַקיישאַן קאָד און UART קאָמוניקאַציע פּראָטאָקאָל. דעם איז נאכגעגאנגען דורך די מיטל אראפקאפיע און צוגרייטונג. די פאַנגקשאַנאַל באַשרייַבונג קאַפּיטל ינטראָודוסט די file וועגווייַזער סטרוקטור, די אַפּי אַרקאַטעקטשער, אַפּי באַשרייַבונג און אַפּי באַניץ עקסamples. די אינסטרוקציעס פֿאַר נוצן קאַפּיטל דעמאַנסטרייטיד די ינווייראַנמענאַל צוגרייטונג, זאַמלונג און טעסטינג פון די "Module_UART" אַפּלאַקיישאַן קאָד. עס אויך צוגעשטעלט אינסטרוקציעס פֿאַר קאָד טראַנספּלאַנט און מאָדיפיקאַטיאָן באַשטעטיקן און דערקלערן עטלעכע פּראָסט פּראָבלעמס וואָס קען זיין געפּלאָנטערט. אַלע דעם קאַמביינד וועט לאָזן ניצערס צו געשווינד פֿאַרשטיין ווי צו נוצן די אַפּיס און דערנאָך רעדוצירן די צייט צו אָנהייבן.
רעפערענץ מאַטעריאַל
פֿאַר מער אינפֿאָרמאַציע, אָפּשיקן צו די Holtek webפּלאַץ: www.holtek.com
ווערסיעס און מאָדיפיקאַטיאָן אינפֿאָרמאַציע
טאָג | מחבר | מעלדונג | מאָדיפיקאַטיאָן אינפֿאָרמאַציע |
2022.04.30 | 蔡期育 (Chi-Yu Tsai) | V1.00 | ערשטער ווערסיע |
אָפּלייקענונג
כל אינפֿאָרמאַציע, טריידמאַרקס, לאָגאָס, גראַפיקס, ווידיאס, אַודיאָ קליפּס, פֿאַרבינדונגען און אנדערע ייטאַמז וואָס דערשייַנען אויף דעם webפּלאַץ ('אינפארמאציע') זענען בלויז פֿאַר רעפֿערענץ און איז אונטערטעניק צו טוישן אין קיין צייט אָן פריערדיק באַמערקן און לויט די דיסקרעשאַן פון Holtek Semiconductor Inc. מיר' אָדער 'אונדזער'). כאָטש האָלטעק פּרווון צו ענשור די אַקיעראַסי פון די אינפֿאָרמאַציע אויף דעם webפּלאַץ, קיין עקספּרעסס אָדער ימפּלייד וואָראַנטי איז געגעבן דורך Holtek צו די אַקיעראַסי פון די אינפֿאָרמאַציע. האָלטעק וועט נישט טראָגן קיין פֿאַראַנטוואָרטלעכקייט פֿאַר קיין פאַלשקייט אָדער ליקאַדזש.
האָלטעק וועט ניט זיין פאַראַנטוואָרטלעך פֿאַר קיין דאַמידזשיז (אַרייַנגערעכנט אָבער ניט לימיטעד צו קאָמפּיוטער ווירוסעס, סיסטעם פּראָבלעמס אָדער דאַטן אָנווער) וועלכער קומט אין ניצן אָדער אין קשר מיט די נוצן פון דעם. webפּלאַץ דורך קיין פּאַרטיי. עס קען זיין לינקס אין דעם געגנט, וואָס לאָזן איר צו באַזוכן די webזייטלעך פון אנדערע קאָמפּאַניעס.
די webזייטלעך זענען נישט קאַנטראָולד דורך האָלטעק. Holtek וועט נישט טראָגן קיין פֿאַראַנטוואָרטלעכקייט און קיין גאַראַנטירן צו קיין אינפֿאָרמאַציע געוויזן אויף אַזאַ זייטלעך. כייפּערלינגקס צו אנדערע webזייטלעך זענען אויף דיין אייגן ריזיקירן.
באַגרענעצונג פון אַכרייַעס
אין קיין פאַל, האָלטעק לימיטעד וועט זיין לייאַבאַל צו קיין אנדערע פּאַרטיי פֿאַר קיין אָנווער אָדער שעדיקן אָדער וואָס איז געפֿירט גלייַך אָדער מינאַצאַד אין קשר מיט דיין אַקסעס צו אָדער נוצן פון דעם. webפּלאַץ, דער אינהאַלט אויף אים אָדער קיין סכוירע, מאַטעריאַלס אָדער באַדינונגען.
גאַווערנינג געזעץ
די אָפּלייקענונג קאַנטיינד אין די webפּלאַץ וועט זיין גאַווערנד דורך און ינטערפּראַטאַד אין לויט מיט די געזעצן פון די רעפובליק פון טשיינאַ. יוזערז וועט פאָרלייגן צו די ניט-ויסשליסיק דזשוריסדיקשאַן פון די רעפובליק פון טשיינאַ קאָרץ.
דערהייַנטיקן פון אָפּלייקענונג
האָלטעק ריזערווז די רעכט צו דערהייַנטיקן די אָפּלייקענונג אין קיין צייט מיט אָדער אָן פריערדיק באַמערקן, אַלע ענדערונגען זענען עפעקטיוו גלייך נאָך פּאָסטינג webפּלאַץ.
דאָקומענטן / רעסאָורסעס
![]() |
HOLTEK HT32 MCU UART אַפּפּליקאַטיאָן באַמערקונג [pdfבאַניצער מאַנואַל HT32 MCU, UART אַפּפּליקאַטיאָן באַמערקונג, HT32 MCU UART, אַפּפּליקאַטיאָן באַמערקונג, HT32, MCU UART אַפּפּליקאַטיאָן באַמערקונג, HT32 MCU UART אַפּפּליקאַטיאָן באַמערקונג |