HOLTEK HT32 MCU UART Application Note Օգտագործողի ձեռնարկ
HOLTEK HT32 MCU UART հավելվածի նշում

Ներածություն

Ունիվերսալ ասինխրոն ընդունիչ/հաղորդիչ – 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 սերիական հաղորդակցության ընթացքում տվյալների փոխանցումը ասինխրոն է: Սա նշանակում է, որ հաղորդիչի և ստացողի միջև չկա ժամացույց կամ այլ համաժամացման ազդանշան: Այստեղ օգտագործվում է բուդ արագություն, որը սերիական տվյալների փոխանցման/ընդունման արագությունն է և որը սահմանվում է երկու կողմերի կողմից տվյալների փոխանցումից առաջ: Բացի այդ, տվյալների փաթեթի սկզբում և վերջում ավելացվում են հատուկ բիթեր, ինչպիսիք են սկզբի և վերջի բիթերը՝ ամբողջական 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» տրամաբանության ընդհանուր թիվը պետք է լինի կենտ հավասարության համար:
  • 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. Ապակոմպրեսիայի ուղին
Decompression ճանապարհ

Տերմինալի ծրագրակազմ
Հավելվածի կոդը կարող է հաղորդագրություններ փոխանցել 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

Նշում. 

  1. «UART_Module_Example» հավելվածի կոդը, API-ի կարդալու և գրելու գործողությունները կատարվում են շրջադարձային եղանակով, տես «API Usage Ex.amples» բաժինը լրացուցիչ մանրամասների համար:
  2.  «UART_Bridge» հավելվածի կոդում երկու UART ալիքներ՝ UART CH0 և UART CH1, ակտիվացված են, և COMMAND կառույցների միջոցով հատուկ հաղորդակցման արձանագրությունն իրականացվում է երկու UART սարքերի միջև: Լրացուցիչ տեղեկությունների համար տե՛ս «API Usage Examples» բաժինը։
  3. Հավելվածի կոդը պետք է օգտագործի 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 ճարտարապետության առանձնահատկություններ. 

  1. Աջակցվում է մինչև չորս UART ալիք: Դրանց մուտքային պարամետրերն են՝ UARTM_CH0, UARTM_CH1, UARTM_CH2 և UARTM_CH3:
  2.  UART ալիքների թիվը կարող է սահմանվել, և չօգտագործված ալիքները չեն նվազեցնի հասանելի հիշողության տարածքը:
  3. Բոլոր UART կարգավորումները և I/O սահմանումները լիովին անջատված են API-ներից: Սա մեծացնում է արժեքների կարգավորումների կառավարման հարմարավետությունը և նվազեցնում է սխալ կամ բացակայող կարգավորումների հավանականությունը:

Կարգավորման նկարագրություն 

Այս բաժինը կներկայացնի պարամետրերի կարգավորումները 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 Starter Kit-ի կարգավորումների բովանդակությունը: Կախված մշակման ֆունկցիոնալ ինտեգրումից՝ օգտատերերը կարող են դիմել օգտագործված սարքի տվյալների աղյուսակի «Pin Assignment» բաժինը՝ փին սահմանումները իրականացնելու համար: Կարգավորումների փոփոխման մասին ավելի շատ մանրամասներ կներկայացվեն «Կարգավորումների փոփոխություն և ՀՏՀ» բաժնում:
    Նկար 10. ht32_board_config.h Կարգավորումներ (HT32F52352)
    Կարգավորումներ
  2. uart_module.h: Սա API-ի վերնագիրն է file օգտագործվում է հավելվածի կոդով, որը ներառում է համապատասխան լռելյայն կարգավորումները, ֆունկցիաների սահմանումները և այլն: Ինչպես ցույց է տրված Նկար 11-ում, լռելյայն կարգավորումների բովանդակությունը կարող է վերագրվել արտաքին կոնֆիգուրացիաներով, ինչպիսիք են ht32_board_config.h-ի կարգավորումները: file.
    Նկար 11. Default Settings in uart_module.h
    Կանխադրված կարգավորումներ
API-ի նկարագրություն
  1. Դիմումի կոդի տվյալների տիպի նկարագրություն.
    • 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-ներն աջակցում են միայն նորմալ ռեժիմին
  2. API-ի գործառույթներն օգտագործելուց առաջ լրացրեք UART հիմնական կոնֆիգուրացիան հիմնական ծրագրում: UART-ի հիմնական կոնֆիգուրացիան այս հավելվածի կոդի համար ներկայացված է Նկար 12-ում: Այստեղ baud արագությունը 115200bps է, բառի երկարությունը՝ 8-bit, stop bit երկարությունը՝ 1-bit, և պարիտետ չկա:
    Նկար 12. UART-ի հիմնական կոնֆիգուրացիա
    Հիմնական կոնֆիգուրացիա
  3. Նկար 13-ը ցույց է տալիս uart_module.h-ում հայտարարված API ֆունկցիաները file. Հետևյալ աղյուսակները բացատրում են API ֆունկցիաների գործառույթը, մուտքագրման պարամետրերը և օգտագործումը:
    Նկար 13. API-ի գործառույթների հայտարարագրեր uart_module.h-ում 
    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 հիմնական կոնֆիգուրացիան//Տե՛ս Նկար 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
Գրելու և կարդալու սխեմա, օրինակ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 Բայթեր

Նշում.

  1. Գլոբալ փոփոխականները, ներառյալ դրոշները և մեկ ալիքի կարգավիճակը, զբաղեցնում են 40 բայթ RAM:
  2.  Սա այն պայմանի համար է, երբ օգտագործվում է մեկ ալիք, և 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) ֆունկցիայի հետ: Սա պահանջում է իրականացնել հետևյալ բնապահպանական նախապատրաստումը.

  1. Տախտակի վրա կա երկու USB ինտերֆեյս: Օգտագործեք USB մալուխը՝ համակարգիչը և eLink32 Lite միջերեսը տախտակի վրա միացնելու համար, ինչպես ցույց է տրված Նկար 16-(ա):
  2. Քանի որ հավելվածի կոդը պետք է օգտագործի e-Link32 Lite Virtual COM Port (VCP) ֆունկցիան, համոզվեք, որ UART Jumper-J2*2-ի PAx*1 և DAP_Tx-ը կարճացվել են jumper-ի միջոցով: J2-ի գտնվելու վայրը նշված է Նկար 16-(բ) կողմից:

Նշում

  1. Starter Kit-ի J2-ն ունի երկու տարբերակ՝ PAx և DAP_Tx կարճացված կամ PAx և RS232_Tx կարճացված: Մանրամասն կարգավորումների գործառույթների համար տես Starter Kit-ի օգտագործման ձեռնարկը:
  2. MCU UART RX փին տեղադրությունը տարբեր մեկնարկային փաթեթների վրա տարբեր է: Այս նախկինample-ն օգտագործում է PAx RX փին նշելու համար:

Նկար 16. HT32 Starter Kit Block Diagram
Կոմպլեկտի բլոկի դիագրամ

Այժմ օգտագործեք օգտվողի թիրախային տախտակը համակցված e-Link32 Pro-ի վիրտուալ COM Port (VCP) ֆունկցիայի հետ UART հավելվածի ներդրման համար: Սա պահանջում է իրականացնել հետևյալ բնապահպանական նախապատրաստումը.

  1. e-Link32 Pro-ի մի կողմը միացված է համակարգչին՝ օգտագործելով Mini USB մալուխ, իսկ մյուս կողմը միացված է օգտագործողի թիրախային տախտակին իր 10-բիթանոց մոխրագույն մալուխի միջոցով: Մալուխի և թիրախային տախտակի SWD ինտերֆեյսների միջև կապն իրականացվում է Dupont գծերի միջոցով, ինչպես ցույց է տրված Նկար 17-(ա):
  2. 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 դեպի Նախագիծ
File դեպի Նախագիծ

Քայլ 2. Ավելացնել ring_buffer.c file նախագծի մեջ։ Աջ սեղմեք User թղթապանակի վրա: Ընտրեք «Ավելացնել գոյություն ունեցող Files to Group 'User'…», ապա ընտրեք ring_buffer.c file և կտտացրեք «Ավելացնել», ինչպես ցույց է տրված Նկար 24-ում:\ Տե՛ս «Տեղեկատուի կառուցվածքը» բաժինը file ճանապարհի նկարագրությունը.
Նկար 24. Ավելացնել ring_buffer.c File դեպի Նախագիծ 
File դեպի Նախագիծ

Քայլ 3. Ներառեք API-ի վերնագիրը file main.c-ի սկզբում, ինչպես ցույց է տրված Նկար 25-ում: (Ext: #include «middleware/uart_module.h»)
Նկար 25. Ներառեք API վերնագիր File դեպի հիմնական.գ
Ներառեք API վերնագիր File

Քայլ 4. Իրականացրեք UART կապի համար պահանջվող կարգավորումները՝ օգտագործելով ht32_board_config.h file. Սա մանրամասն ներկայացված է «Կարգավորման նկարագրություն» և «Կարգավորումների փոփոխում և ՀՏՀ» բաժիններում:

Կարգավորումների փոփոխում և ՀՏՀ 

Այս բաժինը կներկայացնի, թե ինչպես փոփոխել UART-ի կարգավորումները և կբացատրի որոշ ընդհանուր հարցեր, որոնք առաջանում են օգտագործման ընթացքում:

Փոխել UART Pin-ի նշանակումը 

  1. Անդրադառնալով HT32F52352 տվյալների թերթիկի «Pin Assignment» գլխին, փնտրեք Այլընտրանքային գործառույթների քարտեզագրման աղյուսակը, որը թվարկում է սարքի տեսակի 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 տվյալների թերթիկի «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 ալիք
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 կարգավորում
UART Jumper

Հարց: Հետո «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 հավելվածի նշում

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *