HOLTEK HT32 MCU UART Application Note Օգտագործողի ձեռնարկ
Ներածություն
Ունիվերսալ ասինխրոն ընդունիչ/հաղորդիչ – UART-ը լայնորեն օգտագործվող սերիական փոխանցման միջերես է, որն ապահովում է ճկուն ասինխրոն լրիվ դուպլեքս տվյալների փոխանցում: Այս հավելվածի նշումում տրված «Module_UART» հավելվածի կոդը օգտագործում է TX/RX ընդհատումներ ծրագրային օղակների բուֆերներով՝ API-ների միջոցով UART փոխանցման/ընդունման պարզ գործառույթներ իրականացնելու համար, որոնց առնչվող գործառույթները նկարագրված են ստորև: Սա կպարզեցնի տվյալների փոխանցման ողջ գործընթացը և թույլ կտա օգտատերերին արագ հասկանալ և իրականացնել UART հաղորդակցման հավելվածները:
- Հաղորդման/ընդունման գործառույթներ՝ բայթ կարդալ, բայթ գրել, բուֆերային կարդալ, բուֆերային գրել և այլն:
- Կարգավիճակի գործառույթներ. ստացեք բուֆերի երկարությունը, TX կարգավիճակը և այլն:
Այս փաստաթուղթը նախ կներկայացնի UART կապի արձանագրությունը, որը կօգնի օգտվողներին ավելի լավ հասկանալ UART հաղորդակցությունը սկզբունքից մինչև կիրառություն: Դրան հաջորդում է հավելվածի կոդի համար անհրաժեշտ ռեսուրսների ներբեռնումը և պատրաստումը, ներառյալ որոնվածի գրադարանը, հավելվածի կոդի ներբեռնումը, file և գրացուցակի կոնֆիգուրացիա, ինչպես նաև ներածություն տերմինալային ծրագրային գործիքի մասին, որն օգտագործվում է հավելվածի նշումում: Ֆունկցիոնալ նկարագրություն գլխում կներկայացվեն հավելվածի կոդի գրացուցակի կառուցվածքը, պարամետրերի կարգավորումները և API-ի նկարագրությունը: API-ի օգտագործումը կնկարագրվի «Module_UART» հավելվածի կոդով, և API-ների համար պահանջվող Flash/RAM ռեսուրսների սպառումը նույնպես կցուցադրվի: Օգտագործման հրահանգներ գլխում օգտագործողին կուղղորդի շրջակա միջավայրի նախապատրաստման, կազմման և փորձարկման քայլերը՝ հաստատելու, որ հավելվածի կոդը ճիշտ կաշխատի: Այնուհետև այն կտրամադրի հրահանգներ, որոնք կբացատրեն, թե ինչպես կարելի է ինտեգրել API-ները օգտագործողի նախագծերին և վերջապես կտրամադրի հղում փոփոխությունների և ընդհանուր խնդիրների համար, որոնք կարող են հանդիպել:
Օգտագործված հապավումներ.
- UART: Ունիվերսալ ասինխրոն ընդունիչ/հաղորդիչ
- API: Հավելվածի ծրագրավորման ինտերֆեյս
- LSB: Նվազագույն նշանակալից բիթ
- MSB: Ամենակարևոր Բիթը
- PC: Անհատական համակարգիչ
- SK: Starter Kit, HT32 զարգացման տախտակ
- IDE: Ինտեգրված զարգացման միջավայր
UART կապի արձանագրություն
UART-ը սերիական կապի ինտերֆեյսի տեսակ է, որն իրականացնում է տվյալների զուգահեռ-սերիական փոխակերպում իր հաղորդիչում և այնուհետև սերիական հաղորդակցվում է նմանատիպ ստացողի հետ: Այնուհետև ստացողը տվյալների ընդունումից հետո կատարում է տվյալների սերիական-զուգահեռ փոխակերպում: Նկար 1-ը ցույց է տալիս սերիական հաղորդակցության սխեմատիկ դիագրամը, որը ցույց է տալիս, թե ինչպես են տվյալները փոխանցվում բիթային կարգով: Հետևաբար, հաղորդիչի և ստացողի միջև երկկողմանի հաղորդակցության համար պահանջվում է միայն երկու լար՝ TX և RX, միմյանց միջև տվյալները սերիական փոխանցելու համար: TX-ը այն փինն է, որի վրա UART-ը փոխանցում է սերիական տվյալները և միացված է ստացողի RX փին: Հետևաբար, հաղորդիչ և ստացող սարքերը պետք է միացնեն իրենց TX և RX կապերը՝ UART երկկողմանի հաղորդակցություն իրականացնելու համար, ինչպես ցույց է տրված նկարում. Նկար 2.
Նկար 1. Սերիական հաղորդակցման դիագրամ
Նկար 2. UART շղթայի դիագրամ
UART սերիական հաղորդակցության ընթացքում տվյալների փոխանցումը ասինխրոն է: Սա նշանակում է, որ հաղորդիչի և ստացողի միջև չկա ժամացույց կամ այլ համաժամացման ազդանշան: Այստեղ օգտագործվում է բուդ արագություն, որը սերիական տվյալների փոխանցման/ընդունման արագությունն է և որը սահմանվում է երկու կողմերի կողմից տվյալների փոխանցումից առաջ: Բացի այդ, տվյալների փաթեթի սկզբում և վերջում ավելացվում են հատուկ բիթեր, ինչպիսիք են սկզբի և վերջի բիթերը՝ ամբողջական UART տվյալների փաթեթ կազմելու համար: Նկար 3-ը ցույց է տալիս UART տվյալների փաթեթի կառուցվածքը, մինչդեռ Նկար 4-ը ցույց է տալիս UART 8-բիթանոց տվյալների փաթեթ առանց հավասարության բիթ:
Նկար 3. UART տվյալների փաթեթի կառուցվածքը
Նկար 4. UART 8-բիթանոց տվյալների փաթեթի ձևաչափ
UART տվյալների փաթեթի յուրաքանչյուր մաս ներկայացված է ստորև հաջորդականությամբ:
- Սկսման բիթ. Սա ցույց է տալիս տվյալների փաթեթի սկիզբը: UART TX փին սովորաբար մնում է բարձր տրամաբանական մակարդակի վրա, նախքան փոխանցումը սկսելը: Եթե տվյալների փոխանցումը սկսվի, UART հաղորդիչը կքաշի TX քորոցը բարձրից մինչև ցածր, այսինքն՝ 1-ից մինչև 0, և այն կպահի այնտեղ մեկ ժամացույցի ցիկլով: UART ստացողը կսկսի կարդալ տվյալները, երբ RX փին հայտնաբերվի բարձրից ցածր անցում:
- Տվյալներ: Սա իրական փոխանցված տվյալն է՝ 7, 8 կամ 9 բիթ տվյալների երկարությամբ: Տվյալները սովորաբար առաջինը փոխանցվում են LSB-ով:
- Պարիտետի բիթ. Տվյալների մեջ «1» տրամաբանական թիվը օգտագործվում է որոշելու համար, թե արդյոք որևէ տվյալ փոխվել է փոխանցման ընթացքում: Զույգ հավասարության դեպքում տվյալների մեջ «1» տրամաբանության ընդհանուր թիվը պետք է լինի զույգ թիվ, ընդհակառակը, տվյալների «1» տրամաբանության ընդհանուր թիվը պետք է լինի կենտ հավասարության համար:
- Stop Bit: Սա ցույց է տալիս տվյալների փաթեթի ավարտը, որտեղ UART հաղորդիչը կքաշի TX փին ցածրից բարձր, այսինքն՝ 0-ից մինչև 1, և այնուհետև այն կպահի այնտեղ 1 կամ 2 բիթ ժամանակահատվածով:
Ինչպես նշվեց նախկինում, քանի որ UART շղթայում չկա ժամացույցի ազդանշան, հաղորդիչի և ստացողի միջև պետք է սահմանվի նույն սերիական տվյալների փոխանցման/ընդունման արագությունը, որը հայտնի է որպես բուդ արագություն, առանց սխալների փոխանցում իրականացնելու համար: Baud արագությունը սահմանվում է վայրկյանում փոխանցված բիթերի քանակով, bps-ով (բիթ/վրկ): Որոշ ստանդարտ և սովորաբար օգտագործվող baud արագություններ են 4800bps, 9600bps, 19200bps, 115200bps և այլն: Տվյալների մեկ բիթ փոխանցելու համար պահանջվող համապատասխան ժամանակը ներկայացված է ստորև:
Աղյուսակ 1. Baud Rate ընդդեմ 1-bit փոխանցման ժամանակի
Baud Rate | 1-բիթանոց փոխանցում Ժամանակը |
4800 bps | 208.33 մկվ |
9600 bps | 104.16 մկվ |
19200 bps | 52.08 մկվ |
115200 bps | 8.68 մկվ |
Ռեսուրսների ներբեռնում և պատրաստում
Այս գլուխը կներկայացնի հավելվածի կոդը և օգտագործվող ծրագրային գործիքը, ինչպես նաև, թե ինչպես կարգավորել գրացուցակը և file ուղին.
Որոնվածը գրադարան
Նախ, համոզվեք, որ Holtek HT32 որոնվածի գրադարանը ներբեռնված է նախքան հավելվածի կոդը օգտագործելը: Ներբեռնման հղումը ներկայացված է ստորև: Այստեղ կա երկու տարբերակ՝ HT32_M0p_Vyyyymmdd.zip HT32F5xxxx սերիայի համար և HT32_M3_Vyyyymmdd.zip HT32F1xxxx սերիայի համար: Ներբեռնեք և բացեք ցանկալիը file.
Zip file պարունակում է մի քանի թղթապանակ, որոնք կարող են դասակարգվել որպես Փաստաթղթեր, որոնվածային գրադարան, Գործիքներ և այլ տարրեր, որոնց տեղադրման ուղին ցույց է տրված Նկար 5-ում: HT32 որոնվածի գրադարանի zip 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 և տեղեկատուի կազմաձևում
Քանի որ հավելվածի կոդը չի պարունակում 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 բիթ/վրկ բուդ արագությամբ:
Ֆունկցիոնալ նկարագրություն
Այս գլուխը կտրամադրի հավելվածի կոդի ֆունկցիոնալ նկարագրությունը՝ ներառյալ տեղեկատուի կառուցվածքի, API-ի ճարտարապետության, պարամետրերի նկարագրության և այլնի մասին տեղեկություններ:
Տեղեկատուի կառուցվածքը
Դիմումի կոդը file պարունակում է հավելվածի թղթապանակ: Հաջորդ շերտը «Module_UART» թղթապանակն է, որը պարունակում է երկու կիրառական ծրագիր՝ «UART_Module_Ex»:ample» և «UART_Bridge»: Համապատասխան fileները թվարկված և նկարագրված են ստորև:
Աղյուսակ 2. Հավելվածի կոդի գրացուցակի կառուցվածքը
Թղթապանակ / File Անուն | Նկարագրություն |
\\application\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | Նախագծի ստեղծման խմբաքանակի սցենարներ files |
_ProjectSource.ini | Նախնականացում file նախագծերին սկզբնական կոդը ավելացնելու համար |
ht32_board_config.h | Կարգավորում file կապված IC ծայրամասային I/O նշանակման հետ |
ht32fxxxxx_01_it.c | Ընդհատումների սպասարկման ծրագիր file |
հիմնական.գ | Ծրագրի հիմնական կոդը |
\\ հավելված\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | Նախագծի ստեղծման խմբաքանակի սցենարներ files |
_ProjectSource.ini | Նախնականացում file նախագծերին սկզբնական կոդը ավելացնելու համար |
ht32_board_config.h | Կարգավորում file կապված IC ծայրամասային I/O նշանակման հետ |
ht32fxxxxx_01_it.c | Ընդհատումների սպասարկման ծրագիր file |
հիմնական.գ | Հիմնական ծրագրի կոդ |
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 Ex.amples» բաժինը լրացուցիչ մանրամասների համար:
- «UART_Bridge» հավելվածի կոդում երկու UART ալիքներ՝ UART CH0 և UART CH1, ակտիվացված են, և COMMAND կառույցների միջոցով հատուկ հաղորդակցման արձանագրությունն իրականացվում է երկու UART սարքերի միջև: Լրացուցիչ տեղեկությունների համար տե՛ս «API Usage Examples» բաժինը։
- Հավելվածի կոդը պետք է օգտագործի uart_module.c/h fileներ, որոնք ունեն որոնվածի գրադարանի տարբերակի պահանջ: Պահանջը կարող է ժամանակ առ ժամանակ փոխվել՝ համաձայն թարմացման: Ներկայիս որոնվածի գրադարանի տարբերակի պահանջը հաստատելու համար այցելեք կախվածության ստուգման բովանդակությունը՝ main.c-ում որոնելով «Կախվածության ստուգում» հիմնաբառը: file. Եթե որոնվածի գրադարանի տարբերակը չի համապատասխանում պահանջներին, ներբեռնեք նորագույն տարբերակը «Ծրագրաշարի գրադարան» բաժնում տրված հղումից:
API ճարտարապետություն
Յուրաքանչյուր API ունի կարևոր CH պարամետր, որը հանդիսանում է UART Channel: Սա որոշում է, թե որ 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. API Architecture Block Diagram
Յուրաքանչյուր API կազմված է UART ալիքի հետ կապված կարգավորումների կամ հսկիչների չորս խմբերից, այնպես որ օգտագործողները պետք է մուտքագրեն միայն ցանկալի CH պարամետրը: Համապատասխան API-ն կարգավորելու համար պահանջվում է ունենալ միայն UART հիմնական կազմաձևման պարամետրերի լրացուցիչ աղյուսակ՝ USART_InitTypeDef կառուցվածքի ձևով: API-ն կիրականացնի UART հիմնական կոնֆիգուրացիան՝ ըստ աղյուսակի պարամետրերի բովանդակության: Տե՛ս «API նկարագրություն» բաժինը UART հիմնական կազմաձևման կառուցվածքի աղյուսակի համար:
The uart_module.c/.h files-ը պարունակում է միայն յուրաքանչյուր UART ալիքի ընդհատումը (CHx_IRQ) և կարգավիճակի աղյուսակը (CHx կարգավիճակ), մինչդեռ 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 | Սահմանում է TX պորտի անունը CH0-ի համար; Օրինակ՝ample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | Սահմանում է TX-ի PIN թիվը CH0-ի համար; Օրինակ՝ampլ՝ 0-15 |
HTCFG_UARTM0_RX_GPIO_PORT | Սահմանում է RX-ի պորտի անունը CH0-ի համար; Օրինակ՝ample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | Սահմանում է TX-ի PIN թիվը CH0-ի համար; Օրինակ՝ampլ՝ 0-15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | Սահմանում է TX բուֆերի չափը CH0-ի համար; Օրինակ՝ampլ: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | Սահմանում է RX բուֆերի չափը CH0-ի համար; Օրինակ՝ampլ: 128 |
UART ալիքի AFIO կոնֆիգուրացիան փոփոխելու համար տեսեք համապատասխան սարքի տվյալների թերթիկը: Ներկայումս UART CH0-ի միայն I/O սահմանումները ուժի մեջ են մտնում, քանի որ միայն UART CH0-ն է կազմաձևվել ht32_board_config.h-ում: UART CH1~3 ավելացնելու համար նրանց I/O սահմանումները պետք է լրացվեն՝ հղում կատարելով UART CH0 սահմանմանը կամ հղում կատարելով «Կարգավորումների փոփոխման և ՀՏՀ» բաժնին:
Գոյություն ունեն երեք API ճարտարապետության առանձնահատկություններ.
- Աջակցվում է մինչև չորս UART ալիք: Դրանց մուտքային պարամետրերն են՝ UARTM_CH0, UARTM_CH1, UARTM_CH2 և UARTM_CH3:
- UART ալիքների թիվը կարող է սահմանվել, և չօգտագործված ալիքները չեն նվազեցնի հասանելի հիշողության տարածքը:
- Բոլոր UART կարգավորումները և I/O սահմանումները լիովին անջատված են API-ներից: Սա մեծացնում է արժեքների կարգավորումների կառավարման հարմարավետությունը և նվազեցնում է սխալ կամ բացակայող կարգավորումների հավանականությունը:
Կարգավորման նկարագրություն
Այս բաժինը կներկայացնի պարամետրերի կարգավորումները ht32_board_config.h և uart_module.h կայքերում: files.
- ht32_board_config.h: Սա file օգտագործվում է փին սահմանումների և զարգացման տախտակի համապատասխան կարգավորումների համար, որոնք ներառում են UART IP ալիքը (UART0, UART1, USART0…), որն օգտագործվում է Starter Kit-ի (SK) կողմից, համապատասխան TX/RX փին տեղադրությունները և TX/RX բուֆերի չափը: Նկար 10-ը ցույց է տալիս HT32F52352 Starter Kit-ի կարգավորումների բովանդակությունը: Կախված մշակման ֆունկցիոնալ ինտեգրումից՝ օգտատերերը կարող են դիմել օգտագործված սարքի տվյալների աղյուսակի «Pin Assignment» բաժինը՝ փին սահմանումները իրականացնելու համար: Կարգավորումների փոփոխման մասին ավելի շատ մանրամասներ կներկայացվեն «Կարգավորումների փոփոխություն և ՀՏՀ» բաժնում:
Նկար 10. ht32_board_config.h Կարգավորումներ (HT32F52352)
- uart_module.h: Սա API-ի վերնագիրն է file օգտագործվում է հավելվածի կոդով, որը ներառում է համապատասխան լռելյայն կարգավորումները, ֆունկցիաների սահմանումները և այլն: Ինչպես ցույց է տրված Նկար 11-ում, լռելյայն կարգավորումների բովանդակությունը կարող է վերագրվել արտաքին կոնֆիգուրացիաներով, ինչպիսիք են ht32_board_config.h-ի կարգավորումները: file.
Նկար 11. Default Settings in uart_module.h
API-ի նկարագրություն
- Դիմումի կոդի տվյալների տիպի նկարագրություն.
- USART_InitTypeDef
Սա UART հիմնական կազմաձևման կառուցվածքն է, որը բաղկացած է BaudRate, WordLength, StopBits, Parity և Mode կոնֆիգուրացիաներից, ինչպես ցույց է տրված ստորև:Փոփոխական Անուն Տեսակ Նկարագրություն USART_BaudRate u32 UART կապի արագություն USART_Բառի երկարություն u16 UART հաղորդակցման բառի երկարությունը՝ 7, 8 կամ 9 բիթ USART_StopBits u16 UART կապի դադարեցման բիթ երկարությունը՝ 1 կամ 2 բիթ USART_Հավասարաչափ u16 UART կապի հավասարություն՝ զույգ, կենտ, նշան, բացատ կամ առանց հավասարության USART_Mode u16 UART կապի ռեժիմ; API-ներն աջակցում են միայն նորմալ ռեժիմին
- USART_InitTypeDef
- API-ի գործառույթներն օգտագործելուց առաջ լրացրեք UART հիմնական կոնֆիգուրացիան հիմնական ծրագրում: UART-ի հիմնական կոնֆիգուրացիան այս հավելվածի կոդի համար ներկայացված է Նկար 12-ում: Այստեղ baud արագությունը 115200bps է, բառի երկարությունը՝ 8-bit, stop bit երկարությունը՝ 1-bit, և պարիտետ չկա:
Նկար 12. UART-ի հիմնական կոնֆիգուրացիա
- Նկար 13-ը ցույց է տալիս uart_module.h-ում հայտարարված API ֆունկցիաները file. Հետևյալ աղյուսակները բացատրում են API ֆունկցիաների գործառույթը, մուտքագրման պարամետրերը և օգտագործումը:
Նկար 13. API-ի գործառույթների հայտարարագրեր 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, 'A'); //UART-ը գրում է 1 բայթ – «A» |
Անուն | u32 UARTM_Write (u32 CH, u8 *pBuffer, u32 uLength) | |
Գործառույթ | UART մոդուլի գրման գործողություն (TX) | |
Մուտքագրում | CH | UART ալիք |
pBuffer | Բուֆերային ցուցիչ | |
uLength | Գրելու ենթակա տվյալների երկարությունը | |
Արդյունք | ՀԱՋՈՂՈՒԹՅՈՒՆ | Հաջողակ |
ՍԽԱԼ | Չհաջողվեց | |
Օգտագործումը | u8 Թեստ[] = «Սա թեստ է:\r\n»; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); //UART-ը գրում է pBuffer-ի տվյալները |
Անուն | u32 UARTM_ReadByte (u32 CH, u8 *pData) | |
Գործառույթ | UART մոդուլի ընթերցման բայթ գործողություն (RX) | |
Մուտքագրում | CH | UART ալիք |
pData | Ընթերցված տվյալները տեղադրելու հասցեն | |
Արդյունք | ՀԱՋՈՂՈՒԹՅՈՒՆ | Հաջողակ |
ՍԽԱԼ | Չհաջողվեց (տվյալներ չկան) | |
Օգտագործումը | u8 TempData; if (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 | Բուֆերային ցուցիչ | |
uLength | Ընթերցվող տվյալների երկարությունը | |
Արդյունք | Կարդալ հաշվում | Տվյալների երկարությունը կարդացվել է |
Օգտագործումը | u8 Թեստ2[10]; u32 Լեն; Len = UARTM_Read(UARTM_CH0, Test2, 5);եթե (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() կարդում է 5 բայթ տվյալ և պահում տվյալները Test2-ում և վերագրում է ընթերցված բայթերի քանակը դեպի Len//Գրեք 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) | |
Գործառույթ | Ստացեք գրելու բուֆերի երկարությունը (TX) | |
Մուտքագրում | CH | UART ալիք |
Արդյունք | uLength | Գրեք բուֆերի երկարությունը |
Անուն | u8 UARTM_IsTxFinished(u32 CH) | |
Գործառույթ | Ստացեք 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) | |
Գործառույթ | Հեռացրեք տվյալները ընթերցված բուֆերում | |
Մուտքագրում | CH | UART ալիք |
API-ի օգտագործումը օրինակamples
Այս բաժինը ցույց կտա API-ի գրել և կարդալ նախկինումamp«Module_UART» հավելվածի կոդը՝ օգտագործելով սկզբնավորման գործընթացը և «UART_Module_Ex»ample» հայտի ծածկագրի գործընթացը: API-ներն օգտագործելուց առաջ օգտվողները պետք է ներառեն API-ի վերնագիրը file ծրագրի հիմնական կոդով file (#include «middleware/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 Description» բաժնում:
Գծապատկեր 15. Գրելու և կարդալու գծապատկեր, օրինակamples
«Module_UART» թղթապանակի տակ կա մեկ այլ «UART_Bridge» հավելվածի կոդը, որի հետ կապված է 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 որպես պատասխան փաթեթ և փոխանցեք այն: Հետևյալը նախկինampgCMD1 հրամանի փաթեթից և պատասխանի փաթեթից (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] |
«Բ» | «ա» | «1» | «x, y, z» |
Ռեսուրսների զբաղմունք
Ընդունելով HT32F52352 որպես նախկինample, UART մոդուլի զբաղեցրած ռեսուրսները ներկայացված են ստորև:
HT32F52352 | |
ROM-ի չափը | 946 բայթ |
RAM-ի չափը | 40*1 + 256*2 Բայթեր |
Նշում.
- Գլոբալ փոփոխականները, ներառյալ դրոշները և մեկ ալիքի կարգավիճակը, զբաղեցնում են 40 բայթ RAM:
- Սա այն պայմանի համար է, երբ օգտագործվում է մեկ ալիք, և TX/RX բուֆերի չափը 128/128 բայթ է: Բուֆերի չափը կարող է սահմանվել կիրառման պահանջներին համապատասխան:
Աղյուսակ 4. Հավելվածի ծածկագրի ռեսուրսի զբաղմունքը
- Կազմման միջավայր. MDK-Arm V5.36, ARMCC V5.06 թարմացում 7 (build 960)
- Օպտիմալացնել տարբերակը. Մակարդակ 2 (-O2)
Օգտագործման հրահանգներ
Այս գլխում կներկայացվի «Module_UART» հավելվածի կոդի բնապահպանական նախապատրաստումը, ինչպես նաև կազմման և փորձարկման քայլերը:
Շրջակա միջավայրի նախապատրաստում
«Module_UART» հավելվածի կոդի համար անհրաժեշտ ապարատային և ծրագրային ապահովումը ներկայացված են ստորև:
Աղյուսակ 5. Սարքավորումների/Ծրագրաշարերի շրջակա միջավայրի պատրաստում
Սարքավորում/Ծրագրաշար | հաշվել | Նշում |
Սկսնակ հավաքածու | 1 | Այս հավելվածի նշումը օգտագործում է HT32F52352 Starter Kit-ը որպես նախկինample |
USB մալուխ | 1 | Micro USB, միացված է համակարգչին |
Դիմումի կոդը | — | Ներբեռնման ուղին, file և գրացուցակի կազմաձևումը ներկայացվում է «Ռեսուրսների ներբեռնում և պատրաստում» բաժնում: Ուղին՝ «\\application\Module_UART\UART_Module_Exampլե» |
Tera Term | — | Տե՛ս «Տերմինալային ծրագրակազմ» բաժինը |
Keil IDE | — | Keil uVision V5.xx |
Նախ, UART հավելվածի ներդրման համար օգտագործեք HT32F52352 Starter Kit-ը` համակցված e-Link32 Lite-ի վիրտուալ COM Port (VCP) ֆունկցիայի հետ: Սա պահանջում է իրականացնել հետևյալ բնապահպանական նախապատրաստումը.
- Տախտակի վրա կա երկու USB ինտերֆեյս: Օգտագործեք USB մալուխը՝ համակարգիչը և eLink32 Lite միջերեսը տախտակի վրա միացնելու համար, ինչպես ցույց է տրված Նկար 16-(ա):
- Քանի որ հավելվածի կոդը պետք է օգտագործի e-Link32 Lite Virtual COM Port (VCP) ֆունկցիան, համոզվեք, որ UART Jumper-J2*2-ի PAx*1 և DAP_Tx-ը կարճացվել են jumper-ի միջոցով: J2-ի գտնվելու վայրը նշված է Նկար 16-(բ) կողմից:
Նշում
- Starter Kit-ի J2-ն ունի երկու տարբերակ՝ PAx և DAP_Tx կարճացված կամ PAx և RS232_Tx կարճացված: Մանրամասն կարգավորումների գործառույթների համար տես Starter Kit-ի օգտագործման ձեռնարկը:
- MCU UART RX փին տեղադրությունը տարբեր մեկնարկային փաթեթների վրա տարբեր է: Այս նախկինample-ն օգտագործում է PAx RX փին նշելու համար:
Նկար 16. HT32 Starter Kit Block Diagram
Այժմ օգտագործեք օգտվողի թիրախային տախտակը համակցված e-Link32 Pro-ի վիրտուալ COM Port (VCP) ֆունկցիայի հետ UART հավելվածի ներդրման համար: Սա պահանջում է իրականացնել հետևյալ բնապահպանական նախապատրաստումը.
- e-Link32 Pro-ի մի կողմը միացված է համակարգչին՝ օգտագործելով Mini USB մալուխ, իսկ մյուս կողմը միացված է օգտագործողի թիրախային տախտակին իր 10-բիթանոց մոխրագույն մալուխի միջոցով: Մալուխի և թիրախային տախտակի SWD ինտերֆեյսների միջև կապն իրականացվում է Dupont գծերի միջոցով, ինչպես ցույց է տրված Նկար 17-(ա):
- e-Link32 Pro-ի սերիական կապի փիներն են՝ Pin#7 VCOM_RXD և Pin#8- VCOM_TXD: Սրանք պետք է միացված լինեն օգտագործողի թիրախային տախտակի TX և RX կապերին, ինչպես ցույց է տրված Նկար 17-(բ)-ում:
Նկար 17. e-Link32 Pro + Օգտագործողի թիրախային տախտակի բլոկային դիագրամ
Կազմում և փորձարկում
Այս բաժինը կվերցնի «application\Module_UART\UART_Module_Example» որպես նախկինampներկայացնել կազմման և փորձարկման գործընթացները: Մինչ այդ, համոզվեք, որ նախորդ բաժնում նկարագրված բոլոր նախապատրաստական աշխատանքները իրականացվել են, և որ Tera Term տերմինալի ծրագրակազմը ներբեռնված է:
Գործողության մանրամասն քայլերը ամփոփված են ստորև:
Քայլ 1. Միացման փորձարկում
Նախադրեք ապարատային միջավայրը, ինչպես նկարագրված է նախորդ բաժնում: Միացումից հետո կլուսավորվի Starter Kit-ի ներքևի ձախ մասում գտնվող D9 հոսանքի լուսադիոդը: Վերևի աջ կողմում գտնվող e-Link1 Lite-ի D32 USB LED-ը կլուսավորվի USB-ի թվարկումն ավարտելուց հետո: Եթե երկար ժամանակ անց D1-ը չի լուսավորվում, հաստատեք, թե արդյոք USB մալուխը կարող է հաղորդակցվել: Եթե ոչ, ապա հեռացրեք այն և նորից տեղադրեք այն:
Քայլ 2. Ստեղծեք նախագիծ
Բացեք հավելվածը\Module_UART\UART_Module_Example թղթապանակ, սեղմեք _CreateProject.bat-ի վրա file նախագիծ ստեղծելու համար, ինչպես ցույց է տրված Նկար 18-ում: Քանի որ այս հավելվածի նշումն օգտագործում է HT32F52352 Starter Kit, բացեք Keil IDE նախագիծը «Project_52352.uvprojx», որը գտնվում է MDK_ARMv5 թղթապանակի տակ:
Նկար 18. Նախագիծ ստեղծելու համար գործարկեք _CreateProject.bat
Քայլ 3. Կազմել և ծրագրավորել
Նախագիծը բացվելուց հետո նախ սեղմեք «Կառուցել» (կամ օգտագործեք «F7» դյուրանցումը), այնուհետև կտտացրեք «Ներբեռնում» (կամ օգտագործեք «F8» դյուրանցումը): Դրանից հետո կառուցման և ներբեռնման արդյունքները կցուցադրվեն Build Output պատուհանում: Տես Նկար 19:
Նկար 19. Կառուցել և ներբեռնել արդյունքները
Քայլ 4. Բացեք Tera Term ծրագիրը և կարգավորեք սերիական պորտը
Բացեք Tera Term ծրագիրը և COM պորտը: Ուշադրություն դարձրեք՝ արդյոք Starter Kit-ի կողմից ստեղծված COM պորտի համարը ճիշտ է, թե ոչ: Այնուհետև կտտացրեք «Կարգավորել >> Սերիական պորտ»՝ կազմաձևման միջերես մուտք գործելու համար: «Module_UART» հավելվածի կոդի UART ինտերֆեյսի կոնֆիգուրացիան նկարագրված է «Տերմինալ ծրագրակազմ» բաժնում: Կարգավորման արդյունքը ներկայացված է Նկար 20-ում:
Նկար 20. Tera Term Serial Port Setup Արդյունք
Քայլ 5. Վերագործարկեք համակարգը և փորձարկեք
Սեղմեք SK reset ստեղնը – B1 Reset: Դրանից հետո «ABCThis is test!» հաղորդագրությունը կլինի
փոխանցվում է API-ի միջոցով և կցուցադրվի Tera Term պատուհանում, ինչպես ցույց է տրված Նկար 21-ում: Ինչ վերաբերում է ստանալու գործառույթին, ապա Tera Term պատուհանում տվյալներ մուտքագրելիս համապատասխան API-ն կօգտագործվի՝ որոշելու ընդունման բուֆերի երկարությունը: Երբ ԱՀ-ի կողմից ստացված տվյալները հասնում են 5 բայթ, ստացված 5 բայթ տվյալները հաջորդաբար կուղարկվեն: Ինչպես ցույց է տրված Նկար 22-ում, հաջորդաբար մուտքագրված տվյալները «1, 2, 3, 4, 5» են, որոնք ստացվում և որոշվում են API-ի միջոցով: Դրանից հետո «1, 2, 3, 4, 5» տվյալները կտպվեն հինգ մուտքերից հետո:
Նկար 21. «Module_UART» հավելվածի կոդի ֆունկցիոնալ թեստ – փոխանցում
Նկար 22. «Module_UART» հավելվածի կոդի ֆունկցիոնալ թեստ – ստանալ
Փոխպատվաստման ցուցումներ
Այս բաժնում կներկայացվի, թե ինչպես կարելի է ինտեգրել API-ները օգտվողի նախագծերում:
Քայլ 1. Ավելացնել uart_module.c-ը file նախագծի մեջ։ Աջ սեղմեք User թղթապանակի վրա: Ընտրեք «Ավելացնել գոյություն ունեցող Files to Group 'User'…», ապա ընտրեք uart_module.c file և սեղմեք «Ավելացնել», ինչպես ցույց է տրված Նկար 23-ում: Տե՛ս «Տեղեկատուի կառուցվածքը» բաժինը: file ճանապարհի նկարագրությունը.
Նկար 23. Ավելացնել uart_module.c File դեպի Նախագիծ
Քայլ 2. Ավելացնել ring_buffer.c file նախագծի մեջ։ Աջ սեղմեք User թղթապանակի վրա: Ընտրեք «Ավելացնել գոյություն ունեցող Files to Group 'User'…», ապա ընտրեք ring_buffer.c file և կտտացրեք «Ավելացնել», ինչպես ցույց է տրված Նկար 24-ում:\ Տե՛ս «Տեղեկատուի կառուցվածքը» բաժինը file ճանապարհի նկարագրությունը.
Նկար 24. Ավելացնել ring_buffer.c File դեպի Նախագիծ
Քայլ 3. Ներառեք API-ի վերնագիրը file main.c-ի սկզբում, ինչպես ցույց է տրված Նկար 25-ում: (Ext: #include «middleware/uart_module.h»)
Նկար 25. Ներառեք API վերնագիր File դեպի հիմնական.գ
Քայլ 4. Իրականացրեք UART կապի համար պահանջվող կարգավորումները՝ օգտագործելով ht32_board_config.h file. Սա մանրամասն ներկայացված է «Կարգավորման նկարագրություն» և «Կարգավորումների փոփոխում և ՀՏՀ» բաժիններում:
Կարգավորումների փոփոխում և ՀՏՀ
Այս բաժինը կներկայացնի, թե ինչպես փոփոխել UART-ի կարգավորումները և կբացատրի որոշ ընդհանուր հարցեր, որոնք առաջանում են օգտագործման ընթացքում:
Փոխել UART Pin-ի նշանակումը
- Անդրադառնալով HT32F52352 տվյալների թերթիկի «Pin Assignment» գլխին, փնտրեք Այլընտրանքային գործառույթների քարտեզագրման աղյուսակը, որը թվարկում է սարքի տեսակի AFIO գործառույթները: UART համապատասխան կապանքների համար տես «AF6 USART/UART» սյունակը, ինչպես ցույց է տրված Նկար 26-ում:
Նկար 26. HT32F52352 Այլընտրանքային ֆունկցիայի քարտեզագրման աղյուսակ
- Այս քայլը կուղղորդի օգտվողներին գտնել համապատասխան 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 տվյալների թերթիկի «Pin Assignment» գլխին, փնտրեք Այլընտրանքային գործառույթների քարտեզագրման աղյուսակը, որը թվարկում է սարքի տեսակի AFIO գործառույթները: Քանի որ USART1-ը օգտագործվել է որպես HTCFG_UARTM_CH0, նոր ավելացված HTCFG_UARTM_CH1-ը կարող է ընտրել USART0-ը: Այստեղ TX և RX փիները տեղակայված են համապատասխանաբար PA2 և PA3-ի վրա, ինչպես ցույց է տրված Նկար 28-ի վերին կեսում: Համապատասխան փոփոխություններն իրականացվում են ht120_board_config.h 126~32 ծածկագրի գծերի միջոցով, ինչպես ցույց է տրված Նկարի կարմիր կետավոր տուփով: 28.
Նկար 28. Ավելացնել UART ալիք
ՀՏՀ-ներ
Q: Կազմում և փորձարկում բաժնի 5-րդ քայլում փոխանցման ֆունկցիոնալ թեստը նորմալ է: Ահա «ABCThis is test!» Հաղորդագրությունը հաջողությամբ ցուցադրվել է, սակայն ստանալու ֆունկցիայի համար ինչու հինգ մուտքային արժեքները չեն վերադարձվում և ցուցադրվում:
A: Ստուգեք՝ արդյոք UART Jumper-J2-ի MCU UART RX և DAP_Tx կապերը կարճացվել են՝ օգտագործելով jumper: Քանի որ «Module_UART» հավելվածի կոդը պետք է օգտագործի e-Link32 Lite-ի վիրտուալ COM պորտը (VCP), կարճ միացման կարգավորումը պետք է կիրառվի UART Jumper-J2-ի ձախ երկու կապում, ինչպես ցույց է տրված Նկար 29-ում:
Նկար 29. UART Jumper-J2 կարգավորում
Հարց: Հետո «Build» (կամ «F7» դյուրանցում) գործարկելիս հայտնվում է սխալի հաղորդագրություն, որը ցույց է տալիս, որ որոնվածի գրադարանի տարբերակը ավելի հին է, քան պահանջվողը: Տես Նկար 30:
A: «Module_UART» հավելվածի կոդի ներդրումը պետք է ներառի uart_module.c/h files, որն ունի ծրագրաշարի գրադարանի որոշակի տարբերակի պահանջ: Երբ հայտնվում է նման սխալի հաղորդագրություն, դա նշանակում է, որ ներկայումս օգտագործվող որոնվածի գրադարանը ավելի հին տարբերակ է: Ուստի անհրաժեշտ է ներբեռնել նորագույն տարբերակը «Ծրագրային ծրագրերի գրադարան» բաժնում տրված հղման միջոցով:
Նկար 30. Որոնվածի գրադարանի տարբերակի սխալ հաղորդագրություն
Եզրակացություն
Այս փաստաթուղթը տրամադրել է հիմնական ներածություն՝ օգնելու օգտվողներին ավելի լավ հասկանալու «Module_UART» հավելվածի կոդը և UART հաղորդակցման արձանագրությունը: Դրան հաջորդեց ռեսուրսի ներբեռնումն ու պատրաստումը: Ֆունկցիոնալ նկարագրություն գլուխը ներկայացնում է file գրացուցակի կառուցվածքը, API-ի ճարտարապետությունը, API-ի նկարագրությունը և API-ի օգտագործումը, օրինակamples. Օգտագործման հրահանգներ գլխում ցուցադրվում է «Module_UART» հավելվածի կոդի բնապահպանական պատրաստումը, կազմումը և փորձարկումը: Այն նաև տրամադրեց հրահանգներ կոդի փոխպատվաստման և փոփոխման կարգավորումների համար, ինչպես նաև բացատրեց որոշ ընդհանուր խնդիրներ, որոնք կարող են հանդիպել: Այս ամենը համակցված թույլ կտա օգտվողներին արագ հասկանալ, թե ինչպես օգտագործել API-ները և հետագայում կրճատել սկսելու ժամանակը:
Հղման նյութ
Լրացուցիչ տեղեկությունների համար դիմեք Holtek-ին webկայք: www.holtek.com
Տարբերակները և փոփոխությունների մասին տեղեկությունները
Ամսաթիվ | Հեղինակ | Ազատ արձակել | Փոփոխությունների մասին տեղեկատվություն |
2022.04.30 | 蔡期育 (Չի-Յու Ցայ) | V1.00 | Առաջին Տարբերակ |
Հրաժարում պատասխանատվությունից
Բոլոր տեղեկությունները, ապրանքանիշերը, լոգոները, գրաֆիկան, տեսանյութերը, աուդիո հոլովակները, հղումները և այլ տարրերը, որոնք հայտնվում են սրա վրա webկայքը («Տեղեկատվություն») միայն հղման համար է և ենթակա է փոփոխման ցանկացած ժամանակ՝ առանց նախնական ծանուցման և Holtek Semiconductor Inc.-ի և նրա հարակից ընկերությունների (այսուհետ՝ «Holtek», «ընկերությունը», «մեզ», « մենք» կամ «մեր»): Մինչ Holtek-ը փորձում է ապահովել այս մասին տեղեկատվության ճշգրտությունը webկայք, Holtek-ի կողմից ոչ մի հստակ կամ ենթադրյալ երաշխիք չի տրվում տեղեկատվության ճշգրտությանը: Holtek-ը պատասխանատվություն չի կրում որևէ սխալի կամ արտահոսքի համար:
Holtek-ը պատասխանատվություն չի կրում որևէ վնասի համար (ներառյալ, բայց չսահմանափակվելով համակարգչային վիրուսով, համակարգային խնդիրներով կամ տվյալների կորստով) ցանկացած վնասի համար, որն առաջանում է սրա օգտագործման կամ դրա օգտագործման հետ կապված: webկայք ցանկացած կողմի կողմից: Այս տարածքում կարող են լինել հղումներ, որոնք թույլ են տալիս այցելել webայլ ընկերությունների կայքեր:
Սրանք webկայքերը չեն վերահսկվում Holtek-ի կողմից: Holtek-ը ոչ մի պատասխանատվություն և երաշխիք չի կրի նման կայքերում ցուցադրվող որևէ տեղեկատվության համար: Գերհղումներ դեպի այլ webկայքերը ձեր սեփական ռիսկով են:
Պատասխանատվության սահմանափակում
Ոչ մի դեպքում Holtek Limited-ը պատասխանատվություն չի կրում որևէ այլ կողմի առջև որևէ կորստի կամ վնասի համար կամ ուղղակիորեն կամ անուղղակիորեն պատճառված՝ կապված ձեր մուտքի կամ դրա օգտագործման հետ: webկայքը, դրա բովանդակությունը կամ որևէ ապրանք, նյութ կամ ծառայություն:
Կառավարող օրենք
Հերքումը պարունակվող է webկայքը պետք է կառավարվի և մեկնաբանվի Չինաստանի Հանրապետության օրենքներին համապատասխան: Օգտագործողները կներկայացվեն Չինաստանի Հանրապետության դատարանների ոչ բացառիկ իրավասությանը:
Թարմացում Հերքում
Holtek-ը իրեն իրավունք է վերապահում ցանկացած պահի թարմացնել Հերքումը` նախապես կամ առանց նախնական ծանուցման, բոլոր փոփոխություններն ուժի մեջ են մտնում անմիջապես հրապարակումից հետո: webկայք։
Փաստաթղթեր / ռեսուրսներ
![]() |
HOLTEK HT32 MCU UART հավելվածի նշում [pdf] Օգտագործողի ձեռնարկ HT32 MCU, UART հավելվածի նշում, HT32 MCU UART, հավելվածի նշում, HT32, MCU UART հավելվածի նշում, HT32 MCU UART հավելվածի նշում |