HOLTEK HT32 MCU UART Tətbiq Qeyd İstifadəçi Təlimatı
Giriş
Universal asinxron qəbuledici/ötürücü – UART çevik asinxron tam dupleks məlumat ötürülməsini təmin edən geniş istifadə olunan serial ötürmə interfeysidir. Bu proqram qeydində təqdim olunan “Module_UART” proqram kodu müvafiq funksiyaları aşağıda təsvir olunan API-lər vasitəsilə sadə UART ötürmə/qəbul funksiyalarını həyata keçirmək üçün proqram halqası buferləri ilə TX/RX kəsmələrindən istifadə edir. Bu, bütün məlumat ötürülməsi prosesini sadələşdirəcək və istifadəçilərə UART kommunikasiya proqramlarını tez başa düşməyə və həyata keçirməyə imkan verəcək.
- Göndərmə/qəbul funksiyaları: bayt oxu, bayt yazma, bufer oxu, bufer yazma və s.
- Vəziyyət funksiyaları: bufer uzunluğunu, TX statusunu və s.
Bu sənəd ilk olaraq UART rabitə protokolunu təqdim edəcək ki, bu da istifadəçilərə UART rabitəsini prinsipdən tətbiqə qədər daha yaxşı başa düşməyə kömək edəcək. Bunun ardınca proqram kodu üçün tələb olunan resursların yüklənməsi və hazırlanması, o cümlədən proqram təminatı kitabxanası, proqram kodunun endirilməsi, file və kataloq konfiqurasiyası, eləcə də proqram qeydində istifadə olunan terminal proqram alətinə giriş. Funksional Təsvir bölməsində proqram kodu kataloq strukturu, parametr parametrləri və API təsviri təqdim ediləcək. API istifadəsi “Module_UART” proqram kodundan istifadə edilməklə təsvir olunacaq və API-lər üçün tələb olunan Flash/RAM resurs istehlakı da siyahıya alınacaq. İstifadə Təlimatları bölməsi istifadəçini ətraf mühitə hazırlıq, tərtib etmə və tətbiq kodunun düzgün işləyəcəyini təsdiqləmək üçün sınaq addımları ilə istiqamətləndirəcək. Daha sonra o, API-lərin istifadəçinin layihələrinə necə inteqrasiya olunacağını izah edən təlimatlar təqdim edəcək və nəhayət, dəyişikliklər və rastlaşa biləcək ümumi problemlər üçün istinad təqdim edəcək.
İstifadə olunan qısaltmalar:
- UART: Universal asinxron qəbuledici / ötürücü
- API: Tətbiq proqramlaşdırma interfeysi
- LSB: Ən Az Əhəmiyyətli Bit
- MSB: Ən Əhəmiyyətli Bit
- PC: Fərdi kompüter
- SK: Başlanğıc dəsti, HT32 inkişaf lövhəsi
- IDE: İnteqrasiya edilmiş İnkişaf Mühiti
UART Rabitə Protokolu
UART, ötürücüdə paraleldən seriyaya məlumat çevrilməsini həyata keçirən və sonra oxşar qəbuledici ilə serial əlaqə quran serial rabitə növüdür. Daha sonra qəbuledici verilənlərin qəbulundan sonra verilənlərin serialdan paralelə çevrilməsini həyata keçirir. Şəkil 1 verilənlərin bit ardıcıllığı ilə necə ötürüldüyünü göstərən serial rabitənin sxematik diaqramını göstərir. Buna görə də ötürücü və qəbuledici arasında iki istiqamətli əlaqə üçün məlumatları bir-biri arasında ardıcıl ötürmək üçün yalnız iki tel, TX və RX tələb olunur. TX, UART-ın seriya məlumatlarını ötürdüyü və qəbuledicinin RX pininə qoşulduğu pindir. Buna görə də verici və qəbuledici qurğular aşağıda göstərildiyi kimi UART ikitərəfli rabitəni həyata keçirmək üçün TX və RX pinlərini çarpaz birləşdirməlidirlər. Şəkil 2.
Şəkil 1. Serial rabitə diaqramı
Şəkil 2. UART dövrə diaqramı
UART serial rabitəsi zamanı məlumat ötürülməsi asinxrondur. Bu o deməkdir ki, ötürücü və qəbuledici arasında heç bir saat və ya digər sinxronizasiya siqnalı yoxdur. Burada məlumat ötürmə/qəbul etmə sürəti olan və məlumat ötürülməsindən əvvəl hər iki tərəf tərəfindən təyin olunan bir ötürmə sürətindən istifadə olunur. Bundan əlavə, tam UART məlumat paketini yaratmaq üçün məlumat paketinin əvvəlinə və sonuna başlanğıc və dayandırma bitləri kimi xüsusi bitlər əlavə edilir. Şəkil 3 UART məlumat paketinin strukturunu, Şəkil 4 isə paritet biti olmayan 8 bitlik UART məlumat paketini göstərir.
Şəkil 3. UART verilənlər paketinin strukturu
Şəkil 4. UART 8-bit Data Packet Format
UART məlumat paketinin hər bir hissəsi aşağıdakı ardıcıllıqla təqdim olunur.
- Başlanğıc Bit: Bu, məlumat paketinin başlanğıcını göstərir. UART TX pin adətən ötürmə başlamazdan əvvəl yüksək məntiq səviyyəsində qalır. Məlumat ötürülməsi başlasa, UART ötürücüsü TX pinini yüksəkdən aşağıya, yəni 1-dən 0-a çəkəcək və sonra onu bir saat dövrü ərzində orada saxlayacaq. RX pinində yüksəkdən aşağıya keçid aşkar edildikdə, UART qəbuledicisi məlumatları oxumağa başlayacaq.
- Məlumat: Bu, 7, 8 və ya 9 bit məlumat uzunluğu ilə ötürülən faktiki məlumatdır. Məlumat adətən əvvəlcə LSB ilə ötürülür.
- Paritet Bit: Məlumatda olan “1” məntiqinin sayı ötürülmə zamanı hər hansı məlumatın dəyişib-dəyişmədiyini müəyyən etmək üçün istifadə olunur. Cüt paritet üçün verilənlərdəki “1” məntiqinin ümumi sayı cüt ədəd olmalıdır, əksinə, verilənlərdəki “1” məntiqinin ümumi sayı tək paritet üçün tək ədəd olmalıdır.
- Stop Bit: Bu, məlumat paketinin sonunu göstərir, burada UART ötürücü TX pinini aşağıdan yuxarıya, yəni 0-dan 1-ə çəkəcək və sonra onu 1 və ya 2 bitlik müddət ərzində orada saxlayacaq.
Daha əvvəl qeyd edildiyi kimi, UART dövrəsində saat siqnalı olmadığı üçün, səhvsiz ötürməni həyata keçirmək üçün ötürücü və qəbuledici arasında ötürmə sürəti kimi tanınan eyni seriyalı məlumat ötürmə/qəbuletmə sürəti müəyyən edilməlidir. Ötürmə sürəti saniyədə ötürülən bitlərin sayı ilə müəyyən edilir, bps (saniyədə bit). Bəzi standart və tez-tez istifadə olunan ötürmə sürətləri 4800bps, 9600bps, 19200bps, 115200bps və s.-dir. Bir məlumat bitinin ötürülməsi üçün tələb olunan müvafiq vaxt aşağıda göstərilmişdir.
Cədvəl 1. Baud Rate və 1-Bit Transmission Time
Baud dərəcəsi | 1-Bit Transmissiya Vaxt |
4800bps | 208.33µs |
9600bps | 104.16µs |
19200bps | 52.08µs |
115200bps | 8.68µs |
Resursun Yüklənməsi və Hazırlanması
Bu fəsildə proqram kodu və istifadə olunan proqram aləti, həmçinin kataloqun konfiqurasiyası və file yol.
Firmware Kitabxanası
Birincisi, proqram kodundan istifadə etməzdən əvvəl Holtek HT32 proqram təminatının kitabxanasının yükləndiyinə əmin olun. Yükləmə linki aşağıda göstərilir. Burada iki seçim var, HT32F0xxxx seriyası üçün HT32_M5p_Vyyyymmdd.zip və HT32F3xxxx seriyası üçün HT32_M1_Vyyyymmdd.zip. İstədiyinizi yükləyin və açın file.
Zip file yerləşdirmə yolu Şəkil 5-də göstərilən Sənəd, Mikro Proqram Kitabxanası, Alətlər və digər elementlər kimi təsnif edilə bilən bir neçə qovluqdan ibarətdir. HT32 mikroproqram kitabxanası zip file ilə a file HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip adı Firmware_Library qovluğunun altında yerləşir.
Şəkil 5. HT32_M0p_Vyyyymmdd.zip İçindəkilər
Tətbiq kodu
Proqram kodunu aşağıdakı linkdən yükləyin. Tətbiq kodu poçt qutusuna yığılmışdır file ilə a file HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip adı. Görmək Şəkil 6 üçün file ad konvensiyaları.
Şəkil 6. Tətbiq kodu File Adı Giriş
Yükləmə linki: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/
File və Kataloq Konfiqurasiyası
Tətbiq kodunda HT32 proqram təminatı kitabxanası olmadığı üçün files, proqram kodu və proqram təminatı kitabxanası açıldı files tərtibə başlamazdan əvvəl düzgün yola yerləşdirilməlidir. Proqram kodu zip file adətən Şəkil 7-də göstərildiyi kimi proqram və kitabxana kimi bir və ya bir neçə qovluqdan ibarətdir. Tətbiq qovluğunu HT32 mikroproqram kitabxanasının kök kataloqunun altına qoyun. file yol konfiqurasiyası, Şəkil 8-də göstərildiyi kimi. Alternativ olaraq, eyni konfiqurasiya nəticələrinə nail olmaq üçün proqram kodunu və HT32 mikroproqram kitabxanasını eyni vaxtda eyni yola çıxarın.
Şəkil 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip Məzmun
Şəkil 8. Dekompressiya yolu
Terminal proqram təminatı
Tətbiq kodu funksiya seçimini və ya status ekranını həyata keçirmək üçün mesajları COM portu vasitəsilə ötürə bilər. Bunun üçün ev sahibi tərəfdən terminal proqram təminatının əvvəlcədən quraşdırılmasını tələb edir. İstifadəçilər müvafiq əlaqə proqramını seçə və ya Tera Term kimi pulsuz lisenziyalı proqram təminatından istifadə edə bilərlər. Tətbiq kodunda UART kanalı 8 bitlik söz uzunluğu, paritetsiz, 1 dayanma biti və 115200bps ötürmə sürəti ilə konfiqurasiya edilmişdir.
Funksional təsvir
Bu fəsil proqram kodunun funksional təsvirini, o cümlədən kataloq strukturu, API arxitekturası, parametrlərin təsviri və s.
Kataloq strukturu
Tətbiq kodu file proqram qovluğunu ehtiva edir. Növbəti təbəqə iki proqram proqramından ibarət “Module_UART” qovluğudur, “UART_Module_Ex”ample” və “UART_Bridge”. Müvafiq files aşağıda verilmiş və təsvir edilmişdir.
Cədvəl 2. Tətbiq kodu kataloqunun strukturu
Qovluq / File ad | Təsvir |
\\tətbiq\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | Layihə yaratmaq üçün toplu skriptlər files |
_ProjectSource.ini | İnisiallaşdırma file layihələrə mənbə kodu əlavə etmək üçün |
ht32_board_config.h | Quraşdırma file IC periferik I/O təyinatı ilə əlaqədardır |
ht32fxxxxx_01_it.c | Xidmət proqramını dayandırın file |
əsas.c | Əsas proqram mənbə kodu |
\\tətbiq\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | Layihə yaratmaq üçün toplu skriptlər files |
_ProjectSource.ini | İnisiallaşdırma file layihələrə mənbə kodu əlavə etmək üçün |
ht32_board_config.h | Quraşdırma file IC periferik I/O təyinatı ilə əlaqədardır |
ht32fxxxxx_01_it.c | Xidmət proqramını dayandırın file |
əsas.c | Əsas proqramın mənbə kodu |
uart_bridge.h uart_bridge.c | UART körpü başlığı file və mənbə kodu file |
\\utilities\orta proqram | |
uart_module.h*3 uart_module.c*3 | API başlığı file və mənbə kodu file |
\\utilities\ümumi | |
ringbuffer.h ring_buffer.c | Proqram təminatı ring bufer başlığı file və mənbə kodu file |
Qeyd:
- “UART_Module_Example” proqram kodunu daxil edin, API oxuma və yazma əməliyyatları geri dönmə üsulu ilə həyata keçirilir, “API İstifadəsi Ex” bölməsinə baxınamples” bölməsinə daxil olun.
- “UART_Bridge” proqram kodunda iki UART kanalı, UART CH0 və UART CH1 aktivləşdirilir və iki UART cihazı arasında COMMAND strukturları vasitəsilə xüsusi rabitə protokolu həyata keçirilir. Ətraflı məlumat üçün “API Usage Examples” bölməsi.
- Tətbiq kodu uart_module.c/h istifadə etməlidir fileproqram təminatı kitabxanası versiyası tələbi olan s. Tələb yeniləməyə uyğun olaraq vaxtaşırı dəyişə bilər. Mövcud proqram təminatı kitabxanası versiyası tələbini təsdiqləmək üçün main.c-də “Asılılıq yoxlanışı” açar sözünü axtararaq asılılıq yoxlaması məzmununa baxın. file. Firmware kitabxanasının versiyası tələblərə cavab vermirsə, “Firmware Library” bölməsində verilmiş linkdən ən yeni versiyanı endirin.
API Memarlığı
Hər bir API-nin UART Kanalı olan vacib bir CH parametri var. Bu, hansı UART kanalının idarə olunacağını müəyyənləşdirir. Hal-hazırda dördə qədər UART kanalı dəstəklənir və buna görə də dörd sabit simvol aşağıdakı kimi müəyyən edilir. Bunlar API-lərə nəzarət üçün əsas olan CH parametri kimi istifadə olunur.
- UARTM_CH0: giriş parametri – UART CH0-a nəzarət edin və ya konfiqurasiya edin
- UARTM_CH1: giriş parametri – UART CH1-a nəzarət edin və ya konfiqurasiya edin
- UARTM_CH2: giriş parametri – UART CH2-a nəzarət edin və ya konfiqurasiya edin
- UARTM_CH3: giriş parametri – UART CH3-a nəzarət edin və ya konfiqurasiya edin
Yalnız bir UART kanalı istifadə edilərsə, yaddaş boş yerə sərf olunmayacaq. Bunun səbəbi, dəstəklənən UART kanallarının sayının təyin oluna bilməsi və mövcud yaddaş yerini artırmaq üçün istifadə olunmamış UART kanal kodunun preprosessor tərəfindən silinməsidir. API arxitekturasında göstərilir Şəkil 9.
Şəkil 9. API Arxitektura Blok Diaqramı
Hər bir API dörd qrup UART kanalı ilə əlaqəli parametrlər və ya nəzarətlərdən ibarətdir ki, istifadəçilər yalnız istədikləri CH parametrini daxil etməlidirlər. Müvafiq API-ni konfiqurasiya etmək üçün yalnız USART_InitTypeDef struktur forması ilə əlavə UART əsas konfiqurasiya parametrləri cədvəlinə sahib olmaq tələb olunur. API cədvəldəki parametr məzmununa uyğun olaraq UART əsas konfiqurasiyasını həyata keçirəcək. UART əsas konfiqurasiya strukturu cədvəli üçün “API Təsviri” bölməsinə baxın.
uart_module.c/.h files yalnız hər bir UART kanalının kəsilməsini (CHx_IRQ) və status cədvəlini (CHx Status) ehtiva edir, UART rabitəsi üçün tələb olunan bütün parametrlər ht32_board_config.h tərəfindən təmin edilir. Ht32_board_config.h-də aparatla əlaqəli parametrlər file aşağıdakı cədvəldə göstərilir. Daha ətraflı məlumat "Parametrlərin təsviri" bölməsində verilmişdir.
ht32_board_config.h-də aparatla əlaqəli parametrlərə aşağıdakı kimi I/O parametrləri və fiziki UART port parametrləri daxildir.
Cədvəl 3. ht32_board_config.h-də tərif simvolları
Simvol | Təsvir |
HTCFG_UARTM_CH0 | Fiziki UART port adı; Məsample: UART0, UART1… |
HTCFG_UARTM0_TX_GPIO_PORT | CH0 üçün TX port adını müəyyən edir; Məsample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | CH0 üçün TX pin nömrəsini müəyyən edir; Məsample: 0~15 |
HTCFG_UARTM0_RX_GPIO_PORT | CH0 üçün RX port adını müəyyən edir; Məsample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | CH0 üçün TX pin nömrəsini müəyyən edir; Məsample: 0~15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | CH0 üçün TX bufer ölçüsünü müəyyən edir; Məsamps: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | CH0 üçün RX bufer ölçüsünü müəyyən edir; Məsamps: 128 |
UART kanalının AFIO konfiqurasiyasını dəyişdirmək üçün müvafiq cihazın məlumat cədvəlinə baxın. Hal-hazırda yalnız UART CH0 üçün I/O tərifləri qüvvəyə minir, çünki yalnız UART CH0 ht32_board_config.h-də konfiqurasiya edilmişdir. UART CH1~3 əlavə etmək üçün onların I/O tərifləri UART CH0 tərifinə istinad etməklə və ya “Dəyişikliklərin qurulması və tez-tez verilən suallar” bölməsinə istinad etməklə tamamlanmalıdır.
Üç API arxitekturasının əsas xüsusiyyətləri var:
- Dörd UART kanalına qədər dəstəklənir. Onların giriş parametrləri UARTM_CH0, UARTM_CH1, UARTM_CH2 və UARTM_CH3-dür.
- UART kanallarının sayı təyin edilə bilər və istifadə olunmayan kanallar mövcud yaddaş yerini azaltmayacaq.
- Bütün UART parametrləri və I/O tərifləri API-lərdən tamamilə ayrılmışdır. Bu, dəyərlərin təyin edilməsinin idarəetmə rahatlığını artırır və yanlış və ya çatışmayan parametrlərin olma ehtimalını azaldır.
Parametrlərin təsviri
Bu bölmə ht32_board_config.h və uart_module.h-də parametr parametrlərini təqdim edəcək. files.
- ht32_board_config.h: Bu file Başlanğıc Dəsti (SK) tərəfindən istifadə edilən UART IP kanalı (UART0, UART1, USART0…), müvafiq TX/RX pin yerləri və TX/RX bufer ölçüsü daxil olmaqla, pin tərifləri və inkişaf boardunun müvafiq parametrləri üçün istifadə olunur. Şəkil 10 HT32F52352 Başlanğıc Dəstinin parametr məzmununu göstərir. İnkişafın funksional inteqrasiyasından asılı olaraq, istifadəçilər pin təriflərini həyata keçirmək üçün istifadə olunan cihazın məlumat cədvəlinin "Pin Təyinatı" bölməsinə müraciət edə bilərlər. Dəyişikliklərin qurulması ilə bağlı daha ətraflı məlumat “Parametrlərin dəyişdirilməsi və tez-tez verilən suallar” bölməsində təsvir olunacaq.
Şəkil 10. ht32_board_config.h Parametrlər (HT32F52352)
- uart_module.h: Bu API başlığıdır file müvafiq defolt parametrləri, funksiya təriflərini və s. daxil olan proqram kodu tərəfindən istifadə olunur. Şəkil 11-də göstərildiyi kimi, standart parametr məzmunu ht32_board_config.h-dəki parametrlər kimi xarici konfiqurasiyalar tərəfindən üzərinə yazıla bilər. file.
Şəkil 11. uart_module.h-də Defolt Parametrlər
API Təsviri
- Tətbiq kodu məlumat növünün təsviri.
- USART_InitTypeDef
Bu, aşağıda göstərildiyi kimi BaudRate, WordLength, StopBits, Parite və Mode konfiqurasiyalarından ibarət olan UART əsas konfiqurasiya strukturudur.Dəyişən ad Növ Təsvir USART_BaudRate u32 UART rabitə ötürmə sürəti USART_Söz Uzunluğu u16 UART rabitə sözünün uzunluğu: 7, 8 və ya 9 bit USART_StopBits u16 UART rabitə dayanma bitinin uzunluğu: 1 və ya 2 bit USART_Parite u16 UART rabitə pariteti: cüt, tək, işarə, boşluq və ya heç bir paritet yoxdur USART_Rejimi u16 UART rabitə rejimi; API-lər yalnız normal rejimi dəstəkləyir
- USART_InitTypeDef
- API funksiyalarından istifadə etməzdən əvvəl əsas proqramda UART əsas konfiqurasiyasını tamamlayın. Bu proqram kodu üçün UART əsas konfiqurasiyası Şəkil 12-də göstərilmişdir. Burada ötürmə sürəti 115200bps, söz uzunluğu 8 bit, dayandırma bitinin uzunluğu 1 bitdir və paritet yoxdur.
Şəkil 12. UART Əsas Konfiqurasiyası
- Şəkil 13 uart_module.h-də elan edilmiş API funksiyalarını göstərir file. Aşağıdakı cədvəllər funksiyanı, daxiletmə parametrlərini və API funksiyalarının istifadəsini izah edir.
Şəkil 13. uart_module.h-də API Funksiya Bəyannamələri
ad | etibarsız UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
Funksiya | UART modulunun işə salınması | |
Giriş | CH | UART kanalı |
pUART_Init | UART əsas konfiqurasiya strukturu göstəricisi | |
uRxTimeOutValue | UART RX FIFO vaxt aşımı dəyəri. RX FIFO yeni məlumat aldıqda sayğac sıfırlanacaq və yenidən başlayacaq. Sayğac əvvəlcədən təyin edilmiş vaxt aşımı dəyərinə çatdıqdan və müvafiq vaxt aşımı kəsilməsi işə salındıqdan sonra vaxt aşımı kəsilməsi yaradılacaq. | |
İstifadəsi | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//UART əsas konfiqurasiyasını yerinə yetirin//USART_InitStructure konfiqurasiyası üçün Şəkil 12-ə baxın |
ad | u32 UARTM_WriteByte(u32 CH, u8 uData) | |
Funksiya | UART modulu yazma bayt əməliyyatı (TX) | |
Giriş | CH | UART kanalı |
uData | Yazılacaq məlumatlar | |
Çıxış | UĞUR | Uğurlu |
XƏTA | Uğursuz oldu | |
İstifadəsi | UARTM_WriteByte(UARTM_CH0, 'A'); //UART 1 bayt yazır – 'A' |
ad | u32 UARTM_Write(u32 CH, u8 *pBufer, u32 uLength) | |
Funksiya | UART modulu yazma əməliyyatı (TX) | |
Giriş | CH | UART kanalı |
pBufer | Bufer göstəricisi | |
uUzunluq | Yazılacaq məlumatların uzunluğu | |
Çıxış | UĞUR | Uğurlu |
XƏTA | Uğursuz oldu | |
İstifadəsi | u8 Test[] = “Bu sınaqdır!\r\n”; UARTM_Write(UARTM_CH0, Test, sizeof(Test) -1); //UART pBuffer məlumatlarını yazır |
ad | u32 UARTM_ReadByte(u32 CH, u8 *pData) | |
Funksiya | UART modulu oxu bayt əməliyyatı (RX) | |
Giriş | CH | UART kanalı |
pData | Oxunma məlumatlarını yerləşdirmək üçün ünvan | |
Çıxış | UĞUR | Uğurlu |
XƏTA | Uğursuz oldu (data yoxdur) | |
İstifadəsi | u8 TempData; əgər (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//UARTM_ReadByte() SUCCESS qaytarırsa, onda UART bu data baytını yazır |
ad | u32 UARTM_Read(u32 CH, u8 *pBufer, u32 uLength) | |
Funksiya | UART modulu oxu əməliyyatı (RX) | |
Giriş | CH | UART kanalı |
pBufer | Bufer göstəricisi | |
uUzunluq | Oxunacaq məlumatların uzunluğu | |
Çıxış | Oxunma sayı | Məlumatın uzunluğu oxundu |
İstifadəsi | u8 Test2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);əgər (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() 5 bayt məlumat oxuyur və məlumatları Test2-də saxlayır və oxunan bayt sayını təyin edir Len//Test2-dən alınan məlumatları yazın |
ad | u32 UARTM_GetReadBufferLength(u32 CH) | |
Funksiya | Oxunma buferinin uzunluğunu (RX) əldə edin | |
Giriş | CH | UART kanalı |
Çıxış | uUzunluq | Bufer uzunluğunu oxuyun |
İstifadəsi | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART modulunun işə salınması while (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//UARTM_ReadBuffer 5 bayt məlumat alana qədər gözləyin |
ad | u32 UARTM_GetWriteBufferLength(u32 CH) | |
Funksiya | Yazma buferinin uzunluğunu (TX) əldə edin | |
Giriş | CH | UART kanalı |
Çıxış | uUzunluq | Bufer uzunluğunu yazın |
ad | u8 UARTM_IsTxFinished(u32 CH) | |
Funksiya | TX statusunu əldə edin | |
Giriş | CH | UART kanalı |
Çıxış | DOĞRU | TX statusu: bitdi |
YANLIŞ | TX statusu: tamamlanmayıb | |
İstifadəsi | UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 tələb olunurwhile (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #elsewhile (1) #endif //Bu API yuxarıda göstərildiyi kimi TX statusunu yoxlamaq üçün istifadə edilə bilər; UARTM_WriteByte() API bitənə qədər gözləyin, yəni TX statusu TRUE-dir və sonra sonrakı hərəkətləri davam etdirin.//Uart_module.c-də SVN versiya nömrəsi 525 olana qədər bu funksiya əlavə olunmadığı üçün məhdudiyyət əlavə edilir. |
ad | boş UARTM_DiscardReadBuffer(u32 CH) | |
Funksiya | Oxu buferindəki məlumatları atın | |
Giriş | CH | UART kanalı |
API İstifadəsi Examples
Bu bölmədə API yazmaq və oxumaq nümayiş etdiriləcəkampbaşlatma prosesi və “UART_Module_Ex” istifadə edərək “Module_UART” proqram koduample” proqram kodu prosesi. API-lərdən istifadə etməzdən əvvəl istifadəçilər API başlığını daxil etməlidirlər file proqramın əsas mənbə koduna daxil edin file (#“middleware/uart_module.h” daxildir).
Şəkil 14-də göstərildiyi kimi, inisializasiya prosesinə daxil olarkən əvvəlcə UART əsas konfiqurasiya strukturunu təyin edin. Sonra BaudRate, WordLength, StopBits, Parity və Mode daxil olmaqla UART əsas konfiqurasiya strukturu üzvlərini konfiqurasiya edin. Nəhayət, başa çatması başlatma prosesinin bitdiyini göstərən API başlanğıc funksiyasını çağırın. Bundan sonra istifadəçilər əvvəlcədən təyin edilmiş UART əsas konfiqurasiyası əsasında yazma və oxu əməliyyatlarını davam etdirə bilərlər.
Şəkil 14. İnisiallaşdırma axını sxemi
“UART_Module_Example” proqram kodu geri dönmə üsulu ilə API oxuma və yazma əməliyyatlarını nümayiş etdirir. Bunun üçün axın sxemi Şəkil 15-də göstərilmişdir. İstifadə olunan API funksiyalarına UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() və UARTM_GetReadBufferLength() daxildir. Onların təsviri “API təsviri” bölməsində verilmişdir.
Şəkil 15. Yazı və Oxuma Flowchart Examples
“Module_UART” qovluğunun altında əlaqəli başqa “UART_Bridge” proqram kodu var file təsviri “Kataloqun strukturu” bölməsində təqdim olunur. “UART_Bridge” tətbiq kodu iki UART kanalını, UART CH0 və UART CH1-ni aktivləşdirir və sonra iki UART cihazı arasında KOMUT strukturları, gCMD1 və gCMD2 vasitəsilə rabitə protokolunu fərdiləşdirir. Bunlar aşağıda göstərildiyi kimi uart_bridge.c-də müəyyən edilmişdir. UARTBridge_CMD1TypeDef gCMD1:
Dəyişən ad | Növ | Təsvir |
uHeader | u8 | Başlıq |
uCmd | u8 | Əmr |
uData[3] | u8 | Data |
UARTBridge_CMD2TypeDef gCMD2:
Dəyişən ad | Növ | Təsvir |
uHeader | u8 | Başlıq |
uCmdA | u8 | Komandan A |
uCmdB | u8 | Komanda B |
uData[3] | u8 | Data |
“UART_Bridge” proqram kodunda məlumatı komanda paketi kimi qəbul etmək üçün gCMD1-dən istifadə edin və sonra onu təhlil edin. Sonra fərdiləşdirilmiş rabitə protokoluna uyğun olaraq, gCMD2-ni cavab paketi olaraq təyin edin və ötürün. Aşağıdakılar keçmişdirampgCMD1 əmr paketi və cavab paketi (gCMD2). Komanda paketi (UARTBridge_CMD1TypeDef gCMD1):
Bayt 0 | Bayt 1 | Bayt 2 ~ Bayt 4 |
uHeader | uCmd | uData [3] |
“A” | “1” | “x, y, z” |
Cavab Paketi (UARTBridge_CMD2TypeDef gCMD2):
Bayt 0 | Bayt 1 | Bayt 2 | Bayt 3 ~ Bayt 5 |
uHeader | uCmdA | uCmdB | uData [3] |
“B” | “a” | “1” | “x, y, z” |
Resurs Peşəsi
HT32F52352-ü keçmiş kimi götürəkample, UART modulunun tutduğu resurslar aşağıda göstərilmişdir.
HT32F52352 | |
ROM ölçüsü | 946 bayt |
RAM ölçüsü | 40*1 + 256*2 Bayt |
Qeyd:
- Bir kanal üçün bayraqlar və status daxil olmaqla qlobal dəyişənlər 40 bayt RAM tutur.
- Bu, tək kanalın istifadə edildiyi və TX/RX bufer ölçüsünün 128/128 bayt olduğu bir vəziyyət üçündür. Bufer ölçüsü tətbiq tələblərinə uyğun olaraq təyin edilə bilər.
Cədvəl 4. Tətbiq kodu Resurs məşğulluğu
- Kompilyasiya mühiti: MDK-Arm V5.36, ARMCC V5.06 yeniləmə 7 (quruluş 960)
- Optimallaşdırma seçimi: Səviyyə 2 (-O2)
İstifadəyə dair təlimatlar
Bu fəsildə “Module_UART” proqram kodu üçün ətraf mühitə hazırlıq, eləcə də tərtib və sınaq addımları təqdim olunacaq.
Ekoloji Hazırlıq
“Module_UART” proqram kodu üçün tələb olunan aparat və proqram təminatı aşağıda verilmişdir.
Cədvəl 5. Aparat/Proqram Təminatının Ətraf Mühitin Hazırlanması
Aparat/Proqram təminatı | saymaq | Qeyd |
Başlanğıc dəsti | 1 | Bu proqram qeydi əvvəlki kimi HT32F52352 Başlanğıc Dəstindən istifadə edirample |
USB kabel | 1 | Mikro USB, PC-yə qoşulmuşdur |
Tətbiq kodu | — | Yükləmə yolu, file və kataloq konfiqurasiyası “Resursun Yüklənməsi və Hazırlanması” bölməsində təqdim olunur. Yol: “\\application\Module_UART\UART_Module_Example ” |
Tera müddəti | — | “Terminal Proqramı” bölməsinə baxın |
Keil IDE | — | Keil uVision V5.xx |
Birincisi, UART tətbiqinin təqdimatı üçün e-Link32 Lite-in Virtual COM Port (VCP) funksiyası ilə birlikdə HT52352F32 Başlanğıc Dəstindən istifadə edin. Bunun üçün aşağıdakı ekoloji hazırlığın həyata keçirilməsi tələb olunur:
- Lövhədə iki USB interfeysi var. Şəkil 32-(a)-da göstərildiyi kimi, kompüteri və lövhədəki eLink16 Lite interfeysini birləşdirmək üçün USB kabeldən istifadə edin.
- Tətbiq kodu e-Link32 Lite Virtual COM Port (VCP) funksiyasından istifadə etməli olduğundan əmin olun ki, UART Jumper-J2*2-in PAx*1 və DAP_Tx keçidlərindən istifadə edərək qısaldılmışdır. J2 yeri Şəkil 16-(b) ilə göstərilmişdir.
Qeyd
- Başlanğıc dəstindəki J2-nin iki variantı var, PAx və DAP_Tx qısaldılmış və ya PAx və RS232_Tx qısaldılmış. Ətraflı parametr funksiyaları üçün Başlanğıc Dəstinin istifadəçi təlimatına baxın.
- Fərqli Başlanğıc Dəstlərindəki MCU UART RX pin yeri fərqlidir. Bu keçmişample RX pinini göstərmək üçün PAx-dan istifadə edir.
Şəkil 16. HT32 Başlanğıc Dəstinin Blok Diaqramı
İndi UART tətbiqinin təqdimatı üçün e-Link32 Pro-nun Virtual COM Port (VCP) funksiyası ilə birlikdə istifadəçi hədəf lövhəsindən istifadə edin. Bunun üçün aşağıdakı ekoloji hazırlığın həyata keçirilməsi tələb olunur:
- e-Link32 Pro-nun bir tərəfi Mini USB kabelindən istifadə edərək kompüterə, digər tərəfi isə 10 bitlik boz kabel vasitəsilə istifadəçinin hədəf lövhəsinə qoşulur. Kabel və hədəf lövhəsinin SWD interfeysləri arasında əlaqə Şəkil 17-(a)-da göstərildiyi kimi Dupont xətlərindən istifadə etməklə həyata keçirilir.
- e-Link32 Pro-nun serial rabitə pinləri Pin#7 VCOM_RXD və Pin#8- VCOM_TXD-dir. Bunlar Şəkil 17-(b)-də göstərildiyi kimi istifadəçi hədəf lövhəsinin TX və RX pinlərinə birləşdirilməlidir.
Şəkil 17. e-Link32 Pro + İstifadəçi Hədəf Paneli Blok Diaqramı
Kompilyasiya və Test
Bu bölmə “application\Module_UART\UART_Module_Example” keçmiş kimiamptərtib və sınaq proseslərini təqdim etmək. Bundan əvvəl, əvvəlki bölmədə təsvir edilən bütün hazırlıqların həyata keçirildiyinə və Tera Term terminal proqramının yükləndiyinə əmin olun.
Ətraflı əməliyyat addımları aşağıda ümumiləşdirilmişdir.
Addım 1. Yandırma testi
Əvvəlki bölmədə təsvir olunduğu kimi aparat mühitini qurun. Yandırıldıqdan sonra Başlanğıc Dəstinin aşağı sol tərəfindəki D9 güc LED-i işıqlandırılacaq. Yuxarı sağdakı e-Link1 Lite üzərindəki D32 USB LED-i USB siyahıları başa çatdıqdan sonra işıqlandırılacaq. Əgər D1 uzun müddətdən sonra işıqlandırılmırsa, USB kabelin əlaqə yarada bilib-bilmədiyini təsdiqləyin. Əgər yoxsa, onu çıxarın və yenidən daxil edin.
Addım 2. Layihə yaradın
Proqramı açın\Module_UART\UART_Module_Example qovluğunda, _CreateProject.bat üzərinə klikləyin file Şəkil 18-də göstərildiyi kimi layihə yaratmaq üçün. Bu proqram qeydi HT32F52352 Başlanğıc dəstindən istifadə etdiyinə görə, MDK_ARMv52352 qovluğu altında yerləşən “Project_5.uvprojx” Keil IDE layihəsini açın.
Şəkil 18. Layihə yaratmaq üçün _CreateProject.bat proqramını icra edin
Addım 3. Kompilyasiya edin və proqramlaşdırın
Layihə açıldıqdan sonra əvvəlcə “Quraşdır” üzərinə klikləyin (və ya “F7” qısayolundan istifadə edin), sonra “Yükləmə” düyməsini basın (və ya “F8” qısayolunu istifadə edin). Bundan sonra, qurma və yükləmə nəticələri Build Output pəncərəsində göstəriləcək. Şəkil 19-a baxın.
Şəkil 19. Nəticələri qurun və yükləyin
Addım 4. Tera Term proqramını açın və serial portu konfiqurasiya edin
Tera Term proqramını və COM portunu açın. Başlanğıc dəsti tərəfindən yaradılan COM port nömrəsinin düzgün olub-olmamasına diqqət yetirin. Sonra konfiqurasiya interfeysinə daxil olmaq üçün “Setup >> Serial Port” üzərinə klikləyin. “Module_UART” proqram kodunun UART interfeys konfiqurasiyası “Terminal Proqram təminatı” bölməsində təsvir edilmişdir. Quraşdırma nəticəsi Şəkil 20-də göstərilmişdir.
Şəkil 20. Tera Term Serial Port Setup Nəticəsi
Addım 5. Sistemi yenidən qurun və sınaqdan keçirin
SK sıfırlama düyməsini basın – B1 Sıfırla. Bundan sonra "ABCTbu testdir!" mesaj olacaq
API vasitəsilə ötürülür və Şəkil 21-də göstərildiyi kimi Tera Term pəncərəsində göstəriləcək. Qəbul funksiyasına gəldikdə, Tera Term pəncərəsinə məlumat daxil edilərkən, qəbul buferinin uzunluğunu müəyyən etmək üçün müvafiq API istifadə olunacaq. PC tərəfindən qəbul edilən məlumat 5 bayta çatdıqda, alınan 5 bayt məlumat ardıcıl olaraq göndəriləcəkdir. Şəkil 22-də göstərildiyi kimi, ardıcıl olaraq daxil edilən məlumatlar API vasitəsilə qəbul edilən və müəyyən edilən “1, 2, 3, 4, 5”dir. Bundan sonra, beş girişdən sonra “1, 2, 3, 4, 5” məlumatları çap olunacaq.
Şəkil 21. “Module_UART” Tətbiq Kodu Funksional Test – Ötür
Şəkil 22. “Module_UART” Tətbiq Kodu Funksional Test – Qəbul
Transplantasiya Təlimatları
Bu bölmə API-ləri istifadəçinin layihələrinə necə inteqrasiya edəcəyini təqdim edəcək.
Addım 1. uart_module.c əlavə edin file layihəyə daxil. İstifadəçi qovluğuna sağ klikləyin. "Mövcud olanı əlavə et Files 'İstifadəçi' Qrupuna…”, sonra uart_module.c seçin file və Şəkil 23-də göstərildiyi kimi “Əlavə et” üzərinə klikləyin. file yolun təsviri.
Şəkil 23. uart_module.c əlavə edin File Layihəyə
Addım 2. ring_buffer.c əlavə edin file layihəyə daxil. İstifadəçi qovluğuna sağ klikləyin. "Mövcud olanı əlavə et Files 'İstifadəçi' Qrupuna…”, sonra ring_buffer.c seçin file və Şəkil 24-də göstərildiyi kimi “Əlavə et” üzərinə klikləyin.\ “Kataloqun strukturu” bölməsinə baxın. file yolun təsviri.
Şəkil 24. Ring_buffer.c əlavə edin File Layihəyə
Addım 3. API başlığını daxil edin file Şəkil 25-də göstərildiyi kimi main.c-nin əvvəlinə daxil edin. (Əlavə: #include “middleware/uart_module.h”)
Şəkil 25. API Başlığını daxil edin File əsas.c
Addım 4. ht32_board_config.h istifadə edərək UART rabitəsi üçün tələb olunan parametrləri həyata keçirin file. Bu, "Parametrlərin təsviri" və "Parametrlərin dəyişdirilməsi və tez-tez verilən suallar" bölmələrində ətraflı şəkildə təqdim olunur.
Parametrlərin dəyişdirilməsi və tez-tez verilən suallar
Bu bölmə UART parametrlərinin necə dəyişdiriləcəyini təqdim edəcək və istifadə zamanı rast gəlinən bəzi ümumi sualları izah edəcək.
UART Pin Təyinatını dəyişdirin
- HT32F52352 Məlumat Vərəqinin “Pin Təyinatı” bölməsinə istinad edərək, cihaz növünün AFIO funksiyalarını sadalayan Alternativ Funksiya Xəritəçəkmə cədvəlinə baxın. UART-a müvafiq sancaqlar üçün Şəkil 6-da göstərildiyi kimi “AF26 USART/UART” sütununa baxın.
Şəkil 26. HT32F52352 Alternativ Funksiya Xəritəçəkmə Cədvəli
- Bu addım istifadəçilərə yuxarıdakı cədvəldən istifadə edərək müvafiq UART pinlərini tapmağa kömək edəcək. HT32F52352 məsələnample standart kanal kimi USART1 istifadə edir. Burada TX və RX pinləri USR1_TX və USR1_RX-dir və müvafiq olaraq PA4 və PA5-də yerləşir. Şəkil 27 “ht32_board_config.h” qovluğunda pin uyğunluğu, eləcə də pin təriflərini göstərir. Pin təyini cədvəlində “Paket”in boş sahələri bu paketdə müvafiq GPIO-ların olmadığını bildirir. UART sancaqlarını dəyişdirmək üçün hədəf pin yerlərini tapın və “ht32_board_config.h” istifadə edərək pinləri yenidən təyin edin. file.
Şəkil 27. Pin Yazışmaları və Parametrlərin Dəyişikliyi
UART Kanalı əlavə edin
HT32F52352 HTCFG_UARTM_CH1-i keçmiş kimi götürəkample, burada yeni bir UART kanalının necə əlavə ediləcəyi təsvir edilmişdir.
ht32_board_config.h-ni dəyişdirin file
HT32F52352 Məlumat Vərəqinin “Pin Təyinatı” bölməsinə istinad edərək, cihaz növünün AFIO funksiyalarını sadalayan Alternativ Funksiya Xəritəçəkmə cədvəlinə baxın. USART1 HTCFG_UARTM_CH0 kimi istifadə edildiyi üçün yeni əlavə edilmiş HTCFG_UARTM_CH1 USART0-ı seçə bilər. Burada TX və RX pinləri Şəkil 2-in yuxarı yarısında göstərildiyi kimi müvafiq olaraq PA3 və PA28 üzərində yerləşir. Müvafiq dəyişikliklər Şəkildəki qırmızı nöqtəli qutu ilə göstərildiyi kimi ht120_board_config.h-də 126~32 kod sətirlərindən istifadə etməklə həyata keçirilir. 28.
Şəkil 28. UART Kanalı əlavə edin
Tez-tez verilən suallar
Q: Kompilyasiya və Test bölməsinin 5-ci addımında ötürmə funksional testi normaldır. Burada "ABCTbu testdir!" mesaj uğurla nümayiş olundu, lakin qəbul funksiyası üçün niyə beş giriş dəyəri qaytarılmır və göstərilmir?
A: UART Jumper-J2-nin MCU UART RX və DAP_Tx pinlərinin jumper istifadə edərək qısaldılmış olub-olmadığını yoxlayın. “Module_UART” proqram kodu e-Link32 Lite-in Virtual COM Portundan (VCP) istifadə etməli olduğundan, qısaqapanma parametri Şəkil 2-da göstərildiyi kimi UART Jumper-J29-nin sol iki pininə tətbiq edilməlidir.
Şəkil 29. UART Jumper-J2 Parametri
S: Sonra “Quraşdır” (və ya “F7” qısayolu) icra edilərkən, proqram təminatının kitabxana versiyasının tələb olunandan daha köhnə olduğunu göstərən xəta mesajı görünür? Şəkil 30-a baxın.
A: “Module_UART” proqram kodunun icrasına uart_module.c/h daxil edilməlidir. files, müəyyən bir proqram təminatı kitabxanası versiyası üçün tələbi olan. Belə bir səhv mesajı görünəndə bu, hazırda istifadə olunan proqram təminatı kitabxanasının köhnə versiya olduğunu bildirir. Buna görə də, “Proqram Kitabxanası” bölməsində verilmiş link vasitəsilə ən yeni versiyanı yükləmək lazımdır.
Şəkil 30. Firmware Library Version Hata Mesajı
Nəticə
Bu sənəd istifadəçilərə “Module_UART” proqram kodunu və UART rabitə protokolunu daha yaxşı başa düşməyə kömək etmək üçün əsas giriş təqdim etmişdir. Bunun ardınca resursun yüklənməsi və hazırlanması izlənildi. Funksional təsvir fəsli təqdim etdi file kataloq strukturu, API arxitekturası, API təsviri və API istifadəsi, məsələnamples. İstifadə Təlimatları bölməsində “Module_UART” proqram kodunun ətraf mühitə hazırlığı, tərtibi və sınaqdan keçirilməsi nümayiş etdirilir. O, həmçinin kodun köçürülməsi və modifikasiyası üçün təlimatlar, eləcə də rastlaşa biləcək bəzi ümumi problemləri izah edir. Bütün bunların birləşməsi istifadəçilərə API-lərdən necə istifadə etməyi tez başa düşməyə və sonradan işə başlamaq üçün vaxtı azaltmağa imkan verəcək.
İstinad materialı
Əlavə məlumat üçün Holtek-ə baxın websayt: www.holtek.com
Versiyalar və Dəyişiklik Məlumatı
Tarix | Müəllif | Buraxın | Dəyişiklik Məlumatı |
2022.04.30 | 蔡期育(Çi-Yu Tsai) | V1.00 | Birinci Versiya |
İmtina
Bütün məlumatlar, ticarət nişanları, loqotiplər, qrafiklər, videolar, audio kliplər, keçidlər və burada görünən digər elementlər websayt ('Məlumat') yalnız istinad üçündür və istənilən vaxt əvvəlcədən xəbərdarlıq edilmədən və Holtek Semiconductor Inc. və onunla əlaqəli şirkətlərin (bundan sonra 'Holtek', 'şirkət', 'biz', ') mülahizəsinə əsasən dəyişdirilə bilər. biz' və ya 'bizim'). Holtek bununla bağlı məlumatların düzgünlüyünü təmin etməyə çalışır websayt, Holtek tərəfindən Məlumatın düzgünlüyünə heç bir açıq və ya nəzərdə tutulan zəmanət verilmir. Holtek hər hansı bir səhv və ya sızma üçün heç bir məsuliyyət daşımır.
Holtek bundan istifadə zamanı və ya istifadəsi ilə əlaqədar yaranan hər hansı ziyana görə (kompüter virusu, sistem problemləri və ya məlumat itkisi daxil olmaqla, lakin bununla məhdudlaşmayaraq) məsuliyyət daşımır. webhər hansı bir tərəfin saytı. Bu sahədə sizə ziyarət etməyə imkan verən bağlantılar ola bilər webdigər şirkətlərin saytları.
Bunlar websaytlar Holtek tərəfindən idarə olunmur. Holtek bu cür saytlarda nümayiş etdirilən hər hansı Məlumata görə heç bir məsuliyyət daşımayacaq və heç bir zəmanət daşımayacaq. Digərlərinə hiperlinklər websaytların riski sizin üzərinizdədir.
Məsuliyyətin məhdudlaşdırılması
Heç bir halda Holtek Limited sizin bu məlumatlara daxil olmanız və ya istifadənizlə bağlı birbaşa və ya dolayı yolla baş vermiş hər hansı itki və ya zərərə görə hər hansı digər tərəf qarşısında məsuliyyət daşımır. websayt, oradakı məzmun və ya hər hansı mallar, materiallar və ya xidmətlər.
İdarəetmə Qanunu
Disclaimer-də yer alan websayt Çin Respublikasının qanunlarına uyğun olaraq idarə olunur və şərh edilir. İstifadəçilər Çin Respublikasının məhkəmələrinin qeyri-müstəsna yurisdiksiyasına tabe olacaqlar.
İmtina etmənin yenilənməsi
Holtek əvvəlcədən xəbərdarlıq edərək və ya etmədən İmtina Bəyannaməsini istənilən vaxt yeniləmək hüququnu özündə saxlayır, bütün dəyişikliklər sayta göndərildikdən dərhal sonra qüvvəyə minir. websayt.
Sənədlər / Resurslar
![]() |
HOLTEK HT32 MCU UART Tətbiq Qeydi [pdf] İstifadəçi Təlimatı HT32 MCU, UART Tətbiq Qeydi, HT32 MCU UART, Tətbiq Qeydi, HT32, MCU UART Tətbiq Qeydi, HT32 MCU UART Tətbiq Qeydi |