HOLTEK HT32 MCU UART қолданбасының ескертпесі Пайдаланушы нұсқаулығы
Кіріспе
Әмбебап асинхронды қабылдағыш/таратқыш – UART икемді асинхронды толық дуплексті деректерді беруді қамтамасыз ететін кеңінен қолданылатын сериялық тарату интерфейсі болып табылады. Осы қолданба жазбасында берілген «Module_UART» қолданба коды байланысты функциялары төменде сипатталған API арқылы қарапайым UART жіберу/қабылдау функцияларын жүзеге асыру үшін бағдарламалық сақина буферлері бар TX/RX үзулерін пайдаланады. Бұл деректерді берудің бүкіл процесін жеңілдетеді және пайдаланушыларға UART байланыс қосымшаларын тез түсінуге және енгізуге мүмкіндік береді.
- Тасымалдау/қабылдау функциялары: байт оқу, байт жазу, буферді оқу, буферге жазу және т.б.
- Күй функциялары: буфер ұзындығын, TX күйін және т.б. алу.
Бұл құжат алдымен UART байланыс протоколын енгізеді, ол пайдаланушыларға UART байланысын принциптен қолданбаға дейін жақсырақ түсінуге көмектеседі. Одан кейін қолданба коды үшін қажетті ресурстарды жүктеу және дайындау, соның ішінде микробағдарлама кітапханасы, қолданба кодын жүктеу, file және каталог конфигурациясы, сондай-ақ қолданба жазбасында пайдаланылатын терминалдық бағдарламалық құрал құралына кіріспе. Функционалдық сипаттама тарауында қолданба кодының каталог құрылымы, параметр параметрлері және API сипаттамасы енгізіледі. API пайдалану "Module_UART" қолданба коды арқылы сипатталады және API үшін қажетті Flash/RAM ресурстарын тұтыну да тізімде болады. Қолдану нұсқаулары тарауы пайдаланушыны қоршаған ортаны дайындау, жинақтау және қолданба кодының дұрыс жұмыс істейтінін растау үшін сынау қадамдары арқылы бағыттайды. Содан кейін ол API интерфейстерін пайдаланушының жобаларына қалай біріктіру керектігін түсіндіретін нұсқауларды береді және соңында өзгертулер мен кездесуі мүмкін жалпы мәселелерге сілтеме береді.
Қолданылған қысқартулар:
- UART: Әмбебап асинхронды қабылдағыш/таратқыш
- API: Қолданбалы бағдарламалау интерфейсі
- LSB: Ең аз маңызды бит
- MSB: Ең маңызды бит
- ДК: Дербес компьютер
- SK: Стартер жинағы, HT32 әзірлеу тақтасы
- IDE: Біріктірілген даму ортасы
UART байланыс хаттамасы
UART – таратқышта деректерді параллельден серияға түрлендіруді жүзеге асыратын, содан кейін ұқсас қабылдағышпен сериялық байланысатын интерфейстің сериялық байланыс түрі. Содан кейін қабылдағыш деректерді қабылдағаннан кейін деректерді сериядан параллельге түрлендіруді орындайды. 1-суретте деректердің разрядтық ретпен қалай тасымалданатынын көрсететін сериялық байланыстың схемалық диаграммасы көрсетілген. Сондықтан таратқыш пен қабылдағыш арасындағы екі жақты байланыс үшін деректерді бір-бірімен тізбектей тасымалдау үшін тек екі сым, TX және RX қажет. TX – UART сериялық деректерді жіберетін және ресивердің RX істікшесіне қосылған түйреуіш. Сондықтан таратқыш пен қабылдағыш құрылғыларда көрсетілгендей UART екі жақты байланысты орындау үшін TX және RX түйреуіштерін айқастыру қажет. Сурет 2.
Сурет 1. Сериялық байланыс диаграммасы
Сурет 2. UART схемасы
UART сериялық байланысы кезінде деректерді беру асинхронды болып табылады. Бұл таратқыш пен қабылдағыш арасында сағат немесе басқа синхрондау сигналы жоқ дегенді білдіреді. Бұл жерде деректерді беру/қабылдау жылдамдығы және деректерді тасымалдау алдында екі тарап белгілейтін беру жылдамдығы пайдаланылады. Сонымен қатар, толық UART деректер пакетін қалыптастыру үшін деректер пакетінің басына және соңына бастау және тоқтату биттері сияқты арнайы разрядтар қосылады. 3-суретте UART деректер пакетінің құрылымы көрсетілген, ал 4-суретте паритет биті жоқ UART 8-биттік деректер пакеті көрсетілген.
Сурет 3. UART деректер пакетінің құрылымы
4-сурет. UART 8-биттік деректер пакетінің пішімі
UART деректер пакетінің әрбір бөлігі төменде ретімен енгізілген.
- Бастау биті: Бұл деректер пакетінің басталуын көрсетеді. UART TX істікшесі әдетте жіберу басталғанға дейін жоғары логикалық деңгейде қалады. Егер деректерді жіберу басталса, UART таратқышы TX істікшесін жоғарыдан төменге, яғни 1-ден 0-ге дейін тартады, содан кейін оны бір сағаттық цикл бойына ұстап тұрады. RX істікшесінде жоғарыдан төменге ауысу анықталған кезде UART қабылдағышы деректерді оқи бастайды.
- Деректер: Бұл деректер ұзындығы 7, 8 немесе 9 бит болатын нақты тасымалданатын деректер. Деректер әдетте алдымен LSB арқылы тасымалданады.
- Паритет биті: Деректердегі логикалық «1» саны тасымалдау кезінде қандай да бір деректердің өзгергенін анықтау үшін пайдаланылады. Жұп паритет үшін деректердегі «1» логикасының жалпы саны жұп сан болуы керек, керісінше, деректердегі «1» логикасының жалпы саны тақ паритет үшін тақ сан болуы керек.
- Тоқтату биті: Бұл деректер пакетінің аяқталуын көрсетеді, мұнда UART таратқышы TX істікшесін төменнен жоғарыға, яғни 0-ден 1-ге дейін тартады, содан кейін оны 1 немесе 2-биттік уақыт кезеңі ішінде ұстайды.
Бұрын айтылғандай, UART тізбегінде тактілік сигнал болмағандықтан, қатесіз жіберуді жүзеге асыру үшін таратқыш пен қабылдағыш арасында жіберу жылдамдығы деп аталатын бірдей сериялық деректерді жіберу/қабылдау жылдамдығы анықталуы керек. Берілу жылдамдығы секундына берілетін бит санымен анықталады, бит/сек. Кейбір стандартты және жиі қолданылатын жіберу жылдамдығы 4800бит/с, 9600бит/с, 19200бит/с, 115200бит/с, т.б. Бір деректер битін тасымалдауға қажетті сәйкес уақыт төменде көрсетілген.
1-кесте. Берілу жылдамдығы және 1-биттік жіберу уақыты
Беріліс жылдамдығы | 1-разрядты беру Уақыт |
4800бит/с | 208.33μс |
9600бит/с | 104.16μс |
19200бит/с | 52.08μс |
115200бит/с | 8.68μс |
Ресурсты жүктеу және дайындау
Бұл тарауда қолданба коды және пайдаланылған бағдарламалық құрал, сондай-ақ каталогты конфигурациялау жолы және file жол.
Микробағдарлама кітапханасы
Біріншіден, қолданба кодын пайдаланбас бұрын Holtek HT32 микробағдарлама кітапханасының жүктелгеніне көз жеткізіңіз. Жүктеп алу сілтемесі төменде көрсетілген. Мұнда екі опция бар, HT32F0xxxx сериясы үшін HT32_M5p_Vyyyymmdd.zip және HT32F3xxxx сериясы үшін HT32_M1_Vyyyymmdd.zip. Қажетті файлды жүктеп алыңыз және ашыңыз file.
ZIP file Орналасу жолы 5-суретте көрсетілген Құжат, Микробағдарлама кітапханасы, Құралдар және басқа элементтер ретінде жіктелуі мүмкін бірнеше қалталардан тұрады. HT32 микробағдарлама кітапханасы zip file а file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip атауы Firmware_Library қалтасының астында орналасқан.
5-сурет. HT32_M0p_Vyyyymmdd.zip Мазмұны
Қолданба коды
Келесі сілтемеден қолданба кодын жүктеп алыңыз. Қолданба коды 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 компиляцияны бастамас бұрын дұрыс жолға орналастырылуы керек. Қолданбаның zip коды 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_Example» және «UART_Bridge». Тиісті files төменде келтірілген және сипатталған.
Кесте 2. Қолданба кодының каталог құрылымы
Қалта / File Аты | Сипаттама |
\\application\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | Жобаны құруға арналған пакеттік сценарийлер files |
_ProjectSource.ini | Инициализация file жобаларға бастапқы кодты қосу үшін |
ht32_board_config.h | Орнату file IC перифериялық енгізу/шығару тағайындауымен байланысты |
ht32fxxxxx_01_it.c | Қызметті үзу бағдарламасы file |
негізгі.c | Бағдарламаның негізгі бастапқы коды |
\\application\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | Жобаны құруға арналған пакеттік сценарийлер files |
_ProjectSource.ini | Инициализация file жобаларға бастапқы кодты қосу үшін |
ht32_board_config.h | Орнату file IC перифериялық енгізу/шығару тағайындауымен байланысты |
ht32fxxxxx_01_it.c | Қызметті үзу бағдарламасы file |
негізгі.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 Ex» бөлімін қараңыз.amples» бөлімінен толығырақ ақпарат алыңыз.
- «UART_Bridge» қолданбасының кодында екі UART арнасы, UART CH0 және UART CH1 іске қосылады және екі UART құрылғысы арасында COMMAND құрылымдары арқылы реттелетін байланыс хаттамасы жүзеге асырылады. Қосымша ақпаратты «API Usage Examples» бөлімі.
- Қолданба коды uart_module.c/h пайдалану керек fileмикробағдарлама кітапханасының нұсқасына қойылатын талаптар. Талап жаңартуға сәйкес мезгіл-мезгіл өзгеруі мүмкін. Микробағдарлама кітапханасы нұсқасының ағымдағы талабын растау үшін main.c сайтында «Тәуелділікті тексеру» кілт сөзін іздеу арқылы тәуелділікті тексеру мазмұнын қараңыз. file. Микробағдарлама кітапханасының нұсқасы талаптарға сай болмаса, «Микробағдарлама кітапханасы» бөлімінде берілген сілтемеден ең жаңа нұсқаны жүктеп алыңыз.
API архитектурасы
Әрбір API маңызды CH параметрі бар, ол UART арнасы. Бұл қандай UART арнасын басқару керектігін анықтайды. Қазіргі уақытта төрт UART арнасына қолдау көрсетіледі, сондықтан төрт тұрақты таңба келесідей анықталады. Бұл API интерфейстерін басқару үшін негіз болатын CH параметрі ретінде пайдаланылады.
- UARTM_CH0: енгізу параметрі – UART CH0 басқару немесе конфигурациялау
- UARTM_CH1: енгізу параметрі – UART CH1 басқару немесе конфигурациялау
- UARTM_CH2: енгізу параметрі – UART CH2 басқару немесе конфигурациялау
- UARTM_CH3: енгізу параметрі – UART CH3 басқару немесе конфигурациялау
Тек бір UART арнасы пайдаланылса, жад кеңістігі ысырап болмайды. Себебі қолдау көрсетілетін UART арналарының санын орнатуға болады және пайдаланылмаған UART арна коды қолжетімді жад кеңістігін арттыру үшін препроцессормен жойылады. API архитектурасы мынада көрсетілген 9-сурет.
Сурет 9. API архитектурасының блок диаграммасы
Әрбір API UART арнасына қатысты параметрлердің немесе басқару элементтерінің төрт тобынан тұрады, сондықтан пайдаланушыларға тек қажетті CH параметрін енгізу қажет. Сәйкес API конфигурациялау үшін тек USART_InitTypeDef құрылымдық пішіні бар қосымша UART негізгі конфигурация параметрлерінің кестесі болуы қажет. API кестедегі параметр мазмұнына сәйкес UART негізгі конфигурациясын жүзеге асырады. UART негізгі конфигурация құрылымы кестесі үшін «API сипаттамасы» бөлімін қараңыз.
uart_module.c/.h files тек әрбір UART арнасының үзілуін (CHx_IRQ) және күй кестесін (CHx күйі) қамтиды, ал 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 үшін TX порт атауын анықтайды; Мысалыample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | CH0 үшін TX пин нөмірін анықтайды; Мысалыample: 0~15 |
HTCFG_UARTM0_RX_GPIO_PORT | CH0 үшін RX порт атауын анықтайды; Мысалыample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | CH0 үшін TX пин нөмірін анықтайды; Мысалыample: 0~15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | CH0 үшін TX буферінің өлшемін анықтайды; МысалыampLe: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | CH0 үшін RX буферінің өлшемін анықтайды; МысалыampLe: 128 |
UART арнасының AFIO конфигурациясын өзгерту үшін тиісті құрылғы деректер парағын қараңыз. Қазіргі уақытта тек UART CH0 үшін енгізу/шығару анықтамалары ғана күшіне енеді, өйткені ht0_board_config.h ішінде тек UART CH32 конфигурацияланған. UART CH1~3 қосу үшін олардың енгізу/шығару анықтамаларын UART CH0 анықтамасына сілтеме жасау немесе «Өзгертулерді орнату және жиі қойылатын сұрақтар» бөліміне сілтеме жасау арқылы аяқтау қажет.
API архитектурасының үш негізгі мүмкіндігі бар:
- Төрт UART арнасына дейін қолдау көрсетіледі. Олардың енгізу параметрлері: UARTM_CH0, UARTM_CH1, UARTM_CH2 және UARTM_CH3.
- UART арналарының санын орнатуға болады және пайдаланылмаған арналар бос жад орнын азайтпайды.
- Барлық UART параметрлері мен енгізу/шығару анықтамалары API интерфейстерінен толығымен бөлінген. Бұл мәндерді орнатудың басқару ыңғайлылығын арттырады және қате немесе жоқ параметрлер мүмкіндігін азайтады.
Параметр сипаттамасы
Бұл бөлім ht32_board_config.h және uart_module.h ішіндегі параметр параметрлерін енгізеді. files.
- ht32_board_config.h: Бұл file Бастау жинағы (SK) пайдаланатын UART IP арнасын (UART0, UART1, USART0…), сәйкес TX/RX істік орындары мен TX/RX буферінің өлшемін қамтитын істік анықтамалары мен әзірлеу тақтасының сәйкес параметрлері үшін пайдаланылады. 10-сурет HT32F52352 іске қосу жинағының параметр мазмұнын көрсетеді. Әзірлеудің функционалдық интеграциясына байланысты пайдаланушылар түйреуіш анықтамаларын жүзеге асыру үшін пайдаланылған құрылғының деректер парағының «Pin тағайындау» бөліміне жүгіне алады. Параметрді өзгерту туралы қосымша мәліметтер «Өзгертуді орнату және жиі қойылатын сұрақтар» бөлімінде сипатталады.
10-сурет. ht32_board_config.h Параметрлер (HT32F52352)
- uart_module.h: Бұл API тақырыбы file тиісті әдепкі параметрлерді, функция анықтамаларын және т.б. қамтитын қолданба коды арқылы пайдаланылады. 11-суретте көрсетілгендей, әдепкі параметр мазмұнын ht32_board_config.h ішіндегі параметрлер сияқты сыртқы конфигурациялар арқылы қайта жазуға болады. file.
Сурет 11. uart_module.h ішіндегі әдепкі параметрлер
API сипаттамасы
- Қолданба кодының деректер түрінің сипаттамасы.
- USART_InitTypeDef
Бұл төменде көрсетілгендей BaudRate, WordLength, StopBits, Parity және Mode конфигурацияларынан тұратын UART негізгі конфигурация құрылымы.Айнымалы Аты Түр Сипаттама USART_BaudRate u32 UART байланыс жылдамдығы USART_WordLength u16 UART байланыс сөзінің ұзындығы: 7, 8 немесе 9 бит USART_StopBits u16 UART байланысын тоқтату битінің ұзындығы: 1 немесе 2 бит USART_Паритет u16 UART байланыс паритеті: жұп, тақ, белгі, бос орын немесе паритет жоқ USART_режимі u16 UART байланыс режимі; API интерфейстері тек қалыпты режимді қолдайды
- USART_InitTypeDef
- API функцияларын пайдаланбас бұрын негізгі бағдарламада UART негізгі конфигурациясын аяқтаңыз. Бұл қолданба кодының UART негізгі конфигурациясы 12-суретте көрсетілген. Мұнда жіберу жылдамдығы 115200бит/с, сөз ұзындығы 8-бит, тоқтату битінің ұзындығы 1-бит және паритет жоқ.
Сурет 12. UART негізгі конфигурациясы
- 13-сурет uart_module.h файлында жарияланған API функцияларын көрсетеді file. Келесі кестелер функцияны, енгізу параметрлерін және API функцияларын пайдалануды түсіндіреді.
Сурет 13. uart_module.h ішіндегі API функциясының мәлімдемелері
Аты | жарамсыз UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
Функция | UART модулін инициализациялау | |
Енгізу | CH | UART арнасы |
pUART_Init | UART негізгі конфигурация құрылымының көрсеткіші | |
uRxTimeOutValue | UART RX FIFO күту уақыты. RX FIFO жаңа деректерді алған кезде есептегіш қалпына келтіріліп, қайта іске қосылады. Есептегіш алдын ала орнатылған күту уақытының мәніне жеткенде және сәйкес күту үзілуі қосылғаннан кейін күту үзілуі жасалады. | |
Қолданылуы | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//UART негізгі конфигурациясын орындау//USART_InitStructure конфигурациясын 12-суретті қараңыз |
Аты | u32 UARTM_WriteByte(u32 CH, u8 uData) | |
Функция | UART модулінің жазу байт әрекеті (TX) | |
Енгізу | CH | UART арнасы |
uData | Жазылатын деректер | |
Шығару | ТАБЫС | Сәтті |
ҚАТЕ | Сәтсіз | |
Қолданылуы | UARTM_WriteByte(UARTM_CH0, 'A'); //UART 1 байт жазады – 'A' |
Аты | u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength) | |
Функция | UART модулін жазу әрекеті (TX) | |
Енгізу | CH | UART арнасы |
pBuffer | Буфер көрсеткіші | |
uҰзындығы | Жазылатын деректердің ұзындығы | |
Шығару | ТАБЫС | Сәтті |
ҚАТЕ | Сәтсіз | |
Қолданылуы | u8 Test[] = “Бұл сынақ!\r\n”; UARTM_Write(UARTM_CH0, Тест, sizeof(Тест) -1); //UART pBuffer деректерін жазады |
Аты | u32 UARTM_ReadByte(u32 CH, u8 *pData) | |
Функция | UART модулінің оқу байт әрекеті (RX) | |
Енгізу | CH | UART арнасы |
pData | Оқылған деректерді орналастыру мекенжайы | |
Шығару | ТАБЫС | Сәтті |
ҚАТЕ | Сәтсіз (деректер жоқ) | |
Қолданылуы | u8 TempData; егер (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//Егер UARTM_ReadByte() SUCCESS мәнін қайтарса, онда UART бұл деректер байтты жазады |
Аты | u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength) | |
Функция | UART модулін оқу әрекеті (RX) | |
Енгізу | CH | UART арнасы |
pBuffer | Буфер көрсеткіші | |
uҰзындығы | Оқылатын деректердің ұзындығы | |
Шығару | Оқу саны | Деректер ұзындығы оқылды |
Қолданылуы | u8 Test2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);егер (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() 5 байтты деректерді оқиды және деректерді Test2 ішіне сақтайды және оқылған байттардың санын тағайындайды Len//Тест2-ден алынған деректерді жазыңыз |
Аты | u32 UARTM_GetReadBufferLength(u32 CH) | |
Функция | Оқу буферінің ұзындығын (RX) алыңыз | |
Енгізу | CH | UART арнасы |
Шығару | uҰзындығы | Буфер ұзындығын оқу |
Қолданылуы | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART модулін инициализациялау while (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//UARTM_ReadBuffer 5 байт деректерді алғанша күтіңіз |
Аты | u32 UARTM_GetWriteBufferLength(u32 CH) | |
Функция | Жазу буферінің ұзындығын алыңыз (TX) | |
Енгізу | CH | UART арнасы |
Шығару | uҰзындығы | Буфер ұзындығын жазыңыз |
Аты | u8 UARTM_IsTxFinished(u32 CH) | |
Функция | TX күйін алыңыз | |
Енгізу | CH | UART арнасы |
Шығару | ШЫН | TX күйі: аяқталды |
ЖАЛҒАН | TX күйі: аяқталмады | |
Қолданылуы | UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 қажетwhile (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif //Бұл API жоғарыда көрсетілгендей TX күйін тексеру үшін пайдаланылуы мүмкін; UARTM_WriteByte() API аяқталғанша күтіңіз, яғни, TX күйі TRUE, содан кейін келесі әрекеттерді жалғастырыңыз.//Шектеу қосылды, себебі бұл функция 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 (#included “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 сипаттамасы» бөлімінде берілген.
Сурет 15. Жазу және оқудың блок-схемасы Examples
«Module_UART» қалтасының астында басқа «UART_Bridge» қолданбасының коды бар, оған қатысты file сипаттамасы «Каталог құрылымы» бөлімінде енгізілген. «UART_Bridge» қолданба коды екі UART арнасын, UART CH0 және UART CH1 белсендіреді, содан кейін екі UART құрылғысы арасындағы байланыс протоколын COMMAND құрылымдары, gCMD1 және gCMD2 арқылы теңшейді. Олар төменде көрсетілгендей uart_bridge.c ішінде анықталған. UARTBridge_CMD1 TypeDef gCMD1:
Айнымалы Аты | Түр | Сипаттама |
uHeader | u8 | Тақырып |
uCmd | u8 | Пәрмен |
uData[3] | u8 | Деректер |
UARTBridge_CMD2 TypeDef gCMD2:
Айнымалы Аты | Түр | Сипаттама |
uHeader | u8 | Тақырып |
uCmdA | u8 | А командасы |
uCmdB | u8 | B командасы |
uData[3] | u8 | Деректер |
«UART_Bridge» қолданбасының кодында деректерді пәрмен пакеті ретінде алу үшін gCMD1 пайдаланыңыз, содан кейін оларды талдаңыз. Содан кейін теңшелген байланыс протоколына сәйкес gCMD2 жауап пакеті ретінде орнатыңыз және оны жіберіңіз. Келесі - бұрынғыampgCMD1 пәрмен пакетінің le және жауап пакетінің (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 үлгісін алуample, UART модулі алатын ресурстар төменде көрсетілген.
HT32F52352 | |
ROM өлшемі | 946 байт |
ЖЖҚ мөлшері | 40*1 + 256*2 Байттар |
Ескерту:
- Жаһандық айнымалылар жалаушаларды және бір арнаның күйін қоса алғанда, 40 байт жедел жадты алады.
- Бұл бір арна пайдаланылатын және TX/RX буферінің өлшемі 128/128 байт болатын жағдайға арналған. Буфер өлшемін қолданба талаптарына сәйкес орнатуға болады.
Кесте 4. Қолдану коды Ресурс жұмысы
- Компиляция ортасы: MDK-Arm V5.36, ARMCC V5.06 жаңарту 7 (960 құрастыру)
- Оңтайландыру опциясы: 2-деңгей (-O2)
Пайдалану нұсқаулары
Бұл тарауда «Module_UART» қолданбасының коды үшін қоршаған ортаға дайындық, сондай-ақ құрастыру және сынақ қадамдары қарастырылады.
Қоршаған ортаға дайындық
«Module_UART» қолданбасының коды үшін қажетті аппараттық және бағдарламалық құрал төменде келтірілген.
Кесте 5. Аппараттық/бағдарламалық қамтамасыз етуді қоршаған ортаға дайындау
Аппараттық құрал/Бағдарламалық қамтамасыз ету | Санау | Ескерту |
Бастапқы жинақ | 1 | Бұл қолданба ескертпесі бұрынғы нұсқа ретінде HT32F52352 бастапқы жинағын пайдаланадыample |
USB кабелі | 1 | Микро USB, компьютерге қосылған |
Қолданба коды | — | Жүктеп алу жолы, file және каталог конфигурациясы «Ресурстарды жүктеп алу және дайындау» бөлімінде енгізілген. Жол: «\\application\Module_UART\UART_Module_Exampле » |
Термин | — | «Терминал бағдарламалық құралы» бөлімін қараңыз |
Keil IDE | — | Keil uVision V5.xx |
Алдымен, UART қолданбасын енгізу үшін e-Link32 Lite виртуалды COM порты (VCP) функциясымен біріктірілген HT52352F32 бастау жинағын пайдаланыңыз. Бұл келесідей экологиялық дайындықты қажет етеді:
- Тақтада екі USB интерфейсі бар. 32-(a) суретте көрсетілгендей компьютер мен тақтадағы eLink16 Lite интерфейсін қосу үшін USB кабелін пайдаланыңыз.
- Қолданба коды e-Link32 Lite виртуалды COM порты (VCP) функциясын пайдалануы қажет болғандықтан, UART Jumper-J2*2 құрылғысының PAx*1 және DAP_Tx қосқыш арқылы тұйықталғанына көз жеткізіңіз. J2 орны 16-(b) суретте көрсетілген.
Ескерту
- Бастапқы жинақтағы J2 екі опциясы бар, PAx және DAP_Tx қысқартылған немесе PAx және RS232_Tx қысқартылған. Егжей-тегжейлі орнату функцияларын Starter Kit пайдаланушы нұсқаулығынан қараңыз.
- Әр түрлі бастапқы жинақтардағы MCU UART RX істікшелі орны әртүрлі. Бұл бұрынғыample RX істікшесін көрсету үшін PAx пайдаланады.
16-сурет. HT32 іске қосу жинағының блок диаграммасы
Енді UART қолданбасын енгізу үшін e-Link32 Pro виртуалды COM порты (VCP) функциясымен біріктірілген пайдаланушының мақсатты тақтасын пайдаланыңыз. Бұл келесідей экологиялық дайындықты қажет етеді:
- e-Link32 Pro бір жағы шағын USB кабелі арқылы компьютерге, ал екінші жағы 10 биттік сұр кабелі арқылы пайдаланушының мақсатты тақтасына қосылған. Кабель мен мақсатты тақтаның SWD интерфейстері арасындағы байланыс 17-(а) суретте көрсетілгендей Dupont желілерінің көмегімен жүзеге асырылады.
- e-Link32 Pro сериялық байланыс түйреуіштері Pin#7 VCOM_RXD және Pin#8- VCOM_TXD болып табылады. Оларды 17-(b) суретте көрсетілгендей пайдаланушының мақсатты тақтасының TX және RX түйреуіштеріне қосу керек.
17-сурет. e-Link32 Pro + Пайдаланушы мақсатты тақтасының блок диаграммасы
Құрастыру және сынақ
Бұл бөлімде “application\Module_UART\UART_Module_Example” бұрынғы ретіндеampқұрастыру және сынақ процестерімен таныстыру. Бұған дейін алдыңғы бөлімде сипатталған барлық дайындықтардың орындалғанына және Tera Term терминалының бағдарламалық құралы жүктелгеніне көз жеткізіңіз.
Егжей-тегжейлі операция қадамдары төменде жинақталған.
1-қадам. Қуатты қосу сынағы
Алдыңғы бөлімде сипатталғандай аппараттық ортаны орнатыңыз. Қуатты қосқаннан кейін бастапқы жинақтың төменгі сол жағындағы D9 қуат диодты шамы жанады. Жоғарғы оң жақтағы e-Link1 Lite құрылғысындағы D32 USB жарық диоды USB тізімі аяқталғаннан кейін жанады. Егер D1 ұзақ уақыт өткеннен кейін жанбаса, USB кабелінің байланыса алатынын тексеріңіз. Олай болмаса, оны алып тастап, қайта салыңыз.
2-қадам. Жобаны жасаңыз
\Module_UART\UART_Module_Ex қолданбасын ашыңызampқалтада _CreateProject.bat түймесін басыңыз file 18-суретте көрсетілгендей жобаны жасау үшін. Бұл қолданба ескертпесі HT32F52352 бастапқы жинағын пайдаланатындықтан, MDK_ARMv52352 қалтасының астында орналасқан Keil IDE жобасын “Project_5.uvprojx” ашыңыз.
18-сурет. Жобаны жасау үшін _CreateProject.bat орындаңыз
Қадам 3. Құрастыру және бағдарламалау
Жоба ашылғаннан кейін алдымен «Құру» түймесін басыңыз (немесе «F7» пернелер тіркесімін пайдаланыңыз), содан кейін «Жүктеу» түймесін басыңыз (немесе «F8» пернелерін пайдаланыңыз). Осыдан кейін құрастыру және жүктеп алу нәтижелері Build Output терезесінде көрсетіледі. 19-суретті қараңыз.
Сурет 19. Нәтижелерді құрастыру және жүктеп алу
4-қадам. Tera Term бағдарламалық құралын ашыңыз және сериялық портты конфигурациялаңыз
Tera Term бағдарламалық құралын және COM портын ашыңыз. Стартер жинағы жасаған COM порт нөмірі дұрыс немесе дұрыс емес екеніне назар аударыңыз. Содан кейін конфигурация интерфейсіне кіру үшін «Орнату >> Сериялық порт» түймесін басыңыз. «Module_UART» қолданба кодының UART интерфейсінің конфигурациясы «Терминалды бағдарламалық қамтамасыз ету» бөлімінде сипатталған. Орнату нәтижесі 20-суретте көрсетілген.
Сурет 20. Tera Term сериялық портты орнату нәтижесі
5-қадам. Жүйені қалпына келтіріп, сынақтан өткізіңіз
SK қалпына келтіру пернесін басыңыз – B1 Reset. Осыдан кейін «ABCTбұл сынақ!» хабарлама болады
API арқылы жіберіледі және 21-суретте көрсетілгендей Tera Term терезесінде көрсетіледі. Қабылдау функциясына қатысты Tera Term терезесіне деректерді енгізу кезінде қабылдау буферінің ұзындығын анықтау үшін сәйкес API пайдаланылады. ДК қабылдаған деректер 5 байтқа жеткенде, алынған 5 байт деректер ретімен жіберіледі. 22-суретте көрсетілгендей, ретімен енгізілген деректер API арқылы қабылданатын және анықталатын «1, 2, 3, 4, 5» болып табылады. Осыдан кейін бес енгізуден кейін «1, 2, 3, 4, 5» деректері басып шығарылады.
21-сурет. “Module_UART” қолданбалы кодының функционалдық сынағы – жіберу
Сурет 22. “Module_UART” қолданбалы кодының функционалдық сынағы – қабылдау
Трансплантация бойынша нұсқаулар
Бұл бөлім API интерфейстерін пайдаланушы жобаларына қалай біріктіру керектігін таныстырады.
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 25-суретте көрсетілгендей main.c басына. (Қосымша: #include “middleware/uart_module.h”)
Сурет 25. API тақырыбын қосыңыз File негізгі.c
4-қадам. ht32_board_config.h арқылы UART байланысы үшін қажетті параметрлерді орындаңыз file. Бұл «Параметрлерді сипаттау» және «Параметрлерді өзгерту және жиі қойылатын сұрақтар» бөлімдерінде егжей-тегжейлі енгізілген.
Параметрлерді өзгерту және жиі қойылатын сұрақтар
Бұл бөлім UART параметрлерін қалай өзгерту керектігін таныстырады және пайдалану кезінде кездесетін кейбір жалпы сұрақтарды түсіндіреді.
UART пин тағайындауын өзгерту
- HT32F52352 деректер парағының “Pin Assignment” тарауын қарап, құрылғы түрінің AFIO функцияларын тізімдейтін Баламалы функцияларды салыстыру кестесін іздеңіз. UART сәйкес түйреуіштер үшін 6-суретте көрсетілгендей «AF26 USART/UART» бағанын қараңыз.
26-сурет. HT32F52352 балама функцияларды салыстыру кестесі
- Бұл қадам пайдаланушыларға жоғарыдағы кестені пайдаланып сәйкес UART түйреуіштерін табуға нұсқау береді. HT32F52352 бұрынғыample әдепкі арна ретінде USART1 пайдаланады. Мұнда TX және RX түйреуіштері USR1_TX және USR1_RX болып табылады және сәйкесінше PA4 және PA5-те орналасқан. 27-суретте «ht32_board_config.h» файлындағы түйреуіштердің сәйкестігі, сондай-ақ түйреуіш анықтамалары көрсетілген. PIN кодын тағайындау кестесіндегі «Бума» бос өрістері бұл бумада тиісті 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 түйреуіштері 2-суреттің жоғарғы жартысында көрсетілгендей, сәйкесінше PA3 және PA28-де орналасқан. Сәйкес модификациялар суреттегі қызыл нүктелі жолақпен көрсетілгендей, ht120_board_config.h ішіндегі 126~32 код жолдары арқылы жүзеге асырылады. 28.
Сурет 28. UART арнасын қосыңыз
Жиі қойылатын сұрақтар
Q: Құрастыру және сынақ бөлімінің 5-қадамында жіберу функционалдық сынағы қалыпты. Мұнда «ABCTбұл сынақ!» хабарлама сәтті көрсетілді, алайда қабылдау функциясы үшін неліктен бес кіріс мәні қайтарылмайды және көрсетілмейді?
A: UART Jumper-J2 құрылғысының MCU UART RX және DAP_Tx түйреуіштері секіргіш арқылы тұйықталғанын тексеріңіз. “Module_UART” қолданба коды e-Link32 Lite виртуалды COM портын (VCP) пайдалануы қажет болғандықтан, қысқа тұйықталу параметрі 2-суретте көрсетілгендей UART Jumper-J29 сол жақ екі істікшесіне қолданылуы керек.
29-сурет. UART Jumper-J2 параметрі
С: Кейін «Құрастыру» (немесе «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», «компания», «біз», ') қалауы бойынша өзгертілуі мүмкін. біз» немесе «біздің»). Холтек бұл туралы ақпараттың дәлдігін қамтамасыз етуге тырысады 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 қолданбасының ескертпесі |