សៀវភៅណែនាំអ្នកប្រើប្រាស់ចំណាំកម្មវិធី HOLTEK HT32 MCU UART
ចំណាំកម្មវិធី HOLTEK HT32 MCU UART

សេចក្តីផ្តើម

Universal Asynchronous Receiver/Transmitter – UART គឺជាចំណុចប្រទាក់បញ្ជូនសៀរៀលដែលត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយដែលផ្តល់នូវការបញ្ជូនទិន្នន័យពេញពីរជាន់អសមកាលដែលអាចបត់បែនបាន។ កូដកម្មវិធី "Module_UART" ដែលបានផ្ដល់ឱ្យក្នុងកំណត់ចំណាំកម្មវិធីនេះប្រើ TX/RX រំខានជាមួយសតិបណ្ដោះអាសន្ននៃកម្មវិធីដើម្បីអនុវត្តមុខងារបញ្ជូន/ទទួល UART សាមញ្ញតាមរយៈ APIs ដែលមុខងារពាក់ព័ន្ធត្រូវបានពិពណ៌នាខាងក្រោម។ វានឹងជួយសម្រួលដល់ដំណើរការបញ្ជូនទិន្នន័យទាំងមូល និងអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់យល់ និងអនុវត្តកម្មវិធីទំនាក់ទំនង UART យ៉ាងឆាប់រហ័ស។

  • មុខងារបញ្ជូន/ទទួល៖ អានបៃ, សរសេរបៃ, អានសតិបណ្ដោះអាសន្ន, សរសេរសតិបណ្ដោះអាសន្ន។ល។
  • មុខងារស្ថានភាព៖ ទទួលបានប្រវែងសតិបណ្ដោះអាសន្ន ស្ថានភាព TX ។ល។

ឯកសារនេះដំបូងនឹងណែនាំពិធីការទំនាក់ទំនង UART ដែលនឹងជួយអ្នកប្រើប្រាស់ឱ្យយល់កាន់តែច្បាស់អំពីទំនាក់ទំនង UART ពីគោលការណ៍មួយទៅកម្មវិធី។ វាត្រូវបានបន្តដោយការទាញយក និងការរៀបចំធនធានដែលត្រូវការសម្រាប់កូដកម្មវិធី រួមទាំងបណ្ណាល័យកម្មវិធីបង្កប់ ការទាញយកកូដកម្មវិធី។ file និងការកំណត់រចនាសម្ព័ន្ធថត ក៏ដូចជាការណែនាំអំពីឧបករណ៍កម្មវិធីស្ថានីយដែលប្រើក្នុងចំណាំកម្មវិធី។ នៅក្នុងជំពូកការពិពណ៌នាមុខងារ រចនាសម្ព័ន្ធថតកូដកម្មវិធី ការកំណត់ប៉ារ៉ាម៉ែត្រ និងការពិពណ៌នា API នឹងត្រូវបានណែនាំ។ ការប្រើប្រាស់ API នឹងត្រូវបានពិពណ៌នាដោយប្រើកូដកម្មវិធី “Module_UART” ហើយការប្រើប្រាស់ធនធាន Flash/RAM ដែលត្រូវការសម្រាប់ APIs នឹងត្រូវបានរាយបញ្ជីផងដែរ។ ជំពូកសេចក្តីណែនាំសម្រាប់ការប្រើប្រាស់នឹងណែនាំអ្នកប្រើប្រាស់តាមរយៈជំហាននៃការរៀបចំបរិស្ថាន ការចងក្រង និងការធ្វើតេស្តដើម្បីបញ្ជាក់ថាលេខកូដកម្មវិធីនឹងដំណើរការបានត្រឹមត្រូវ។ បន្ទាប់មកវានឹងផ្តល់ការណែនាំពន្យល់ពីរបៀបបញ្ចូល APIs ទៅក្នុងគម្រោងរបស់អ្នកប្រើ ហើយចុងក្រោយផ្តល់នូវឯកសារយោងសម្រាប់ការកែប្រែ និងបញ្ហាទូទៅដែលអាចជួបប្រទះ។

អក្សរកាត់ដែលបានប្រើ៖ 

  • UART៖ អ្នកទទួល/បញ្ជូនអសមកាលជាសកល
  • API៖ ចំណុចប្រទាក់កម្មវិធីកម្មវិធី
  • អិលអេសប៊ី៖ ប៊ីត​ដែល​មាន​សារៈសំខាន់​តិច​បំផុត
  • MSB៖ ប៊ីតសំខាន់ៗ
  • កុំព្យូទ័រ៖ កុំព្យូទ័រផ្ទាល់ខ្លួន
  • អេសខេ៖ កញ្ចប់ចាប់ផ្តើម, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ HT32
  • IDE៖ បរិស្ថានអភិវឌ្ឍន៍រួមបញ្ចូលគ្នា

ពិធីសារទំនាក់ទំនង UART

UART គឺជាប្រភេទទំនាក់ទំនងសៀរៀលនៃចំណុចប្រទាក់ដែលអនុវត្តការបំប្លែងទិន្នន័យប៉ារ៉ាឡែលទៅសៀរៀលនៅឯឧបករណ៍បញ្ជូនរបស់វា ហើយបន្ទាប់មកទំនាក់ទំនងជាស៊េរីជាមួយអ្នកទទួលស្រដៀងគ្នា។ បន្ទាប់មកអ្នកទទួលធ្វើការបំប្លែងទិន្នន័យពីស៊េរីទៅប៉ារ៉ាឡែលបន្ទាប់ពីការទទួលទិន្នន័យ។ រូបភាពទី 1 បង្ហាញដ្យាក្រាមគ្រោងការណ៍នៃការទំនាក់ទំនងសៀរៀលដែលបង្ហាញពីរបៀបដែលទិន្នន័យត្រូវបានផ្ទេរតាមលំដាប់លំដោយបន្តិច។ ដូច្នេះសម្រាប់ការទំនាក់ទំនងទ្វេទិសរវាងអ្នកបញ្ជូននិងអ្នកទទួល មានតែខ្សែពីរប៉ុណ្ណោះគឺ TX និង RX ដែលត្រូវបានទាមទារដើម្បីផ្ទេរទិន្នន័យជាស៊េរីរវាងគ្នាទៅវិញទៅមក។ TX គឺជាម្ជុលដែល UART បញ្ជូនទិន្នន័យសៀរៀល និងត្រូវបានភ្ជាប់ទៅម្ជុល RX របស់អ្នកទទួល។ ដូច្នេះឧបករណ៍បញ្ជូន និងអ្នកទទួល ចាំបាច់ត្រូវភ្ជាប់ម្ជុល TX និង RX ឆ្លងកាត់ ដើម្បីធ្វើការទំនាក់ទំនងពីរផ្លូវ UART ដូចដែលបានបង្ហាញក្នុង រូប 2.

រូបភាពទី 1. ដ្យាក្រាមទំនាក់ទំនងសៀរៀល
ដ្យាក្រាមទំនាក់ទំនងសៀរៀល

រូបភាពទី 2. ដ្យាក្រាមសៀគ្វី UART
ដ្យាក្រាមសៀគ្វី UART

ក្នុងអំឡុងពេលទំនាក់ទំនងសៀរៀល UART ការបញ្ជូនទិន្នន័យគឺអសមកាល។ នេះមានន័យថាមិនមាននាឡិកា ឬសញ្ញាធ្វើសមកាលកម្មផ្សេងទៀតរវាងឧបករណ៍បញ្ជូន និងអ្នកទទួល។ នៅទីនេះអត្រា baud ត្រូវបានប្រើ ដែលជាល្បឿនបញ្ជូន/ទទួលទិន្នន័យសៀរៀល និងដែលត្រូវបានកំណត់ដោយភាគីទាំងពីរជាមុននៃការផ្ទេរទិន្នន័យ។ លើសពីនេះ ប៊ីតពិសេសដូចជាប៊ីតចាប់ផ្តើម និងប៊ីតត្រូវបានបន្ថែមទៅដើម និងចុងបញ្ចប់នៃកញ្ចប់ទិន្នន័យ ដើម្បីបង្កើតជាកញ្ចប់ទិន្នន័យ UART ពេញលេញ។ រូបភាពទី 3 បង្ហាញរចនាសម្ព័ន្ធកញ្ចប់ទិន្នន័យ UART ខណៈពេលដែលរូបភាពទី 4 បង្ហាញកញ្ចប់ទិន្នន័យ UART 8-bit ដោយគ្មានប៊ីត parity ។
រូបភាពទី 3. រចនាសម្ព័ន្ធកញ្ចប់ទិន្នន័យ UART
រចនាសម្ព័ន្ធកញ្ចប់ទិន្នន័យ UART

រូបភាពទី 4. ទម្រង់កញ្ចប់ទិន្នន័យ UART 8 ប៊ីត
ទម្រង់កញ្ចប់ទិន្នន័យ
ផ្នែកនីមួយៗនៃកញ្ចប់ទិន្នន័យ UART ត្រូវបានណែនាំតាមលំដាប់ដូចខាងក្រោម។

  • ចាប់ផ្តើមប៊ីត៖ នេះបង្ហាញពីការចាប់ផ្តើមនៃកញ្ចប់ទិន្នន័យ។ ម្ជុល UART TX ជាធម្មតានៅតែមានកម្រិតតក្កវិជ្ជាខ្ពស់ មុនពេលការបញ្ជូនចាប់ផ្តើម។ ប្រសិនបើការបញ្ជូនទិន្នន័យចាប់ផ្តើម ឧបករណ៍បញ្ជូន UART នឹងទាញម្ជុល TX ពីខ្ពស់ទៅទាប ពោលគឺពី 1 ទៅ 0 ហើយបន្ទាប់មកសង្កត់វានៅទីនោះសម្រាប់វដ្តនាឡិកាមួយ។ អ្នកទទួល UART នឹងចាប់ផ្តើមអានទិន្នន័យ នៅពេលដែលការផ្លាស់ប្តូរពីខ្ពស់ទៅទាបត្រូវបានរកឃើញនៅលើម្ជុល RX ។
  • ទិន្នន័យ៖ នេះ​ជា​ទិន្នន័យ​ពិត​ដែល​បាន​ផ្ទេរ​ដោយ​មាន​ប្រវែង​ទិន្នន័យ 7, 8 ឬ 9 ប៊ីត។ ទិន្នន័យត្រូវបានផ្ទេរជាធម្មតាជាមួយ LSB ជាមុនសិន។
  • Parity Bit: ចំនួនតក្កវិជ្ជា "1" នៅក្នុងទិន្នន័យត្រូវបានប្រើដើម្បីកំណត់ថាតើទិន្នន័យណាមួយបានផ្លាស់ប្តូរកំឡុងពេលបញ្ជូន។ សម្រាប់ភាពស្មើគ្នា ចំនួនសរុបនៃតក្កវិជ្ជា “1” នៅក្នុងទិន្នន័យគួរតែជាចំនួនគូ ផ្ទុយទៅវិញចំនួនសរុបនៃតក្កវិជ្ជា “1” នៅក្នុងទិន្នន័យគួរតែជាចំនួនសេសសម្រាប់ភាពស្មើគ្នានៃសេស។
  • ឈប់ប៊ីត៖ នេះបង្ហាញពីការបញ្ចប់នៃកញ្ចប់ទិន្នន័យ ដែលឧបករណ៍បញ្ជូន UART នឹងទាញម្ជុល TX ពីទាបទៅខ្ពស់ ពោលគឺពី 0 ទៅ 1 ហើយបន្ទាប់មកសង្កត់វានៅទីនោះសម្រាប់រយៈពេល 1 ឬ 2 ប៊ីត។

ដូចដែលបានរៀបរាប់ពីមុន ដោយសារមិនមានសញ្ញានាឡិកានៅក្នុងសៀគ្វី UART នោះ ល្បឿនបញ្ជូន/ទទួលទិន្នន័យសៀរៀលដូចគ្នា ដែលត្រូវបានគេស្គាល់ថាជាអត្រា baud ត្រូវតែកំណត់រវាងឧបករណ៍បញ្ជូន និងអ្នកទទួល ដើម្បីអនុវត្តការបញ្ជូនដោយគ្មានកំហុស។ អត្រា baud ត្រូវបានកំណត់ដោយចំនួនប៊ីតដែលបានផ្ទេរក្នុងមួយវិនាទីគិតជា bps (ប៊ីតក្នុងមួយវិនាទី) ។ អត្រា baud ស្តង់ដារ និងប្រើជាទូទៅមួយចំនួនគឺ 4800bps, 9600bps, 19200bps, 115200bps ។ល។ ពេលវេលាដែលត្រូវគ្នាដែលត្រូវការសម្រាប់ការផ្ទេរទិន្នន័យតែមួយត្រូវបានបង្ហាញខាងក្រោម។
តារាងទី 1. អត្រា Baud ធៀបនឹងពេលវេលាបញ្ជូន 1-Bit 

អត្រា Baud ការបញ្ជូន 1 ប៊ីត ពេលវេលា
4800bps 208.33µs
9600bps 104.16µs
19200bps 52.08µs
115200bps 8.68µs

ការទាញយកធនធាន និងការរៀបចំ

ជំពូកនេះនឹងណែនាំអំពីកូដកម្មវិធី និងឧបករណ៍កម្មវិធីដែលបានប្រើ ក៏ដូចជារបៀបកំណត់រចនាសម្ព័ន្ធថត និង file ផ្លូវ។

បណ្ណាល័យកម្មវិធីបង្កប់ 

ជាដំបូង សូមប្រាកដថា បណ្ណាល័យកម្មវិធីបង្កប់ Holtek HT32 ត្រូវបានទាញយក មុនពេលប្រើកូដកម្មវិធី។ តំណទាញយកត្រូវបានបង្ហាញខាងក្រោម។ នៅទីនេះមានជម្រើសពីរគឺ HT32_M0p_Vyyyymmdd.zip សម្រាប់ស៊េរី HT32F5xxxx និង HT32_M3_Vyyyymmdd.zip សម្រាប់ស៊េរី HT32F1xxxx ។ ទាញយកនិងពន្លាឯកសារដែលចង់បាន file.

ហ្ស៊ីប file មានថតជាច្រើនដែលអាចត្រូវបានចាត់ថ្នាក់ជា Document, Firmware Library, Tools and other items, the placement path of which is shown in Figure 5. The HT32 firmware library 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 គួរតែត្រូវបានដាក់ក្នុងផ្លូវត្រឹមត្រូវមុនពេលចាប់ផ្តើមការចងក្រង។ លេខកូដកម្មវិធី file ជាធម្មតាមានថតមួយ ឬច្រើន ដូចជាកម្មវិធី និងបណ្ណាល័យ ដូចបង្ហាញក្នុងរូបភាពទី 7។ ដាក់ថតកម្មវិធីនៅក្រោមថតឫសបណ្ណាល័យកម្មវិធីបង្កប់ HT32 ដើម្បីបំពេញ file ការកំណត់រចនាសម្ព័ន្ធផ្លូវ ដូចបង្ហាញក្នុងរូបភាពទី 8។ ជាជម្រើស ពន្លាកូដកម្មវិធី និងបណ្ណាល័យកម្មវិធីបង្កប់ HT32 ក្នុងពេលដំណាលគ្នាទៅក្នុងផ្លូវដូចគ្នា ដើម្បីសម្រេចបានលទ្ធផលនៃការកំណត់ដូចគ្នា។

រូបភាពទី 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip មាតិកា
មាតិកា

រូបភាពទី 8. Decompression Path
ផ្លូវបំបែក

កម្មវិធីស្ថានីយ
លេខកូដកម្មវិធីអាចផ្ទេរសារតាមរយៈច្រក COM ដើម្បីអនុវត្តការជ្រើសរើសមុខងារ ឬការបង្ហាញស្ថានភាព។ នេះតម្រូវឱ្យភាគីម្ចាស់ផ្ទះដំឡើងកម្មវិធីស្ថានីយជាមុន។ អ្នកប្រើប្រាស់អាចជ្រើសរើសកម្មវិធីតភ្ជាប់ដែលសមស្រប ឬប្រើកម្មវិធីដែលមានអាជ្ញាប័ណ្ណឥតគិតថ្លៃដូចជា Tera Term ជាដើម។ នៅក្នុងកូដកម្មវិធី ឆានែល UART ត្រូវបានកំណត់រចនាសម្ព័ន្ធជាមួយនឹងប្រវែងពាក្យ 8 ប៊ីត គ្មានភាពស្មើគ្នា 1 stop bit និងអត្រា baud 115200bps ។

ការពិពណ៌នាមុខងារ

ជំពូកនេះនឹងផ្តល់នូវការពិពណ៌នាមុខងារសម្រាប់កូដកម្មវិធី រួមទាំងព័ត៌មានអំពីរចនាសម្ព័ន្ធថត ស្ថាបត្យកម្ម 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 ទាក់ទងនឹងការចាត់តាំង I/O គ្រឿងកុំព្យូទ័រ IC
ht32fxxxxx_01_it.c រំខានកម្មវិធីសេវាកម្ម file
main.c កូដប្រភពកម្មវិធីសំខាន់
\\application\Module_UART\UART_Bridge*2
_CreateProject.bat បណ្តុំស្គ្រីបសម្រាប់បង្កើតគម្រោង files
_ProjectSource.ini ការចាប់ផ្តើម file សម្រាប់បន្ថែមកូដប្រភពទៅគម្រោង
ht32_board_config.h រៀបចំ file ទាក់ទងនឹងការចាត់តាំង I/O គ្រឿងកុំព្យូទ័រ IC
ht32fxxxxx_01_it.c រំខានកម្មវិធីសេវាកម្ម file
main.c កូដប្រភពនៃកម្មវិធីសំខាន់
uart_bridge.h uart_bridge.c ក្បាលស្ពាន UART file និងកូដប្រភព file
\\ ឧបករណ៍ប្រើប្រាស់ \\ ផ្នែកកណ្តាល
uart_module.h*3 uart_module.c*3 បឋមកថា API file និងកូដប្រភព file
\\ ឧបករណ៍ប្រើប្រាស់ ទូទៅ
ringbuffer.h ring_buffer.c ផ្នែកក្បាលសតិបណ្ដោះអាសន្ននៃកម្មវិធី file និងកូដប្រភព file

ចំណាំ៖ 

  1. នៅក្នុង “UART_Module_Example” កូដកម្មវិធី ប្រតិបត្តិការអាន និងសរសេរ API ត្រូវបានអនុវត្តក្នុងលក្ខណៈរង្វិលជុំវិញ យោងទៅ “API Usage Exampផ្នែក les” សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។
  2.  នៅក្នុងកូដកម្មវិធី “UART_Bridge” បណ្តាញ UART ពីរ UART CH0 និង UART CH1 ត្រូវបានធ្វើឱ្យសកម្ម ហើយពិធីការទំនាក់ទំនងផ្ទាល់ខ្លួនតាមរយៈរចនាសម្ព័ន្ធពាក្យបញ្ជាត្រូវបានអនុវត្តរវាងឧបករណ៍ UART ទាំងពីរ។ សម្រាប់ព័ត៌មានបន្ថែម សូមមើល “API Usage Examples” ផ្នែក។
  3. លេខកូដកម្មវិធីត្រូវប្រើ uart_module.c/h files ដែលមានតម្រូវការកំណែបណ្ណាល័យកម្មវិធីបង្កប់។ តម្រូវការអាចផ្លាស់ប្តូរពេលមួយទៅពេលមួយ យោងទៅតាមការធ្វើបច្ចុប្បន្នភាព។ ដើម្បីបញ្ជាក់តម្រូវការកំណែបណ្ណាល័យកម្មវិធីបង្កប់បច្ចុប្បន្ន សូមមើលមាតិកាពិនិត្យភាពអាស្រ័យដោយស្វែងរកពាក្យគន្លឹះ "ការត្រួតពិនិត្យភាពអាស្រ័យ" នៅក្នុង main.c file. ប្រសិនបើកំណែបណ្ណាល័យកម្មវិធីបង្កប់មិនបំពេញតាមតម្រូវការ សូមទាញយកកំណែថ្មីបំផុតពីតំណដែលបានផ្តល់នៅក្នុងផ្នែក "បណ្ណាល័យកម្មវិធីបង្កប់" ។

ស្ថាបត្យកម្ម API
API នីមួយៗមានប៉ារ៉ាម៉ែត្រសំខាន់ CH ដែលជាឆានែល UART ។ វាកំណត់ថាឆានែល UART មួយណាដែលត្រូវគ្រប់គ្រង។ បច្ចុប្បន្ន​រហូត​ដល់​ទៅ​បួន​ប៉ុស្តិ៍ UART ត្រូវ​បាន​គាំទ្រ ហើយ​ដូច្នេះ​និមិត្តសញ្ញា​ថេរ​ចំនួន​បួន​ត្រូវ​បាន​កំណត់​ដូច​ខាងក្រោម។ ទាំងនេះត្រូវបានប្រើជាប៉ារ៉ាម៉ែត្រ CH ដែលផ្តល់ APIs ជាមូលដ្ឋានសម្រាប់ការគ្រប់គ្រង។

  • 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 ដែលពាក់ព័ន្ធ វាត្រូវបានទាមទារឱ្យមានតារាងប៉ារ៉ាម៉ែត្រកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART បន្ថែមជាមួយនឹងទម្រង់រចនាសម្ព័ន្ធ USART_InitTypeDef ។ API នឹងអនុវត្តការកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART យោងទៅតាមមាតិកាប៉ារ៉ាម៉ែត្រនៅក្នុងតារាង។ សូមមើលផ្នែក "ការពិពណ៌នា API" សម្រាប់តារាងរចនាសម្ព័ន្ធការកំណត់មូលដ្ឋាន UART ។

uart_module.c/.h files មានត្រឹមតែការរំខាន (CHx_IRQ) ​​និងតារាងស្ថានភាព (CHx Status) នៃឆានែល UART នីមួយៗ ខណៈដែលការកំណត់ទាំងអស់ដែលត្រូវការសម្រាប់ការទំនាក់ទំនង 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 រាងកាយ; ឧampលេ៖ UART0, UART1…
HTCFG_UARTM0_TX_GPIO_PORT កំណត់ឈ្មោះច្រកនៃ TX សម្រាប់ CH0; ឧampលេ៖ A, B, C…
HTCFG_UARTM0_TX_GPIO_PIN កំណត់លេខ pin នៃ TX សម្រាប់ CH0; ឧampលេ៖ ០ ~ ១៥
HTCFG_UARTM0_RX_GPIO_PORT កំណត់ឈ្មោះច្រករបស់ RX សម្រាប់ CH0; ឧampលេ៖ A, B, C…
HTCFG_UARTM0_RX_GPIO_PIN កំណត់លេខ pin នៃ TX សម្រាប់ CH0; ឧampលេ៖ ០ ~ ១៥
HTCFG_UARTM0_TX_BUFFER_SIZE កំណត់ទំហំសតិបណ្ដោះអាសន្ន TX សម្រាប់ CH0; ឧampលេ៖ ១៩០២១០
HTCFG_UARTM0_RX_BUFFER_SIZE កំណត់ទំហំសតិបណ្ដោះអាសន្ន RX សម្រាប់ CH0; ឧampលេ៖ ១៩០២១០

ដើម្បីកែប្រែការកំណត់រចនាសម្ព័ន្ធ AFIO ឆានែល UART សូមមើលតារាងទិន្នន័យឧបករណ៍ដែលពាក់ព័ន្ធ។ បច្ចុប្បន្ននេះមានតែនិយមន័យ I/O សម្រាប់ UART CH0 ប៉ុណ្ណោះដែលមានប្រសិទ្ធភាព ព្រោះមានតែ 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 ទាំងអស់ត្រូវបានបំបែកចេញពី APIs ទាំងស្រុង។ វាបង្កើនភាពងាយស្រួលនៃការគ្រប់គ្រងនៃការកំណត់តម្លៃ និងកាត់បន្ថយលទ្ធភាពនៃការកំណត់មិនត្រឹមត្រូវ ឬបាត់។

ការកំណត់ការពិពណ៌នា 

ផ្នែកនេះនឹងណែនាំការកំណត់ប៉ារ៉ាម៉ែត្រនៅក្នុង ht32_board_config.h និង uart_module.h files.

  1. ht32_board_config.h៖ នេះ។ file ត្រូវបានប្រើសម្រាប់ការកំណត់ម្ជុល និងការកំណត់ដែលពាក់ព័ន្ធរបស់ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ ដែលរួមមានឆានែល UART IP (UART0, UART1, UART0…) ដែលប្រើដោយ Starter Kit (SK) ទីតាំង PIN TX/RX ដែលត្រូវគ្នា និងទំហំទ្រនាប់ TX/RX ។ រូបភាពទី 10 បង្ហាញពីការកំណត់មាតិកានៃ HT32F52352 Starter Kit ។ អាស្រ័យលើការរួមបញ្ចូលមុខងារនៃការអភិវឌ្ឍន៍ អ្នកប្រើប្រាស់អាចយោងទៅលើផ្នែក "Pin Assignment" នៃ datasheet នៃឧបករណ៍ដែលបានប្រើ ដើម្បីអនុវត្តការកំណត់ pin ។ ព័ត៌មានលម្អិតបន្ថែមអំពីការកំណត់ការកែប្រែនឹងត្រូវបានពិពណ៌នានៅក្នុងផ្នែក "ការកំណត់ការកែប្រែ និងសំណួរគេសួរញឹកញាប់"។
    រូបភាពទី 10. ht32_board_config.h ការកំណត់ (HT32F52352)
    ការកំណត់
  2. uart_module.h៖ នេះគឺជាបឋមកថា API file ប្រើដោយកូដកម្មវិធី ដែលរួមបញ្ចូលការកំណត់លំនាំដើមពាក់ព័ន្ធ និយមន័យមុខងារ។ល។ ដូចដែលបានបង្ហាញក្នុងរូបភាពទី 11 មាតិកាការកំណត់លំនាំដើមអាចត្រូវបានសរសេរជាន់ពីលើដោយការកំណត់រចនាសម្ព័ន្ធខាងក្រៅ ដូចជាការកំណត់នៅក្នុង ht32_board_config.h ជាដើម។ file.
    រូបភាពទី 11. ការកំណត់លំនាំដើមនៅក្នុង uart_module.h
    ការកំណត់លំនាំដើម
ការពិពណ៌នា API
  1. ការពិពណ៌នាអំពីប្រភេទទិន្នន័យកូដកម្មវិធី។
    • USAART_InitTypeDef
      នេះគឺជារចនាសម្ព័ន្ធកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART ដែលត្រូវបានផ្សំឡើងដោយ BaudRate, WordLength, StopBits, Parity និង Mode configurations ដូចដែលបានបង្ហាញខាងក្រោម។
      អថេរ ឈ្មោះ ប្រភេទ ការពិពណ៌នា
      USART_BaudRate u32 អត្រា baud ទំនាក់ទំនង UART
      USAART_ប្រវែងពាក្យ u16 ប្រវែងពាក្យទំនាក់ទំនង UART៖ ៧, ៨ ឬ ៩ ប៊ីត
      USAART_StopBits u16 ការទំនាក់ទំនង UART បញ្ឈប់ប្រវែងប៊ីត៖ ១ ឬ ២ ប៊ីត
      USAART_Parity u16 ភាពស្មើគ្នានៃទំនាក់ទំនង UART៖ គូ សេស សញ្ញាសម្គាល់ ចន្លោះ ឬគ្មានភាពស្មើគ្នា
      USART_របៀប u16 របៀបទំនាក់ទំនង UART; APIs គាំទ្រតែរបៀបធម្មតាប៉ុណ្ណោះ។
  2. មុនពេលប្រើមុខងារ API សូមបំពេញការកំណត់មូលដ្ឋាន UART នៅក្នុងកម្មវិធីមេ។ ការកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART សម្រាប់កូដកម្មវិធីនេះត្រូវបានបង្ហាញក្នុងរូបភាពទី 12។ នៅទីនេះអត្រា baud គឺ 115200bps ប្រវែងពាក្យគឺ 8 ប៊ីត ប្រវែងប៊ីតឈប់គឺ 1 ប៊ីត ហើយវាមិនមានភាពស្មើគ្នាទេ។
    រូបភាពទី 12. ការកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART
    ការកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន
  3. រូបភាពទី 13 បង្ហាញមុខងារ API ដែលបានប្រកាសនៅក្នុង uart_module.h file. តារាងខាងក្រោមពន្យល់ពីមុខងារ ប៉ារ៉ាម៉ែត្របញ្ចូល និងការប្រើប្រាស់មុខងារ API ។
    រូបភាពទី 13. ការប្រកាសមុខងារ API នៅក្នុង uart_module.h 
    សេចក្តីប្រកាសមុខងារ API
ឈ្មោះ ចាត់ទុកជាមោឃៈ UARTM_Init(u32 CH, USAART_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 ទ្រនិចទ្រនាប់
ប្រវែង រយៈពេលនៃទិន្នន័យដែលត្រូវសរសេរ
ទិន្នផល ជោគជ័យ ជោគជ័យ
កំហុស បរាជ័យ
 ការប្រើប្រាស់ u8 Test[] = "នេះគឺជាការសាកល្បង!\r\n"; UARTM_Write(UARTM_CH0, តេស្ត, sizeof(Test) -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 ទ្រនិចទ្រនាប់
ប្រវែង រយៈពេលនៃទិន្នន័យដែលត្រូវអាន
ទិន្នផល រាប់អាន រយៈពេលនៃទិន្នន័យត្រូវបានអាន
     ការប្រើប្រាស់ u8 តេស្ត2[10]; u32 លេន; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() អានទិន្នន័យ 5 bytes និងរក្សាទុកទិន្នន័យទៅក្នុង Test2 និងកំណត់ចំនួនអានបៃ ទៅ Len // សរសេរទិន្នន័យដែលបានមកពី Test2
ឈ្មោះ u32 UARTM_GetReadBufferLength(u32 CH)
មុខងារ ទទួលបានអានប្រវែងសតិបណ្ដោះអាសន្ន (RX)
បញ្ចូល CH ឆានែល UART
ទិន្នផល ប្រវែង អានប្រវែងសតិបណ្ដោះអាសន្ន
  ការប្រើប្រាស់ UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); // ការចាប់ផ្តើមម៉ូឌុល UART ខណៈពេលដែល (UARTM_GetReadBufferLength(UARTM_CH0) < 5);// រង់ចាំរហូតដល់ UARTM_ReadBuffer បានទទួលទិន្នន័យ 5 បៃ
ឈ្មោះ u32 UARTM_GetWriteBufferLength(u32 CH)
មុខងារ ទទួលបានប្រវែងសតិបណ្ដោះអាសន្ន (TX)
បញ្ចូល CH ឆានែល UART
ទិន្នផល ប្រវែង សរសេរប្រវែងសតិបណ្ដោះអាសន្ន
ឈ្មោះ 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 គឺពិត ហើយបន្ទាប់មកបន្តសកម្មភាពជាបន្តបន្ទាប់។//ការរឹតបន្តឹងត្រូវបានបន្ថែម ពីព្រោះមុខងារនេះមិនត្រូវបានបន្ថែមរហូតដល់លេខកំណែ SVN នៅក្នុង uart_module.c គឺ 525។
ឈ្មោះ ទុកជាមោឃៈ UARTM_DiscardReadBuffer(u32 CH)
មុខងារ បោះបង់ទិន្នន័យនៅក្នុងសតិបណ្ដោះអាសន្នអាន
បញ្ចូល CH ឆានែល UART

ការប្រើប្រាស់ API Examples 

ផ្នែកនេះនឹងបង្ហាញពី API សរសេរ និងអាន examples នៃកូដកម្មវិធី “Module_UART” ដោយប្រើដំណើរការចាប់ផ្តើម និង “UART_Module_Example” ដំណើរការកូដកម្មវិធី។ មុនពេលប្រើ APIs អ្នកប្រើប្រាស់ត្រូវបញ្ចូលបឋមកថា API file ចូលទៅក្នុងកូដប្រភពកម្មវិធីសំខាន់ file (#include “middleware/uart_module.h”)។

ដូចដែលបានបង្ហាញក្នុងរូបភាពទី 14 នៅពេលចូលទៅក្នុងដំណើរការចាប់ផ្តើមដំបូងកំណត់រចនាសម្ព័ន្ធការកំណត់មូលដ្ឋាន UART ។ បន្ទាប់មកកំណត់រចនាសម្ព័ន្ធសមាជិកនៃរចនាសម្ព័ន្ធកំណត់មូលដ្ឋាន UART រួមមាន BaudRate, WordLength, StopBits, Parity និង Mode ។ ជាចុងក្រោយ ហៅមុខងារ API initialisation ដែលការបញ្ចប់ដែលបង្ហាញពីការបញ្ចប់នៃដំណើរការ initialisation។ បន្ទាប់ពីនេះ អ្នកប្រើប្រាស់អាចបន្តប្រតិបត្តិការសរសេរ និងអានដោយផ្អែកលើការកំណត់រចនាសម្ព័ន្ធមូលដ្ឋាន UART ដែលបានកំណត់ជាមុន។

រូបភាពទី 14. គំនូសតាងលំហូរការចាប់ផ្តើម
គំនូសតាងលំហូរការចាប់ផ្តើម

“UART_Module_Example” កូដកម្មវិធីបង្ហាញពីប្រតិបត្តិការ API អាន និងសរសេរក្នុងលក្ខណៈរង្វិលជុំ។ តារាងលំហូរសម្រាប់វាត្រូវបានបង្ហាញក្នុងរូបភាពទី 15 ។ មុខងារ API ដែលប្រើរួមមាន UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() និង UARTM_GetReadBufferLength() ។ ការពិពណ៌នារបស់ពួកគេត្រូវបានផ្តល់ជូននៅក្នុងផ្នែក "ការពិពណ៌នា API" ។

រូបភាពទី 15. តារាងលំហូរនៃការសរសេរ និងអាន Examples
តារាងលំហូរនៃការសរសេរ និងអាន Examples

មានលេខកូដកម្មវិធី "UART_Bridge" មួយផ្សេងទៀតនៅក្រោមថត "Module_UART" ដែលពាក់ព័ន្ធ file ការពិពណ៌នាត្រូវបានណែនាំនៅក្នុងផ្នែក "រចនាសម្ព័ន្ធថត" ។ លេខកូដកម្មវិធី "UART_Bridge" ធ្វើឱ្យបណ្តាញ UART ពីរគឺ UART CH0 និង UART CH1 ហើយបន្ទាប់មកកំណត់ពិធីការទំនាក់ទំនងតាមបំណងរវាងឧបករណ៍ UART ទាំងពីរតាមរយៈរចនាសម្ព័ន្ធ COMMAND gCMD1 និង gCMD2 ។ ទាំងនេះត្រូវបានកំណត់នៅក្នុង uart_bridge.c ដូចដែលបានបង្ហាញខាងក្រោម។ UARTBridge_CMD1TypeDef gCMD1៖

អថេរ ឈ្មោះ ប្រភេទ ការពិពណ៌នា
uHeader u8 បឋមកថា
uCmd u8 បញ្ជា
uData[3] u8 ទិន្នន័យ

UARTBridge_CMD2TypeDef gCMD2៖

អថេរ ឈ្មោះ ប្រភេទ ការពិពណ៌នា
uHeader u8 បឋមកថា
uCmdA u8 បញ្ជា A
uCmdB u8 បញ្ជា B
uData[3] u8 ទិន្នន័យ

នៅក្នុងកូដកម្មវិធី “UART_Bridge” ប្រើ gCMD1 ដើម្បីទទួលទិន្នន័យជាកញ្ចប់ពាក្យបញ្ជា ហើយបន្ទាប់មកវិភាគវា។ បន្ទាប់មកយោងទៅតាមពិធីការទំនាក់ទំនងតាមតម្រូវការកំណត់ gCMD2 ជាកញ្ចប់ឆ្លើយតប ហើយបញ្ជូនវា។ ខាងក្រោមនេះគឺជាអតីតample នៃកញ្ចប់ពាក្យបញ្ជា gCMD1) និងកញ្ចប់ឆ្លើយតប (gCMD2) ។ កញ្ចប់ពាក្យបញ្ជា (UARTBridge_CMD1TypeDef gCMD1)៖

បៃ 0 បៃ 1 Byte 2 ~ Byte ៤
uHeader uCmd uData [3]
“ក” “1” “x, y, z”

កញ្ចប់ឆ្លើយតប (UARTBridge_CMD2TypeDef gCMD2)៖

បៃ 0 បៃ 1 បៃ 2 Byte 3 ~ Byte ៤
uHeader uCmdA uCmdB uData [3]
“ខ” “ក” “1” “x, y, z”

មុខរបរធនធាន
យក HT32F52352 ជាអតីតampដូច្នេះ ធនធានដែលកាន់កាប់ដោយម៉ូឌុល UART ត្រូវបានបង្ហាញខាងក្រោម។

HT32F52352
ទំហំរ៉ូម 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 មីក្រូយូអេសប៊ី ភ្ជាប់ទៅកុំព្យូទ័រ
កូដកម្មវិធី ផ្លូវទាញយក, file និងការកំណត់រចនាសម្ព័ន្ធថតត្រូវបានណែនាំនៅក្នុងផ្នែក "ការទាញយកធនធាន និងការរៀបចំ"។ ផ្លូវ៖ "\\application\Module_UART\UART_Module_Exampលេ”
Tera Term សូមមើលផ្នែក "កម្មវិធីស្ថានីយ"
Keil IDE Keil uVision V5.xx

ជាដំបូង សូមប្រើ HT32F52352 Starter Kit រួមបញ្ចូលគ្នាជាមួយមុខងារ Virtual COM Port (VCP) នៃ e-Link32 Lite សម្រាប់ការណែនាំកម្មវិធី UART ។ នេះតម្រូវឱ្យមានការរៀបចំបរិស្ថានដូចខាងក្រោមដើម្បីអនុវត្ត:

  1. មានចំណុចប្រទាក់ USB ពីរនៅលើក្តារ។ ប្រើខ្សែ USB ដើម្បីភ្ជាប់កុំព្យូទ័រ និងចំណុចប្រទាក់ eLink32 Lite នៅលើក្តារដូចបង្ហាញក្នុងរូបភាព 16-(a)។
  2. ដោយសារលេខកូដកម្មវិធីត្រូវប្រើមុខងារ e-Link32 Lite Virtual COM Port (VCP) ធានាថា PAx*2 និង DAP_Tx នៃ UART Jumper-J2*1 ត្រូវបានកាត់បន្ថយដោយប្រើ jumper ។ ទីតាំង J2 ត្រូវបានចង្អុលបង្ហាញដោយរូបភាព 16-(b) ។

ចំណាំ

  1. J2 នៅលើ Starter Kit មានជម្រើសពីរគឺ PAx និង DAP_Tx ខ្លី ឬ PAx និង RS232_Tx ខ្លី។ សូមមើលសៀវភៅណែនាំអ្នកប្រើប្រាស់ Starter Kit សម្រាប់មុខងារកំណត់លម្អិត។
  2. ទីតាំងម្ជុល MCU UART RX នៅលើ Starter Kits ខុសគ្នា។ អតីតample ប្រើ PAx ដើម្បីចង្អុលបង្ហាញម្ជុល RX ។

រូបភាពទី 16. HT32 Starter Kit Diagram
ដ្យាក្រាមប្លុកកញ្ចប់

ឥឡូវនេះ សូមប្រើបន្ទះគោលដៅអ្នកប្រើប្រាស់ រួមបញ្ចូលគ្នាជាមួយមុខងារ Virtual COM Port (VCP) នៃ e-Link32 Pro សម្រាប់ការណែនាំកម្មវិធី UART ។ នេះតម្រូវឱ្យមានការរៀបចំបរិស្ថានដូចខាងក្រោមដើម្បីអនុវត្ត:

  1. ម្ខាងនៃ e-Link32 Pro ត្រូវបានភ្ជាប់ទៅកុំព្យូទ័រដោយប្រើខ្សែ Mini USB ហើយផ្នែកម្ខាងទៀតត្រូវបានភ្ជាប់ទៅក្រុមប្រឹក្សាភិបាលគោលដៅអ្នកប្រើប្រាស់តាមរយៈខ្សែពណ៌ប្រផេះ 10 ប៊ីតរបស់វា។ ការតភ្ជាប់រវាងចំណុចប្រទាក់ SWD នៃខ្សែ និងបន្ទះគោលដៅត្រូវបានអនុវត្តដោយប្រើបន្ទាត់ Dupont ដូចបង្ហាញក្នុងរូបភាព 17-(a)។
  2. ម្ជុលទំនាក់ទំនងសៀរៀលនៃ e-Link32 Pro គឺ Pin #7 VCOM_RXD និង Pin #8- VCOM_TXD ។ ទាំងនេះគួរតែត្រូវបានភ្ជាប់ទៅម្ជុល TX និង RX នៃបន្ទះគោលដៅអ្នកប្រើប្រាស់ ដូចបង្ហាញក្នុងរូបភាព 17-(b)។
    រូបភាពទី 17. e-Link32 Pro + User Target Board Block Diagram
    ក្រុមប្រឹក្សាគោលដៅអ្នកប្រើប្រាស់

ការចងក្រងនិងការធ្វើតេស្ត
ផ្នែកនេះនឹងយក “application\Module_UART\UART_Module_Example” ជាអតីតample ដើម្បីណែនាំដំណើរការចងក្រង និងសាកល្បង។ មុននេះ ត្រូវប្រាកដថាការរៀបចំទាំងអស់ដែលបានពិពណ៌នានៅក្នុងផ្នែកមុនត្រូវបានអនុវត្ត ហើយកម្មវិធីស្ថានីយ Tera Term ត្រូវបានទាញយក។

ជំហានប្រតិបត្តិការលម្អិតត្រូវបានសង្ខេបដូចខាងក្រោម។
ជំហាន 1. ការធ្វើតេស្តបើកថាមពល

រៀបចំបរិយាកាសផ្នែករឹង ដូចដែលបានពិពណ៌នានៅក្នុងផ្នែកមុន។ បន្ទាប់ពីបើកភ្លើង LED ថាមពល D9 នៅខាងឆ្វេងខាងក្រោមនៃ Starter Kit នឹងត្រូវបានបំភ្លឺ។ LED D1 USB នៅលើ e-Link32 Lite នៅខាងស្តាំខាងលើនឹងត្រូវបានបំភ្លឺបន្ទាប់ពីការរាប់បញ្ចូល USB បានបញ្ចប់។ ប្រសិនបើ D1 មិនត្រូវបានបំភ្លឺបន្ទាប់ពីរយៈពេលយូរ សូមបញ្ជាក់ថាតើខ្សែ USB អាចទំនាក់ទំនងបានដែរឬទេ។ បើមិនដូច្នោះទេ យកវាចេញ ហើយបញ្ចូលម្តងទៀត។

ជំហានទី 2. បង្កើតគម្រោងមួយ។
បើកកម្មវិធី\Module_UART\UART_Module_Exampលើ ថត ចុច លើ _CreateProject.bat file ដើម្បីបង្កើតគម្រោងដូចបង្ហាញក្នុងរូបភាពទី 18។ ដោយសារចំណាំកម្មវិធីនេះប្រើ HT32F52352 Starter Kit សូមបើកគម្រោង Keil IDE “Project_52352.uvprojx” ដែលមានទីតាំងនៅក្រោមថត MDK_ARMv5។

រូបភាពទី 18. ប្រតិបត្តិ _CreateProject.bat ដើម្បីបង្កើតគម្រោង
បង្កើតគម្រោង

ជំហានទី 3. ចងក្រង និងកម្មវិធី
បន្ទាប់​ពី​បាន​បើក​គម្រោង​រួច សូម​ចុច​លើ “Build” (ឬ​ប្រើ​ផ្លូវកាត់ “F7”) រួច​ចុច​លើ “Download” (ឬ​ប្រើ​ផ្លូវកាត់ “F8”)។ បន្ទាប់ពីនេះ លទ្ធផលបង្កើត និងទាញយកនឹងត្រូវបានបង្ហាញនៅក្នុងបង្អួច Build Output ។ សូមមើលរូបភាពទី 19 ។

រូបភាពទី 19. បង្កើត និងទាញយកលទ្ធផល
បង្កើត និងទាញយកលទ្ធផល

ជំហានទី 4. បើកកម្មវិធី Tera Term ហើយកំណត់រចនាសម្ព័ន្ធច្រកសៀរៀល
បើកកម្មវិធី Tera Term និងច្រក COM ។ យកចិត្តទុកដាក់ថាតើលេខច្រក COM ដែលបង្កើតដោយ Starter Kit ត្រឹមត្រូវឬអត់។ បន្ទាប់មកចុចលើ "Setup >> Serial Port" ដើម្បីបញ្ចូលចំណុចប្រទាក់កំណត់រចនាសម្ព័ន្ធ។ ការកំណត់រចនាសម្ព័ន្ធចំណុចប្រទាក់ UART នៃកូដកម្មវិធី "Module_UART" ត្រូវបានពិពណ៌នានៅក្នុងផ្នែក "កម្មវិធីស្ថានីយ" ។ លទ្ធផលនៃការដំឡើងត្រូវបានបង្ហាញក្នុងរូបភាពទី 20 ។

រូបភាពទី 20. Tera Term Serial Port Setup Result
កំណត់លទ្ធផល
ជំហានទី 5. កំណត់ប្រព័ន្ធឡើងវិញ និងសាកល្បង
ចុចគ្រាប់ចុចកំណត់ឡើងវិញ SK - B1 កំណត់ឡើងវិញ។ បន្ទាប់ពីនេះ "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” ការធ្វើតេស្តមុខងារកូដកម្មវិធី – ទទួល
ការធ្វើតេស្តមុខងារកូដកម្មវិធី

ការណែនាំអំពីការប្តូរ
ផ្នែកនេះនឹងណែនាំពីរបៀបបញ្ចូល APIs ទៅក្នុងគម្រោងរបស់អ្នកប្រើប្រាស់។
ជំហានទី 1 ។ បន្ថែម uaart_module.c file ចូលទៅក្នុងគម្រោង។ ចុចកណ្ដុរស្ដាំលើថតអ្នកប្រើប្រាស់។ ជ្រើសរើស "បន្ថែមបច្ចុប្បន្ន Files ទៅក្រុម 'អ្នកប្រើប្រាស់'…” បន្ទាប់មកជ្រើសរើស uart_module.c file ហើយចុចលើ “Add” ដូចបង្ហាញក្នុងរូបភាពទី 23។ សូមមើលផ្នែក “Directory Structure” សម្រាប់ផ្នែក file ការពិពណ៌នាផ្លូវ។

រូបភាពទី 23. បន្ថែម uart_module.c File ទៅគម្រោង
File ទៅគម្រោង

ជំហានទី 2. បន្ថែម ring_buffer.c file ចូលទៅក្នុងគម្រោង។ ចុចកណ្ដុរស្ដាំលើថតអ្នកប្រើប្រាស់។ ជ្រើសរើស "បន្ថែមបច្ចុប្បន្ន Files ទៅក្រុម 'អ្នកប្រើប្រាស់'…” បន្ទាប់មកជ្រើសរើស ring_buffer.c file ហើយចុចលើ “Add” ដូចបង្ហាញក្នុងរូបភាពទី 24។\ សូមមើលផ្នែក “Directory Structure” សម្រាប់ផ្នែក file ការពិពណ៌នាផ្លូវ។
រូបភាពទី 24. បន្ថែម ring_buffer.c File ទៅគម្រោង 
File ទៅគម្រោង

ជំហានទី 3. រួមបញ្ចូលបឋមកថា API file ចូលទៅក្នុងការចាប់ផ្តើមនៃ main.c ដូចបង្ហាញក្នុងរូបភាពទី 25។ (Ext: #include “middleware/uart_module.h”)
រូបភាពទី 25. រួមបញ្ចូលបឋមកថា API File ទៅ main.c
រួមបញ្ចូលបឋមកថា API File

ជំហានទី 4. អនុវត្តការកំណត់ដែលត្រូវការសម្រាប់ការទំនាក់ទំនង UART ដោយប្រើ ht32_board_config.h file. នេះត្រូវបានណែនាំយ៉ាងលម្អិតនៅក្នុងផ្នែក "ការកំណត់ការពិពណ៌នា" និង "ការកំណត់ការកែប្រែ និងសំណួរគេសួរញឹកញាប់" ។

ការកំណត់ការកែប្រែ និងសំណួរគេសួរញឹកញាប់ 

ផ្នែកនេះនឹងណែនាំពីរបៀបកែប្រែការកំណត់ UART និងពន្យល់សំណួរទូទៅមួយចំនួនដែលជួបប្រទះអំឡុងពេលប្រើប្រាស់។

ផ្លាស់ប្តូរ UART Pin Assignment 

  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។ ការកែប្រែដែលត្រូវគ្នាត្រូវបានអនុវត្តដោយប្រើបន្ទាត់កូដ 120~126 ក្នុង ht32_board_config.h ដូចដែលបានបង្ហាញដោយប្រអប់ចំនុចក្រហមក្នុងរូបភាព ២៨.

រូបភាពទី 28. បន្ថែមឆានែល UART
ឆានែល UART

សំណួរគេសួរញឹកញាប់
Q: នៅក្នុងជំហានទី 5 នៃផ្នែកចងក្រង និងតេស្ត ការធ្វើតេស្តមុខងារបញ្ជូនគឺធម្មតា។ នៅទីនេះ “ABCThis is test!” សារត្រូវបានបង្ហាញដោយជោគជ័យ ប៉ុន្តែសម្រាប់មុខងារទទួល ហេតុអ្វីបានជាតម្លៃបញ្ចូលទាំងប្រាំមិនត្រូវបានត្រឡប់ និងបង្ហាញ?
A: ពិនិត្យមើលថាតើម្ជុល MCU UART RX និង DAP_Tx នៃ UART Jumper-J2 ត្រូវបានកាត់បន្ថយដោយប្រើ jumper ដែរឬទេ។ ដោយសារលេខកូដកម្មវិធី “Module_UART” ត្រូវការប្រើ Virtual COM Port (VCP) នៃ e-Link32 Lite ការកំណត់សៀគ្វីខ្លីគួរតែត្រូវបានអនុវត្តទៅម្ជុលពីរខាងឆ្វេងនៃ UART Jumper-J2 ដូចបង្ហាញក្នុងរូបភាពទី 29 ។

រូបភាពទី 29. ការកំណត់ UART Jumper-J2
UART Jumper

សំណួរ៖ បន្ទាប់ពី កំពុងដំណើរការ "Build" (ឬផ្លូវកាត់ "F7") សារកំហុសលេចឡើងដែលបង្ហាញថាកំណែបណ្ណាល័យកម្មវិធីបង្កប់ចាស់ជាងអ្វីដែលចាំបាច់? សូមមើលរូបភាពទី 30 ។
A: ការអនុវត្តកូដកម្មវិធី "Module_UART" ចាំបាច់ត្រូវរួមបញ្ចូល uaart_module.c/h files ដែលមានតម្រូវការសម្រាប់កំណែបណ្ណាល័យកម្មវិធីបង្កប់ជាក់លាក់។ នៅពេលដែលសារកំហុសបែបនេះលេចឡើង វាមានន័យថាបណ្ណាល័យកម្មវិធីបង្កប់ដែលប្រើបច្ចុប្បន្នគឺជាកំណែចាស់។ ដូច្នេះ វាចាំបាច់ក្នុងការទាញយកកំណែថ្មីបំផុតតាមរយៈតំណភ្ជាប់ដែលបានផ្តល់នៅក្នុងផ្នែក "បណ្ណាល័យកម្មវិធីបង្កប់" ។

រូបភាពទី 30. សារកំហុសកំណែបណ្ណាល័យកម្មវិធីបង្កប់
សារកំហុសកំណែ

សេចក្តីសន្និដ្ឋាន

ឯកសារនេះបានផ្តល់ការណែនាំជាមូលដ្ឋានដើម្បីជួយអ្នកប្រើប្រាស់ឱ្យយល់កាន់តែច្បាស់អំពីកូដកម្មវិធី "Module_UART" និងពិធីការទំនាក់ទំនង UART ។ នេះត្រូវបានបន្តដោយការទាញយក និងការរៀបចំធនធាន។ ជំពូកពិពណ៌នាមុខងារបានណែនាំ file រចនាសម្ព័ន្ធថត ស្ថាបត្យកម្ម API ការពិពណ៌នា API និងការប្រើប្រាស់ API ឧamples ។ ជំពូកសេចក្តីណែនាំសម្រាប់ការប្រើប្រាស់បានបង្ហាញពីការរៀបចំបរិស្ថាន ការចងក្រង និងការធ្វើតេស្តកូដកម្មវិធី “Module_UART” ។ វាក៏បានផ្តល់ការណែនាំសម្រាប់ការប្តូរកូដ និងការកំណត់ការកែប្រែ ក៏ដូចជាការពន្យល់អំពីបញ្ហាទូទៅមួយចំនួនដែលអាចជួបប្រទះ។ ទាំងអស់នេះរួមបញ្ចូលគ្នានឹងអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់យល់បានយ៉ាងឆាប់រហ័សពីរបៀបប្រើប្រាស់ APIs និងកាត់បន្ថយពេលវេលាដើម្បីចាប់ផ្តើម។

ឯកសារយោង

សម្រាប់ព័ត៌មានបន្ថែម សូមមើល Holtek webគេហទំព័រ៖ www.holtek.com

កំណែ និងការកែប្រែព័ត៌មាន

កាលបរិច្ឆេទ អ្នកនិពន្ធ ចេញផ្សាយ ព័ត៌មានកែប្រែ
2022.04.30 蔡期育(Chi-Yu Tsai) វី៣៥ កំណែដំបូង

ការបដិសេធ

ព័ត៌មានទាំងអស់ ពាណិជ្ជសញ្ញា និមិត្តសញ្ញា ក្រាហ្វិក វីដេអូ ឃ្លីបអូឌីយ៉ូ តំណភ្ជាប់ និងធាតុផ្សេងទៀតដែលលេចឡើងនៅលើនេះ។ 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 Application Note, HT32 MCU UART, Application Note, HT32, MCU UART Application Note, HT32 MCU UART Application Note

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *