HOLTEK HT32 MCU UART Application Note ຄູ່ມືຜູ້ໃຊ້
ຫມາຍເຫດຄໍາຮ້ອງສະຫມັກ HOLTEK HT32 MCU UART

ແນະນຳ

Universal Asynchronous Receiver/Transmitter – UART ເປັນ​ຕົວ​ໂຕ້​ຕອບ​ການ​ສົ່ງ​ຂໍ້​ມູນ serial ທີ່​ໃຊ້​ກັນ​ຢ່າງ​ກວ້າງ​ຂວາງ​ທີ່​ໃຫ້​ການ​ສົ່ງ​ຂໍ້​ມູນ asynchronous full-duplex ຢືດ​ຢຸ່ນ. ລະຫັດແອັບພລິເຄຊັນ "Module_UART" ທີ່ລະບຸໄວ້ໃນບັນທຶກແອັບພລິເຄຊັນນີ້ໃຊ້ TX/RX ຂັດຂວາງກັບຊອບແວ ring buffers ເພື່ອປະຕິບັດຫນ້າທີ່ການສົ່ງ / ຮັບ UART ງ່າຍໆໂດຍຜ່ານ APIs, ເຊິ່ງຫນ້າທີ່ທີ່ກ່ຽວຂ້ອງແມ່ນອະທິບາຍຂ້າງລຸ່ມນີ້. ນີ້ຈະງ່າຍຂະບວນການສົ່ງຂໍ້ມູນທັງຫມົດແລະອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເຂົ້າໃຈໄວແລະປະຕິບັດຄໍາຮ້ອງສະຫມັກການສື່ສານ UART.

  • ຟັງຊັນການສົ່ງ/ຮັບ: byte read, byte write, buffer read, buffer write, ແລະອື່ນໆ.
  • ຟັງຊັນສະຖານະ: ໄດ້ຮັບຄວາມຍາວ buffer, ສະຖານະ TX, ແລະອື່ນໆ.

ເອກະສານນີ້ທໍາອິດຈະແນະນໍາອະນຸສັນຍາການສື່ສານ UART, ເຊິ່ງຈະຊ່ວຍໃຫ້ຜູ້ໃຊ້ເຂົ້າໃຈການສື່ສານ UART ຈາກຫຼັກການໄປສູ່ຄໍາຮ້ອງສະຫມັກ. ນີ້ແມ່ນປະຕິບັດຕາມໂດຍການດາວໂຫຼດແລະການກະກຽມຊັບພະຍາກອນທີ່ຈໍາເປັນສໍາລັບລະຫັດຄໍາຮ້ອງສະຫມັກ, ລວມທັງຫ້ອງສະຫມຸດ firmware, ດາວໂຫລດລະຫັດຄໍາຮ້ອງສະຫມັກ, file ແລະການຕັ້ງຄ່າໄດເລກະທໍລີເຊັ່ນດຽວກັນກັບການແນະນໍາເຄື່ອງມືຊອບແວ terminal ທີ່ໃຊ້ໃນບັນທຶກຄໍາຮ້ອງສະຫມັກ. ໃນບົດອະທິບາຍຫນ້າທີ່, ໂຄງສ້າງໄດເລກະທໍລີລະຫັດແອັບພລິເຄຊັນ, ການຕັ້ງຄ່າພາລາມິເຕີແລະຄໍາອະທິບາຍ API ຈະຖືກນໍາສະເຫນີ. ການນຳໃຊ້ API ຈະຖືກອະທິບາຍໂດຍໃຊ້ລະຫັດແອັບພລິເຄຊັນ “Module_UART” ແລະການບໍລິໂພກຊັບພະຍາກອນ Flash/RAM ທີ່ຕ້ອງການສຳລັບ APIs ຈະຖືກລະບຸໄວ້ເຊັ່ນກັນ. ບົດຄໍາແນະນໍາສໍາລັບການນໍາໃຊ້ຈະນໍາພາຜູ້ໃຊ້ໂດຍຜ່ານຂັ້ນຕອນຂອງການກະກຽມສິ່ງແວດລ້ອມ, ການລວບລວມແລະການທົດສອບເພື່ອຢືນຢັນວ່າລະຫັດຄໍາຮ້ອງສະຫມັກຈະເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຫຼັງຈາກນັ້ນ, ມັນຈະໃຫ້ຄໍາແນະນໍາທີ່ອະທິບາຍວິທີການລວມ APIs ເຂົ້າໄປໃນໂຄງການຂອງຜູ້ໃຊ້ແລະສຸດທ້າຍສະຫນອງການອ້າງອີງສໍາລັບການດັດແປງແລະບັນຫາທົ່ວໄປທີ່ອາດຈະພົບ.

ຕົວຫຍໍ້ທີ່ໃຊ້: 

  • UART: Universal Asynchronous ຮັບ / Transmitter
  • API: Application Programming Interface
  • LSB: ຫນ້ອຍທີ່ມີຄວາມສໍາຄັນຫນ້ອຍ
  • MSB: Bit ທີ່​ສໍາ​ຄັນ​ທີ່​ສຸດ​
  • PC: ຄອມພິວເຕີສ່ວນບຸກຄົນ
  • SK: ຊຸດເລີ່ມຕົ້ນ, ກະດານພັດທະນາ HT32
  • IDE: ສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານ

ອະນຸສັນຍາການສື່ສານ UART

UART ແມ່ນປະເພດການສື່ສານ serial ຂອງການໂຕ້ຕອບທີ່ປະຕິບັດການແປງຂໍ້ມູນຂະຫນານກັບ serial ຢູ່ເຄື່ອງສົ່ງຂອງມັນແລະຫຼັງຈາກນັ້ນຕິດຕໍ່ສື່ສານ serially ກັບເຄື່ອງຮັບທີ່ຄ້າຍຄືກັນ. ຜູ້ຮັບຫຼັງຈາກນັ້ນປະຕິບັດການແປງຂໍ້ມູນ serial-to-parallel ຫຼັງຈາກຮັບຂໍ້ມູນ. ຮູບທີ 1 ສະແດງແຜນວາດ schematic ຂອງການສື່ສານ serial ສະແດງໃຫ້ເຫັນວິທີການໂອນຂໍ້ມູນໃນລໍາດັບ bitwise. ເພາະສະນັ້ນ, ສໍາລັບການສື່ສານສອງທິດທາງລະຫວ່າງເຄື່ອງສົ່ງແລະເຄື່ອງຮັບ, ພຽງແຕ່ສອງສາຍ, TX ແລະ RX, ຈໍາເປັນຕ້ອງໄດ້ໂອນຂໍ້ມູນເປັນລໍາດັບລະຫວ່າງກັນແລະກັນ. TX ແມ່ນ pin ທີ່ UART ສົ່ງຂໍ້ມູນ serial ແລະເຊື່ອມຕໍ່ກັບ pin RX ຂອງເຄື່ອງຮັບ. ດັ່ງນັ້ນອຸປະກອນສົ່ງແລະເຄື່ອງຮັບຈໍາເປັນຕ້ອງເຊື່ອມຕໍ່ຂ້າມ PINs TX ແລະ RX ຂອງພວກເຂົາເພື່ອປະຕິບັດການສື່ສານສອງທາງ UART, ດັ່ງທີ່ສະແດງຢູ່ໃນ ຮູບ 2.

ຮູບທີ 1. ແຜນວາດການສື່ສານແບບ Serial
ແຜນວາດການສື່ສານ Serial

ຮູບທີ 2. UART Circuit Diagram
ແຜນວາດວົງຈອນ UART

ໃນລະຫວ່າງການສື່ສານ UART serial, ການສົ່ງຂໍ້ມູນແມ່ນ asynchronous. ນີ້ຫມາຍຄວາມວ່າບໍ່ມີໂມງຫຼືສັນຍານ synchronization ອື່ນໆລະຫວ່າງເຄື່ອງສົ່ງແລະເຄື່ອງຮັບ. ໃນ​ທີ່​ນີ້​ອັດ​ຕາ​ການ baud ໄດ້​ຖືກ​ນໍາ​ໃຊ້​, ຊຶ່ງ​ເປັນ​ຄວາມ​ໄວ​ການ​ສົ່ງ / ການ​ຮັບ​ຂໍ້​ມູນ serial ແລະ​ທີ່​ກໍາ​ນົດ​ໂດຍ​ທັງ​ສອງ​ຝ່າຍ​ລ່ວງ​ຫນ້າ​ຂອງ​ການ​ໂອນ​ຂໍ້​ມູນ​. ນອກຈາກນັ້ນ, bits ພິເສດເຊັ່ນ start ແລະ stop bits ໄດ້ຖືກເພີ່ມໃສ່ຈຸດເລີ່ມຕົ້ນແລະຈຸດສິ້ນສຸດຂອງຊຸດຂໍ້ມູນເພື່ອສ້າງເປັນຊຸດຂໍ້ມູນ UART ທີ່ສົມບູນ. ຮູບທີ 3 ສະແດງໂຄງສ້າງແພັກເກັດຂໍ້ມູນ UART ໃນຂະນະທີ່ຮູບທີ 4 ສະແດງຊຸດຂໍ້ມູນ UART 8-bit ໂດຍບໍ່ມີ parity bit.
ຮູບ 3. UART Data Packet Structure
ໂຄງສ້າງຊຸດຂໍ້ມູນ UART

ຮູບທີ 4. UART 8-bit Data Packet Format
ຮູບແບບຊຸດຂໍ້ມູນ
ແຕ່ລະສ່ວນຂອງຊຸດຂໍ້ມູນ UART ໄດ້ຖືກແນະນໍາຕາມລໍາດັບຂ້າງລຸ່ມນີ້.

  • ເລີ່ມ Bit: ນີ້ຊີ້ໃຫ້ເຫັນເຖິງການເລີ່ມຕົ້ນຂອງຊຸດຂໍ້ມູນ. PIN UART TX ປົກກະຕິແລ້ວຍັງຄົງຢູ່ໃນລະດັບ logic ສູງກ່ອນທີ່ຈະເລີ່ມຕົ້ນລະບົບສາຍສົ່ງ. ຖ້າການສົ່ງຂໍ້ມູນເລີ່ມຕົ້ນ, ເຄື່ອງສົ່ງສັນຍານ UART ຈະດຶງ PIN ຂອງ TX ຈາກສູງໄປຫາຕ່ໍາ, ເຊັ່ນ, ຈາກ 1 ຫາ 0, ແລະຫຼັງຈາກນັ້ນຖືມັນຢູ່ທີ່ນັ້ນສໍາລັບຮອບຫນຶ່ງໂມງ. ເຄື່ອງຮັບ UART ຈະເລີ່ມອ່ານຂໍ້ມູນເມື່ອມີການກວດພົບການປ່ຽນຈາກສູງຫາຕໍ່າຢູ່ pin RX.
  • ຂໍ້ມູນ: ນີ້​ແມ່ນ​ການ​ໂອນ​ຂໍ້​ມູນ​ຕົວ​ຈິງ​, ມີ​ຄວາມ​ຍາວ​ຂອງ​ຂໍ້​ມູນ​ຂອງ 7​, 8 ຫຼື 9 bits​. ຂໍ້ມູນຖືກໂອນໂດຍປົກກະຕິກັບ LSB ກ່ອນ.
  • Parity Bit: ຈໍານວນຂອງເຫດຜົນ "1" ໃນຂໍ້ມູນຖືກນໍາໃຊ້ເພື່ອກໍານົດວ່າຂໍ້ມູນໃດມີການປ່ຽນແປງໃນລະຫວ່າງການສົ່ງ. ສໍາລັບຄວາມສະເຫມີພາບ, ຈໍານວນທັງຫມົດຂອງ logic "1" ໃນຂໍ້ມູນຄວນຈະເປັນຕົວເລກຄູ່, ກົງກັນຂ້າມ, ຈໍານວນທັງຫມົດຂອງເຫດຜົນ "1" ໃນຂໍ້ມູນຄວນຈະເປັນຕົວເລກຄີກສໍາລັບ parity ຄີກ.
  • Stop Bit: ນີ້ຊີ້ໃຫ້ເຫັນເຖິງຈຸດສິ້ນສຸດຂອງຊຸດຂໍ້ມູນ, ບ່ອນທີ່ເຄື່ອງສົ່ງຂໍ້ມູນ UART ຈະດຶງ PIN ຂອງ TX ຈາກຕ່ໍາຫາສູງ, ເຊັ່ນ, ຈາກ 0 ຫາ 1, ແລະຫຼັງຈາກນັ້ນຖືມັນຢູ່ທີ່ນັ້ນສໍາລັບໄລຍະເວລາ 1 ຫຼື 2-bit.

ດັ່ງທີ່ໄດ້ກ່າວມາກ່ອນ, ເນື່ອງຈາກບໍ່ມີສັນຍານໂມງໃນວົງຈອນ UART, ຄວາມໄວການສົ່ງ / ການຮັບຂໍ້ມູນ serial ດຽວກັນ, ເຊິ່ງເອີ້ນວ່າອັດຕາ baud, ຕ້ອງໄດ້ຮັບການກໍານົດລະຫວ່າງເຄື່ອງສົ່ງແລະເຄື່ອງຮັບເພື່ອປະຕິບັດການສົ່ງຂໍ້ມູນທີ່ບໍ່ມີຄວາມຜິດພາດ. ອັດຕາ baud ຖືກກໍານົດໂດຍຈໍານວນຂອງບິດຕໍ່ວິນາທີ, ໃນ bps (ບິດຕໍ່ວິນາທີ). ບາງອັດຕາ baud ມາດຕະຖານແລະທົ່ວໄປແມ່ນ 4800bps, 9600bps, 19200bps, 115200bps, ແລະອື່ນໆ. ເວລາທີ່ສອດຄ້ອງກັນທີ່ຕ້ອງການສໍາລັບການໂອນຂໍ້ມູນດຽວແມ່ນສະແດງຢູ່ຂ້າງລຸ່ມນີ້.
ຕາຕະລາງ 1. ອັດຕາ Baud ທຽບກັບ 1-Bit Transmission Time 

ອັດຕາ Baudການສົ່ງສັນຍານ 1-ບິດ ເວລາ
4800bps208.33µs
9600bps104.16µs
19200bps52.08µs
115200bps8.68µs

ການດາວໂຫຼດຊັບພະຍາກອນ ແລະການກະກຽມ

ບົດນີ້ຈະແນະນໍາລະຫັດຄໍາຮ້ອງສະຫມັກແລະເຄື່ອງມືຊອບແວທີ່ໃຊ້, ເຊັ່ນດຽວກັນກັບວິທີການກໍາຫນົດຄ່າໄດເລກະທໍລີແລະ file ເສັ້ນທາງ.

ຫໍສະໝຸດເຟີມແວ 

ທໍາອິດ, ໃຫ້ແນ່ໃຈວ່າຫ້ອງສະຫມຸດເຟີມແວ Holtek HT32 ໄດ້ຖືກດາວໂຫຼດກ່ອນທີ່ຈະໃຊ້ລະຫັດແອັບພລິເຄຊັນ. ການເຊື່ອມຕໍ່ການດາວໂຫຼດແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້. ໃນທີ່ນີ້ມີສອງທາງເລືອກ, HT32_M0p_Vyyyymmdd.zip ສໍາລັບຊຸດ HT32F5xxxx ແລະ HT32_M3_Vyyyymmdd.zip ສໍາລັບຊຸດ HT32F1xxxx. ດາວນ໌ໂຫລດແລະ unzip ທີ່ຕ້ອງການ 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 ແລະການຕັ້ງຄ່າ Directory
ເນື່ອງຈາກລະຫັດຄໍາຮ້ອງສະຫມັກບໍ່ມີຫ້ອງສະຫມຸດເຟີມແວ HT32 files, ລະຫັດຄໍາຮ້ອງສະຫມັກແລະຫ້ອງສະຫມຸດ firmware unzipped files ຄວນຖືກວາງໄວ້ໃນເສັ້ນທາງທີ່ຖືກຕ້ອງກ່ອນທີ່ຈະເລີ່ມຕົ້ນການລວບລວມ. ລະຫັດໄປສະນີຂອງແອັບພລິເຄຊັນ file ປົກກະຕິແລ້ວມີຫນຶ່ງຫຼືຫຼາຍໂຟນເດີເຊັ່ນ: ຄໍາຮ້ອງສະຫມັກແລະຫ້ອງສະຫມຸດ, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 7. ວາງໂຟນເດີຄໍາຮ້ອງສະຫມັກພາຍໃຕ້ໄດເລກະທໍລີຮາກຂອງເຟີມແວ HT32 ເພື່ອເຮັດສໍາເລັດ. file ການຕັ້ງຄ່າເສັ້ນທາງ, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 8. ອີກທາງເລືອກ, unzip ລະຫັດຄໍາຮ້ອງສະຫມັກແລະຫ້ອງສະຫມຸດ firmware HT32 ພ້ອມກັນເຂົ້າໄປໃນເສັ້ນທາງດຽວກັນເພື່ອບັນລຸຜົນໄດ້ຮັບການຕັ້ງຄ່າດຽວກັນ.

ຮູບ 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip ເນື້ອໃນ
ເນື້ອໃນ

ຮູບ 8. ເສັ້ນທາງການບີບອັດ
ເສັ້ນທາງການບີບອັດ

Software Terminal
ລະຫັດແອັບພລິເຄຊັນສາມາດໂອນຂໍ້ຄວາມຜ່ານພອດ COM ເພື່ອປະຕິບັດການເລືອກຟັງຊັນ ຫຼືການສະແດງສະຖານະ. ອັນນີ້ຮຽກຮ້ອງໃຫ້ຝ່າຍເຈົ້າພາບມີຊອບແວ terminal ຕິດຕັ້ງລ່ວງຫນ້າ. ຜູ້ໃຊ້ສາມາດເລືອກຊອບແວການເຊື່ອມຕໍ່ທີ່ເຫມາະສົມ, ຫຼືໃຊ້ຊອບແວທີ່ມີໃບອະນຸຍາດຟຣີເຊັ່ນ Tera Term. ໃນລະຫັດຄໍາຮ້ອງສະຫມັກ, ຊ່ອງທາງ UART ໄດ້ຖືກຕັ້ງຄ່າດ້ວຍຄວາມຍາວຄໍາສັບຂອງ 8-bits, ບໍ່ມີ parity, 1 stop bit ແລະອັດຕາ baud ຂອງ 115200bps.

ຄໍາອະທິບາຍຫນ້າທີ່

ບົດນີ້ຈະໃຫ້ຄໍາອະທິບາຍທີ່ເປັນປະໂຫຍດສໍາລັບລະຫັດຄໍາຮ້ອງສະຫມັກ, ລວມທັງຂໍ້ມູນກ່ຽວກັບໂຄງສ້າງໄດເລກະທໍລີ, ສະຖາປັດຕະຍະກໍາ API, ຄໍາອະທິບາຍການຕັ້ງຄ່າ, ແລະອື່ນໆ.

ໂຄງສ້າງໄດເລກະທໍລີ
ລະຫັດຄໍາຮ້ອງສະຫມັກ file ມີໂຟນເດີແອັບພລິເຄຊັນ. ຊັ້ນຕໍ່ໄປແມ່ນໂຟນເດີ "Module_UART" ເຊິ່ງປະກອບດ້ວຍສອງໂຄງການຄໍາຮ້ອງສະຫມັກ, "UART_Module_Example” ແລະ “UART_Bridge”. ທີ່ກ່ຽວຂ້ອງ files ແມ່ນລະບຸໄວ້ແລະອະທິບາຍຂ້າງລຸ່ມນີ້.
ຕາຕະລາງ 2. Application Code Directory Structure

ໂຟນເດີ / File ຊື່ລາຍລະອຽດ
\\application\Module_UART\UART_Module_Example*1
_CreateProject.batBatch scripts ສໍາລັບການສ້າງໂຄງການ files
_ProjectSource.iniການລິເລີ່ມ file ສໍາລັບການເພີ່ມລະຫັດແຫຼ່ງກັບໂຄງການ
ht32_board_config.hຕັ້ງຄ່າ file ກ່ຽວ​ຂ້ອງ​ກັບ​ການ​ມອບ​ຫມາຍ I/O peripheral IC
ht32fxxxxx_01_it.cຂັດຂວາງໂຄງການບໍລິການ file
main.cລະຫັດແຫຼ່ງໂຄງການຕົ້ນຕໍ
\\application\Module_UART\UART_Bridge*2
_CreateProject.batBatch scripts ສໍາລັບການສ້າງໂຄງການ files
_ProjectSource.iniການລິເລີ່ມ file ສໍາລັບການເພີ່ມລະຫັດແຫຼ່ງກັບໂຄງການ
ht32_board_config.hຕັ້ງຄ່າ file ກ່ຽວ​ຂ້ອງ​ກັບ​ການ​ມອບ​ຫມາຍ I/O peripheral IC
ht32fxxxxx_01_it.cຂັດຂວາງໂຄງການບໍລິການ file
main.cລະຫັດແຫຼ່ງຂອງໂຄງການຕົ້ນຕໍ
uart_bridge.h uart_bridge.cຫົວຂົວ UART file ແລະລະຫັດແຫຼ່ງ file
\\utilities\middleware
uart_module.h*3 uart_module.c*3ສ່ວນຫົວ API file ແລະລະຫັດແຫຼ່ງ file
\\ ເຄື່ອງໃຊ້ທົ່ວໄປ
ringbuffer.h ring_buffer.cຊອບ​ແວ ring buffer header​ file ແລະລະຫັດແຫຼ່ງ file

ໝາຍເຫດ: 

  1. ໃນ “UART_Module_Example” ລະຫັດຄໍາຮ້ອງສະຫມັກ, API ອ່ານແລະຂຽນການດໍາເນີນການແມ່ນປະຕິບັດໃນລັກສະນະ loopback, ອ້າງເຖິງ “API Usage Examples” ພາກສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
  2.  ໃນລະຫັດແອັບພລິເຄຊັນ “UART_Bridge”, ສອງຊ່ອງ UART, UART CH0 ແລະ UART CH1, ຖືກເປີດໃຊ້ງານ, ແລະໂປຣໂຕຄໍການສື່ສານແບບກຳນົດເອງຜ່ານໂຄງສ້າງ COMMAND ຖືກປະຕິບັດລະຫວ່າງສອງອຸປະກອນ UART. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ “API Usage Examples” ພາກ.
  3. ລະຫັດແອັບພລິເຄຊັນຕ້ອງໃຊ້ uart_module.c/h files ທີ່ມີຄວາມຕ້ອງການສະບັບພາສາຫ້ອງສະຫມຸດ firmware. ຄວາມຕ້ອງການອາດຈະມີການປ່ຽນແປງເວລາໂດຍອີງຕາມການປັບປຸງ. ເພື່ອຢືນຢັນຄວາມຕ້ອງການສະບັບຂອງຫໍສະຫມຸດ firmware ໃນປັດຈຸບັນ, ອ້າງອີງເຖິງການກວດສອບການເພິ່ງພາອາໄສເນື້ອຫາໂດຍການຊອກຫາຄໍາສໍາຄັນ "ການກວດສອບການເພິ່ງພາອາໄສ" ໃນ main.c. file. ຖ້າເວີຊັ່ນຫ້ອງສະໝຸດເຟີມແວບໍ່ຕອບສະໜອງໄດ້ຕາມຄວາມຕ້ອງການ, ດາວໂຫລດເວີຊັນໃໝ່ຫຼ້າສຸດຈາກລິ້ງທີ່ສະໜອງໃຫ້ຢູ່ໃນພາກສ່ວນ “Firmware Library”.

ສະຖາປັດຕະຍະກຳ API
ແຕ່ລະ API ມີພາລາມິເຕີທີ່ສໍາຄັນ CH, ເຊິ່ງແມ່ນ UART Channel. ນີ້ກໍານົດວ່າຊ່ອງທາງ UART ຈະຖືກຄວບຄຸມ. ໃນປັດຈຸບັນເຖິງສີ່ຊ່ອງທາງ UART ໄດ້ຮັບການສະຫນັບສະຫນູນແລະດັ່ງນັ້ນສີ່ສັນຍາລັກຄົງທີ່ຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້. ເຫຼົ່ານີ້ຖືກນໍາໃຊ້ເປັນພາລາມິເຕີ CH ສະຫນອງ APIs ພື້ນຖານສໍາລັບການຄວບຄຸມ.

  • UARTM_CH0: ພາຣາມິເຕີການປ້ອນ – ຄວບຄຸມ ຫຼືກຳນົດຄ່າ UART CH0
  • UARTM_CH1: ພາຣາມິເຕີການປ້ອນ – ຄວບຄຸມ ຫຼືກຳນົດຄ່າ UART CH1
  • UARTM_CH2: ພາຣາມິເຕີການປ້ອນ – ຄວບຄຸມ ຫຼືກຳນົດຄ່າ UART CH2
  • UARTM_CH3: ພາຣາມິເຕີການປ້ອນ – ຄວບຄຸມ ຫຼືກຳນົດຄ່າ UART CH3

ພື້ນທີ່ຫນ່ວຍຄວາມຈໍາຈະບໍ່ຖືກເສຍໄປຖ້າຫາກວ່າພຽງແຕ່ຊ່ອງ UART ຫນຶ່ງຖືກນໍາໃຊ້. ນີ້ແມ່ນຍ້ອນວ່າຈໍານວນຊ່ອງ UART ທີ່ສະຫນັບສະຫນູນສາມາດຖືກກໍານົດແລະລະຫັດຊ່ອງ UART ທີ່ບໍ່ໄດ້ໃຊ້ຈະຖືກລຶບອອກໂດຍ preprocessor ເພື່ອເພີ່ມພື້ນທີ່ຫນ່ວຍຄວາມຈໍາທີ່ມີຢູ່. ສະຖາປັດຕະຍະກໍາ API ແມ່ນສະແດງຢູ່ໃນ ຮູບ 9.

ຮູບ 9. API Architecture Block Diagram
ແຜນວາດສະຖາປັດຕະຍະກໍາ

ແຕ່ລະ API ແມ່ນປະກອບດ້ວຍສີ່ກຸ່ມຂອງການຕັ້ງຄ່າຫຼືການຄວບຄຸມທີ່ກ່ຽວຂ້ອງກັບຊ່ອງທາງ UART ດັ່ງນັ້ນຜູ້ໃຊ້ພຽງແຕ່ຕ້ອງການປ້ອນພາລາມິເຕີ CH ທີ່ຕ້ອງການ. ເພື່ອຕັ້ງຄ່າ API ທີ່ກ່ຽວຂ້ອງ, ມັນຈໍາເປັນຕ້ອງມີຕາຕະລາງພາລາມິເຕີພື້ນຖານ UART ເພີ່ມເຕີມທີ່ມີແບບຟອມໂຄງສ້າງ, USAART_InitTypeDef. API ຈະປະຕິບັດການຕັ້ງຄ່າພື້ນຖານ UART ຕາມເນື້ອໃນພາລາມິເຕີໃນຕາຕະລາງ. ອ້າງອີງໃສ່ພາກສ່ວນ “ລາຍລະອຽດ API” ສໍາລັບຕາຕະລາງໂຄງສ້າງພື້ນຖານ UART.

The uart_module.c/.h files ມີພຽງແຕ່ການຂັດຂວາງ (CHx_IRQ) ​​ແລະຕາຕະລາງສະຖານະ (CHx ສະຖານະ) ຂອງແຕ່ລະຊ່ອງ 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 ທາງກາຍະພາບ; ຕົວຢ່າງample: UART0, UART1…
HTCFG_UARTM0_TX_GPIO_PORTກໍານົດຊື່ພອດຂອງ TX ສໍາລັບ CH0; ຕົວຢ່າງample: A, B, C…
HTCFG_UARTM0_TX_GPIO_PINກໍານົດຈໍານວນ PIN ຂອງ TX ສໍາລັບ CH0; ຕົວຢ່າງample: 0~15
HTCFG_UARTM0_RX_GPIO_PORTກໍານົດຊື່ພອດຂອງ RX ສໍາລັບ CH0; ຕົວຢ່າງample: A, B, C…
HTCFG_UARTM0_RX_GPIO_PINກໍານົດຈໍານວນ PIN ຂອງ TX ສໍາລັບ CH0; ຕົວຢ່າງample: 0~15
HTCFG_UARTM0_TX_BUFFER_SIZEກໍານົດຂະຫນາດ buffer TX ສໍາລັບ CH0; ຕົວຢ່າງampເລ: 128
HTCFG_UARTM0_RX_BUFFER_SIZEກໍານົດຂະຫນາດ buffer RX ສໍາລັບ CH0; ຕົວຢ່າງampເລ: 128

ເພື່ອແກ້ໄຂການຕັ້ງຄ່າຊ່ອງ UART AFIO, ອ້າງອີງໃສ່ແຜ່ນຂໍ້ມູນອຸປະກອນທີ່ກ່ຽວຂ້ອງ. ໃນປັດຈຸບັນມີພຽງແຕ່ຄໍານິຍາມ 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 ຖືກນໍາໃຊ້ສໍາລັບການກໍານົດ pin ແລະຄະນະກໍາມະການພັດທະນາການຕັ້ງຄ່າທີ່ກ່ຽວຂ້ອງ, ເຊິ່ງລວມມີຊ່ອງ UART IP (UART0, UART1, USART0…) ທີ່ໃຊ້ໂດຍ Starter Kit (SK), ສະຖານທີ່ PIN TX/RX ທີ່ສອດຄ້ອງກັນແລະຂະຫນາດບັບເຟີ TX/RX. ຮູບທີ 10 ສະແດງເນື້ອໃນການຕັ້ງຄ່າຂອງ HT32F52352 Starter Kit. ອີງຕາມການລວມຕົວທີ່ມີປະໂຫຍດຂອງການພັດທະນາ, ຜູ້ໃຊ້ສາມາດອ້າງອີງໃສ່ພາກສ່ວນ "ການມອບຫມາຍ PIN" ຂອງແຜ່ນຂໍ້ມູນຂອງອຸປະກອນທີ່ໃຊ້ເພື່ອປະຕິບັດຄໍານິຍາມ PIN. ລາຍ​ລະ​ອຽດ​ເພີ່ມ​ເຕີມ​ກ່ຽວ​ກັບ​ການ​ປັບ​ປຸງ​ການ​ຕັ້ງ​ຄ່າ​ຈະ​ໄດ້​ຮັບ​ການ​ອະ​ທິ​ບາຍ​ໃນ​ພາກ "ການ​ປັບ​ປຸງ​ແລະ FAQs​" ພາກ​ສ່ວນ​.
    ຮູບ 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 ແລະການຕັ້ງຄ່າຮູບແບບ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.
      ຕົວແປ ຊື່ປະເພດລາຍລະອຽດ
      USART_BaudRateu32UART ອັດຕາ baud ການສື່ສານ
      USART_WordLengthu16ຄວາມຍາວຂອງຄໍາສັບການສື່ສານ UART: 7, 8 ຫຼື 9 bits
      USART_StopBitsu16ການສື່ສານ UART ຢຸດຄວາມຍາວບິດ: 1 ຫຼື 2 ບິດ
      USART_Parityu16ຄວາມສະເໝີພາບຂອງການສື່ສານ UART: ແມ້ແຕ່, ຄີກ, ເຄື່ອງຫມາຍ, ຊ່ອງ ຫຼືບໍ່ມີ parity
      USART_Modeu16ຮູບແບບການສື່ສານ UART; APIs ຮອງຮັບພຽງແຕ່ຮູບແບບປົກກະຕິ
  2. ກ່ອນທີ່ຈະໃຊ້ຟັງຊັນ API, ຈົ່ງເຮັດສໍາເລັດການຕັ້ງຄ່າພື້ນຖານ UART ໃນໂຄງການຕົ້ນຕໍ. ການຕັ້ງຄ່າພື້ນຖານ UART ສໍາລັບລະຫັດຄໍາຮ້ອງສະຫມັກນີ້ແມ່ນສະແດງຢູ່ໃນຮູບ 12. ທີ່ນີ້ອັດຕາ baud ແມ່ນ 115200bps, ຄວາມຍາວຂອງຄໍາສັບແມ່ນ 8-bit, ຄວາມຍາວຂອງບິດແມ່ນ 1-bit, ແລະບໍ່ມີຄວາມສະເຫມີພາບ.
    ຮູບ 12. ການຕັ້ງຄ່າພື້ນຖານ UART
    ການຕັ້ງຄ່າພື້ນຖານ
  3. ຮູບທີ 13 ສະແດງຫນ້າທີ່ API ປະກາດໃນ uart_module.h file. ຕາຕະລາງຕໍ່ໄປນີ້ອະທິບາຍຟັງຊັນ, ຕົວກໍານົດການປ້ອນຂໍ້ມູນ ແລະການນໍາໃຊ້ຟັງຊັນ API.
    ຮູບທີ 13. ການປະກາດຟັງຊັນ API ໃນ uart_module.h 
    ການປະກາດຟັງຊັນ API
ຊື່void 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 write byte (TX)
ປ້ອນຂໍ້ມູນCHຊ່ອງ UART
uDataຂໍ້ມູນທີ່ຈະຂຽນ
ຜົນຜະລິດຄວາມສຳເລັດປະສົບຜົນສໍາເລັດ
ຜິດພາດລົ້ມເຫລວ
ການ​ນໍາ​ໃຊ້UARTM_WriteByte(UARTM_CH0, 'A'); // UART ຂຽນ 1 byte – 'A'
ຊື່u32 UARTM_Write(u32 CH, u8 *pBuffer, u32 uLength)
ຟັງຊັນການເຮັດວຽກການຂຽນໂມດູນ UART (TX)
 ປ້ອນຂໍ້ມູນCHຊ່ອງ UART
pBufferຕົວຊີ້ Buffer
ຄວາມຍາວຄວາມຍາວຂອງຂໍ້ມູນທີ່ຈະຂຽນ
ຜົນຜະລິດຄວາມສຳເລັດປະສົບຜົນສໍາເລັດ
ຜິດພາດລົ້ມເຫລວ
 ການ​ນໍາ​ໃຊ້u8 ການທົດສອບ[] = “ນີ້ແມ່ນການທົດສອບ!\r\n”; UARTM_Write(UARTM_CH0, ການທົດສອບ, sizeof(Test) -1); // UART ຂຽນຂໍ້ມູນ pBuffer
ຊື່u32 UARTM_ReadByte(u32 CH, u8 *pData)
ຟັງຊັນການເຮັດວຽກຂອງໂມດູນ UART ອ່ານ byte (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ຕົວຊີ້ Buffer
ຄວາມຍາວຄວາມຍາວຂອງຂໍ້ມູນທີ່ຈະອ່ານ
ຜົນຜະລິດອ່ານນັບຄວາມຍາວຂອງຂໍ້ມູນໄດ້ຖືກອ່ານ
     ການ​ນໍາ​ໃຊ້u8 Test2[10]; u32 ເລນ; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() ອ່ານຂໍ້ມູນ 5 bytes ແລະເກັບຂໍ້ມູນໃສ່ Test2, ແລະມອບໝາຍການອ່ານ byte count ກັບ Len // ຂຽນຂໍ້ມູນທີ່ມາຈາກ Test2
ຊື່u32 UARTM_GetReadBufferLength(u32 CH)
ຟັງຊັນໄດ້​ຮັບ​ຄວາມ​ຍາວ​ຂອງ​ການ​ອ່ານ (RX​)
ປ້ອນຂໍ້ມູນCHຊ່ອງ UART
ຜົນຜະລິດຄວາມຍາວອ່ານຄວາມຍາວ buffer
  ການ​ນໍາ​ໃຊ້UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); // ການເລີ່ມຕົ້ນຂອງໂມດູນ UART ໃນຂະນະທີ່ (UARTM_GetReadBufferLength(UARTM_CH0) < 5);// ລໍຖ້າຈົນກ່ວາ UARTM_ReadBuffer ໄດ້ຮັບຂໍ້ມູນ 5 ໄບຕ໌.
ຊື່u32 UARTM_GetWriteBufferLength(u32 CH)
ຟັງຊັນໄດ້​ຮັບ​ຄວາມ​ຍາວ​ຂອງ​ການ​ຂຽນ (TX​)
ປ້ອນຂໍ້ມູນCHຊ່ອງ UART
ຜົນຜະລິດຄວາມຍາວຂຽນຄວາມຍາວ buffer
ຊື່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 ແມ່ນ TRUE, ແລະຫຼັງຈາກນັ້ນສືບຕໍ່ການດໍາເນີນການຕໍ່ໄປ.//A ຂໍ້ຈໍາກັດໄດ້ຖືກເພີ່ມເນື່ອງຈາກວ່າຟັງຊັນນີ້ບໍ່ໄດ້ຖືກເພີ່ມຈົນກ່ວາຈໍານວນສະບັບ SVN ໃນ uart_module.c ແມ່ນ 525.
ຊື່ໂມຄະ UARTM_DiscardReadBuffer(u32 CH)
ຟັງຊັນຍົກເລີກຂໍ້ມູນໃນ buffer ອ່ານ
ປ້ອນຂໍ້ມູນ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, ການສໍາເລັດທີ່ຊີ້ໃຫ້ເຫັນເຖິງການສິ້ນສຸດຂອງຂະບວນການເບື້ອງຕົ້ນ. ຫຼັງຈາກຜູ້ໃຊ້ນີ້ສາມາດສືບຕໍ່ການດໍາເນີນການຂຽນແລະອ່ານໂດຍອີງໃສ່ການຕັ້ງຄ່າພື້ນຖານ UART ທີ່ກໍານົດໄວ້ກ່ອນ.

ຮູບທີ 14. ແຜນຜັງຂັ້ນຕອນການເລີ່ມຕົ້ນ
ແຜນຜັງຂັ້ນຕອນການເລີ່ມຕົ້ນ

“UART_Module_Example” ລະຫັດຄໍາຮ້ອງສະຫມັກສະແດງໃຫ້ເຫັນ API ອ່ານແລະຂຽນການດໍາເນີນງານໃນລັກສະນະ loopback. ແຜນຜັງຂັ້ນຕອນສໍາລັບການນີ້ແມ່ນສະແດງຢູ່ໃນຮູບ 15. ຟັງຊັນ API ທີ່ໃຊ້ລວມມີ UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() ແລະ UARTM_GetReadBufferLength(). ຄໍາອະທິບາຍຂອງພວກເຂົາແມ່ນສະຫນອງໃຫ້ຢູ່ໃນສ່ວນ "ລາຍລະອຽດ API".

ຮູບທີ 15. Flowchart of Write and Read Examples
ຕາຕະລາງຂັ້ນຕອນຂອງການຂຽນແລະອ່ານ Examples

ມີລະຫັດແອັບພລິເຄຊັນ "UART_Bridge" ອື່ນພາຍໃຕ້ໂຟນເດີ "Module_UART" ທີ່ກ່ຽວຂ້ອງ file ລາຍ​ລະ​ອຽດ​ແມ່ນ​ໄດ້​ນໍາ​ສະ​ເຫນີ​ໃນ​ພາກ "ໂຄງ​ສ້າງ​ລະ​ບົບ​"​. ລະຫັດແອັບພລິເຄຊັນ "UART_Bridge" ເປີດໃຊ້ສອງຊ່ອງ UART, UART CH0 ແລະ UART CH1, ແລະຫຼັງຈາກນັ້ນປັບແຕ່ງໂປໂຕຄອນການສື່ສານລະຫວ່າງສອງອຸປະກອນ UART ຜ່ານໂຄງສ້າງ COMMAND, gCMD1 ແລະ gCMD2. ເຫຼົ່ານີ້ແມ່ນໄດ້ຖືກກໍານົດໄວ້ໃນ uart_bridge.c, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້. UARTBridge_CMD1TypeDef gCMD1:

ຕົວແປ ຊື່ປະເພດລາຍລະອຽດ
uHeaderu8ສ່ວນຫົວ
uCmdu8ຄໍາສັ່ງ
uData[3]u8ຂໍ້ມູນ

UARTBridge_CMD2TypeDef gCMD2:

ຕົວແປ ຊື່ປະເພດລາຍລະອຽດ
uHeaderu8ສ່ວນຫົວ
uCmdAu8ຄຳສັ່ງ ກ
uCmdBu8ຄໍາສັ່ງ B
uData[3]u8ຂໍ້ມູນ

ໃນລະຫັດແອັບພລິເຄຊັນ “UART_Bridge”, ໃຊ້ gCMD1 ເພື່ອຮັບຂໍ້ມູນເປັນຊຸດຄຳສັ່ງ ແລະຫຼັງຈາກນັ້ນວິເຄາະມັນ. ຫຼັງຈາກນັ້ນ, ອີງຕາມໂປໂຕຄອນການສື່ສານທີ່ກໍາຫນົດເອງ, ກໍານົດ gCMD2 ເປັນຊຸດຕອບສະຫນອງແລະສົ່ງມັນ. ຕໍ່ໄປນີ້ແມ່ນ example ຂອງຊຸດຄໍາສັ່ງ gCMD1) ແລະຊຸດການຕອບໂຕ້ (gCMD2). ຊຸດຄຳສັ່ງ (UARTBridge_CMD1TypeDef gCMD1):

ໄບຕ໌ 0ໄບຕ໌ 1Byte 2 ~ Byte 4
uHeaderuCmduData [3]
“ກ”“1”“x, y, z”

ແພັກເກັດຕອບສະໜອງ (UARTBridge_CMD2TypeDef gCMD2):

ໄບຕ໌ 0ໄບຕ໌ 1ໄບຕ໌ 2Byte 3 ~ Byte 5
uHeaderuCmdAuCmdBuData [3]
“ຂ”“ກ”“1”“x, y, z”

ອາຊີບຊັບພະຍາກອນ
ເອົາ HT32F52352 ເປັນ exampດັ່ງນັ້ນ, ຊັບພະຍາກອນທີ່ຄອບຄອງໂດຍໂມດູນ UART ແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້.

HT32F52352
ຂະໜາດ ROM946 Bytes
ຂະໜາດ RAM40*1 + 256*2 ໄບຕ໌

ໝາຍເຫດ:

  1. ຕົວແປທົ່ວໂລກລວມທັງທຸງແລະສະຖານະສໍາລັບຊ່ອງດຽວຄອບຄອງ 40 bytes ຂອງ RAM.
  2.  ນີ້ແມ່ນສໍາລັບເງື່ອນໄຂທີ່ຊ່ອງດຽວຖືກນໍາໃຊ້ແລະຂະຫນາດ buffer TX/RX ແມ່ນ 128/128 bytes. ຂະຫນາດ buffer ສາມາດຖືກກໍານົດຕາມຄວາມຕ້ອງການຄໍາຮ້ອງສະຫມັກ.

ຕາຕະລາງ 4. Application Code Resource Occupation 

  • ສະພາບແວດລ້ອມການລວບລວມ: MDK-Arm V5.36, ARMCC V5.06 ອັບເດດ 7 (build 960)
  • ທາງ​ເລືອກ​ທີ່​ດີ​ທີ່​ສຸດ​: ລະດັບ 2 (-O2)

ຄໍາແນະນໍາສໍາລັບການນໍາໃຊ້

ບົດນີ້ຈະແນະນໍາການກະກຽມດ້ານສິ່ງແວດລ້ອມສໍາລັບລະຫັດຄໍາຮ້ອງສະຫມັກ "Module_UART", ເຊັ່ນດຽວກັນກັບຂັ້ນຕອນການລວບລວມແລະການທົດສອບ.

ການກະກຽມດ້ານສິ່ງແວດລ້ອມ
ຮາດແວ ແລະຊອບແວທີ່ຈຳເປັນສຳລັບລະຫັດແອັບພລິເຄຊັນ “Module_UART” ແມ່ນມີລາຍຊື່ຢູ່ລຸ່ມນີ້.
ຕາຕະລາງ 5. ຮາດແວ/ຊອບແວ ການກະກຽມດ້ານສິ່ງແວດລ້ອມ 

ຮາດແວ/ຊອບແວນັບໝາຍເຫດ
ຊຸດເລີ່ມຕົ້ນ1ບັນທຶກແອັບພລິເຄຊັນນີ້ໃຊ້ຊຸດເຄື່ອງເລີ່ມຕົ້ນ HT32F52352 ເປັນຕົວຢ່າງample
ສາຍ USB1Micro USB, ເຊື່ອມຕໍ່ກັບ PC
ລະຫັດຄໍາຮ້ອງສະຫມັກເສັ້ນ​ທາງ​ການ​ດາວ​ໂຫຼດ​, file ແລະການຕັ້ງຄ່າໄດເລກະທໍລີໄດ້ຖືກນໍາສະເຫນີໃນພາກ "ການດາວໂຫຼດຊັບພະຍາກອນແລະການກະກຽມ". ເສັ້ນທາງ: "\\application\Module_UART\UART_Module_Example”
Tera Termອ້າງເຖິງພາກສ່ວນ “ຊອບແວ Terminal”
Keil IDEKeil uVision V5.xx

ທໍາອິດ, ໃຊ້ HT32F52352 Starter Kit ລວມກັບຟັງຊັນ Virtual COM Port (VCP) ຂອງ e-Link32 Lite ສໍາລັບການແນະນໍາຄໍາຮ້ອງສະຫມັກ UART. ນີ້ຮຽກຮ້ອງໃຫ້ມີການກະກຽມດ້ານສິ່ງແວດລ້ອມດັ່ງຕໍ່ໄປນີ້:

  1. ມີສອງຕົວເຊື່ອມຕໍ່ USB ຢູ່ໃນກະດານ. ໃຊ້ສາຍ USB ເພື່ອເຊື່ອມຕໍ່ PC ແລະອິນເຕີເຟດ 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 shorted ຫຼື PAx ແລະ RS232_Tx shorted. ເບິ່ງຄູ່ມືຜູ້ໃຊ້ Starter Kit ສໍາລັບຟັງຊັນການຕັ້ງຄ່າລະອຽດ.
  2. ສະຖານທີ່ PIN MCU UART RX ໃນຊຸດ Starter ທີ່ແຕກຕ່າງກັນແມ່ນແຕກຕ່າງກັນ. ນີ້ example ໃຊ້ PAx ເພື່ອຊີ້ບອກ PIN RX.

ຮູບທີ 16. HT32 Starter Kit Diagram
Kit Block Diagram

ຕອນນີ້ໃຊ້ກະດານເປົ້າໝາຍຜູ້ໃຊ້ລວມກັບຟັງຊັນ Virtual COM Port (VCP) ຂອງ e-Link32 Pro ສຳລັບການແນະນຳແອັບພລິເຄຊັນ UART. ນີ້ຮຽກຮ້ອງໃຫ້ມີການກະກຽມດ້ານສິ່ງແວດລ້ອມດັ່ງຕໍ່ໄປນີ້:

  1. ຂ້າງຫນຶ່ງຂອງ e-Link32 Pro ແມ່ນເຊື່ອມຕໍ່ກັບ PC ໂດຍໃຊ້ສາຍ Mini USB ແລະອີກດ້ານຫນຶ່ງແມ່ນເຊື່ອມຕໍ່ກັບກະດານເປົ້າຫມາຍຂອງຜູ້ໃຊ້ໂດຍຜ່ານສາຍສີຂີ້ເຖົ່າ 10-bit ຂອງມັນ. ການເຊື່ອມຕໍ່ລະຫວ່າງຕົວເຊື່ອມຕໍ່ SWD ຂອງສາຍເຄເບີ້ນແລະກະດານເປົ້າຫມາຍແມ່ນຖືກປະຕິບັດໂດຍໃຊ້ສາຍ Dupont, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 17-(a).
  2. pins ການສື່ສານ serial ຂອງ e-Link32 Pro ແມ່ນ Pin#7 VCOM_RXD ແລະ Pin#8- VCOM_TXD. ສິ່ງເຫຼົ່ານີ້ຄວນຈະເຊື່ອມຕໍ່ກັບ PINs TX ແລະ RX ຂອງກະດານເປົ້າຫມາຍຂອງຜູ້ໃຊ້, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 17-(b).
    ຮູບທີ 17. e-Link32 Pro + User Target Board Block Diagram
    ກະດານເປົ້າຫມາຍຜູ້ໃຊ້

ການລວບລວມແລະການທົດສອບ
ພາກສ່ວນນີ້ຈະໃຊ້ເວລາ “application\Module_UART\UART_Module_Example” ເປັນ example ເພື່ອແນະນໍາຂະບວນການລວບລວມແລະການທົດສອບ. ກ່ອນນີ້, ໃຫ້ແນ່ໃຈວ່າການກະກຽມທັງຫມົດທີ່ອະທິບາຍໄວ້ໃນພາກກ່ອນຫນ້າໄດ້ຖືກປະຕິບັດແລະຊອບແວ Terminal Terminal ໄດ້ຖືກດາວໂຫຼດແລ້ວ.

ຂັ້ນຕອນການດໍາເນີນງານລະອຽດແມ່ນໄດ້ສະຫຼຸບຂ້າງລຸ່ມນີ້.
ຂັ້ນ​ຕອນ​ທີ 1. ການ​ທົດ​ສອບ​ພະ​ລັງ​ງານ​

ຕັ້ງຄ່າສະພາບແວດລ້ອມຮາດແວຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນພາກກ່ອນ. ຫຼັງຈາກເປີດເຄື່ອງແລ້ວ, ໄຟ LED D9 ຢູ່ເບື້ອງຊ້າຍລຸ່ມຂອງຊຸດ Starter ຈະສະຫວ່າງຂຶ້ນ. ໄຟ 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. ສັງ​ລວມ​ແລະ​ໂຄງ​ການ
ຫຼັງ​ຈາກ​ໂຄງ​ການ​ໄດ້​ຮັບ​ການ​ເປີດ​, ຄັ້ງ​ທໍາ​ອິດ​ໃຫ້​ຄລິກ​ໃສ່ "ສ້າງ​" (ຫຼື​ໃຊ້​ທາງ​ລັດ "F7​)​, ຫຼັງ​ຈາກ​ນັ້ນ​ໃຫ້​ຄລິກ​ໃສ່ "ດາວ​ໂຫລດ​" (ຫຼື​ໃຊ້​ທາງ​ລັດ "F8​"​)​. ຫຼັງ​ຈາກ​ນີ້​, ຜົນ​ການ​ກໍ່​ສ້າງ​ແລະ​ການ​ດາວ​ໂຫຼດ​ຈະ​ໄດ້​ຮັບ​ການ​ສະ​ແດງ​ຢູ່​ໃນ​ປ່ອງ​ຢ້ຽມ​ຜົນ​ຜະ​ລິດ​ໄດ້​. ເບິ່ງຮູບ 19.

ຮູບທີ 19. ການສ້າງແລະດາວໂຫລດຜົນໄດ້ຮັບ
ການກໍ່ສ້າງແລະດາວໂຫລດຜົນໄດ້ຮັບ

ຂັ້ນຕອນທີ 4. ເປີດຊອຟແວ Tera Term ແລະກໍາຫນົດຄ່າພອດ serial
ເປີດຊອບແວ Tera Term ແລະພອດ COM. ເອົາໃຈໃສ່ວ່າໝາຍເລກຜອດ COM ທີ່ສ້າງຂຶ້ນໂດຍ Starter Kit ແມ່ນຖືກຕ້ອງຫຼືບໍ່. ຫຼັງ​ຈາກ​ນັ້ນ​, ໃຫ້​ຄລິກ​ໃສ່ "ການ​ຕັ້ງ​ຄ່າ >> Serial Port​" ເພື່ອ​ເຂົ້າ​ໄປ​ໃນ​ການ​ໂຕ້​ຕອບ​ການ​ຕັ້ງ​ຄ່າ​. ການຕັ້ງຄ່າສ່ວນຕິດຕໍ່ UART ຂອງລະຫັດແອັບພລິເຄຊັນ “Module_UART” ໄດ້ຖືກອະທິບາຍໄວ້ໃນພາກ “Terminal Software”. ຜົນ​ການ​ຕັ້ງ​ຄ່າ​ແມ່ນ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ຢູ່​ໃນ​ຮູບ​ພາບ 20​.

ຮູບທີ 20. Tera Term Serial Port Setup Result
ຕັ້ງຄ່າຜົນໄດ້ຮັບ
ຂັ້ນ​ຕອນ​ທີ 5. ປັບ​ລະ​ບົບ​ແລະ​ການ​ທົດ​ສອບ​
ກົດປຸ່ມ SK reset – B1 Reset. ຫຼັງຈາກນີ້, "ABC ນີ້ແມ່ນການທົດສອບ!" ຂໍ້ຄວາມຈະເປັນ
ສົ່ງຜ່ານ API ແລະຈະຖືກສະແດງຢູ່ໃນປ່ອງຢ້ຽມ Tera Term, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 21. ກ່ຽວກັບຫນ້າທີ່ຮັບ, ເມື່ອປ້ອນຂໍ້ມູນເຂົ້າໄປໃນປ່ອງຢ້ຽມ Tera Term, API ທີ່ກ່ຽວຂ້ອງຈະຖືກນໍາໃຊ້ເພື່ອກໍານົດຄວາມຍາວຂອງ buffer ທີ່ໄດ້ຮັບ. ເມື່ອຂໍ້ມູນທີ່ໄດ້ຮັບໂດຍ PC ໄປຮອດ 5 bytes, ຂໍ້ມູນທີ່ໄດ້ຮັບ 5 bytes ຈະຖືກສົ່ງອອກຕາມລໍາດັບ. ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບທີ 22, ຂໍ້ມູນທີ່ເຂົ້າມາຕາມລໍາດັບແມ່ນ "1, 2, 3, 4, 5", ເຊິ່ງໄດ້ຮັບແລະກໍານົດຜ່ານ API. ຫຼັງຈາກນີ້, ຂໍ້ມູນ "1, 2, 3, 4, 5" ຈະຖືກພິມອອກຫຼັງຈາກຫ້າວັດສະດຸປ້ອນ.

ຮູບທີ 21. “Module_UART” Application Code Functional Test – Transmit
ການທົດສອບການທໍາງານຂອງລະຫັດຄໍາຮ້ອງສະຫມັກ

ຮູບທີ 22. “Module_UART” Application Code Functional Test – ຮັບ
ການທົດສອບການທໍາງານຂອງລະຫັດຄໍາຮ້ອງສະຫມັກ

ຄໍາແນະນໍາການປູກຖ່າຍ
ພາກນີ້ຈະແນະນໍາວິທີການລວມ APIs ເຂົ້າໃນໂຄງການຂອງຜູ້ໃຊ້.
ຂັ້ນຕອນທີ 1. ເພີ່ມ uart_module.c file ເຂົ້າໄປໃນໂຄງການ. ຄລິກຂວາໃສ່ໂຟນເດີຜູ້ໃຊ້. ເລືອກ “ຕື່ມການທີ່ມີຢູ່ແລ້ວ Files ໄປຫາກຸ່ມ 'ຜູ້ໃຊ້'…”, ຈາກນັ້ນເລືອກ uart_module.c file ແລະໃຫ້ຄລິກໃສ່ "ຕື່ມ", ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 23. ອ້າງອີງໃສ່ "ໂຄງສ້າງໄດເລກະທໍລີ" ພາກສ່ວນສໍາລັບ file ລາຍ​ລະ​ອຽດ​ເສັ້ນ​ທາງ​.

ຮູບທີ 23. ເພີ່ມ uart_module.c File ກັບໂຄງການ
File ກັບໂຄງການ

ຂັ້ນຕອນທີ 2. ເພີ່ມ ring_buffer.c file ເຂົ້າໄປໃນໂຄງການ. ຄລິກຂວາໃສ່ໂຟນເດີຜູ້ໃຊ້. ເລືອກ “ຕື່ມການທີ່ມີຢູ່ແລ້ວ Files ໄປຫາກຸ່ມ 'ຜູ້ໃຊ້'…”, ຈາກນັ້ນເລືອກ ring_buffer.c file ແລະໃຫ້ຄລິກໃສ່ "ຕື່ມ", ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 24.\ ອ້າງອີງໃສ່ "ໂຄງສ້າງໄດເລກະທໍລີ" ພາກ file ລາຍ​ລະ​ອຽດ​ເສັ້ນ​ທາງ​.
ຮູບທີ 24. ເພີ່ມ ring_buffer.c File ກັບໂຄງການ 
File ກັບໂຄງການ

ຂັ້ນຕອນທີ 3. ລວມເອົາສ່ວນຫົວ API file ເຂົ້າໄປໃນຈຸດເລີ່ມຕົ້ນຂອງ main.c, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 25. (ເຊັ່ນ: #include “middleware/uart_module.h”)
ຮູບທີ 25. ລວມເອົາ API Header File ກັບ main.c
ລວມເອົາສ່ວນຫົວ API File

ຂັ້ນຕອນທີ 4. ປະຕິບັດການຕັ້ງຄ່າທີ່ຕ້ອງການສໍາລັບການສື່ສານ UART ໂດຍໃຊ້ ht32_board_config.h file. ນີ້ໄດ້ຖືກນໍາສະເຫນີໃນລາຍລະອຽດໃນພາກ "ລາຍລະອຽດການຕັ້ງຄ່າ" ແລະ "ການຕັ້ງຄ່າການດັດແກ້ແລະຄໍາຖາມທີ່ຖາມເລື້ອຍໆ".

ການ​ຕັ້ງ​ຄ່າ​ການ​ດັດ​ແກ້​ແລະ FAQs​ 

ພາກນີ້ຈະແນະນໍາວິທີການດັດແປງການຕັ້ງຄ່າ UART ແລະອະທິບາຍບາງຄໍາຖາມທົ່ວໄປທີ່ພົບໃນລະຫວ່າງການໃຊ້.

ປ່ຽນ UART Pin Assignment 

  1. ໂດຍອ້າງອີງໃສ່ແຜ່ນຂໍ້ມູນ HT32F52352 ພາກ “Pin Assignment”, ຊອກຫາຕາຕະລາງການຕັ້ງແຜນທີ່ຂອງຟັງຊັນທາງເລືອກທີ່ສະແດງລາຍການຟັງຊັນ AFIO ຂອງປະເພດອຸປະກອນ. ສໍາລັບປັກໝຸດ UART ທີ່ກ່ຽວຂ້ອງ, ອ້າງອີງໃສ່ຖັນ “AF6 USART/UART”, ດັ່ງທີ່ສະແດງໃນຮູບ 26.
    ຮູບ 26. HT32F52352 ຕາຕະລາງການຈັບຄູ່ Function Mapping
    ຕາຕະລາງການຈັບຄູ່ Function Mapping
  2. ຂັ້ນ​ຕອນ​ນີ້​ຈະ​ນໍາ​ພາ​ຜູ້​ໃຊ້​ໃນ​ການ​ຊອກ​ຫາ pins UART ທີ່​ສອດ​ຄ້ອງ​ກັນ​ໂດຍ​ນໍາ​ໃຊ້​ຕາ​ຕະ​ລາງ​ຂ້າງ​ເທິງ​. HT32F52352 example ໃຊ້ USART1 ເປັນຊ່ອງເລີ່ມຕົ້ນ. ທີ່ນີ້, PIN TX ແລະ RX ແມ່ນ USR1_TX ແລະ USR1_RX ແລະຕັ້ງຢູ່ເທິງ PA4 ແລະ PA5 ຕາມລໍາດັບ. ຮູບທີ 27 ສະແດງການຕອບຮັບຂອງ PIN ເຊັ່ນດຽວກັນກັບຄໍານິຍາມ PIN ໃນ “ht32_board_config.h”. ຊ່ອງຫວ່າງເປົ່າຂອງ "Package" ໃນຕາຕະລາງການມອບຫມາຍ PIN ຫມາຍຄວາມວ່າບໍ່ມີ GPIO ທີ່ກ່ຽວຂ້ອງໃນຊຸດນີ້. ເພື່ອແກ້ໄຂເຂັມປັກໝຸດ UART, ຊອກຫາສະຖານທີ່ PIN ເປົ້າໝາຍ ແລະກຳນົດເຂັມປັກໝຸດຄືນໃໝ່ໂດຍໃຊ້ “ht32_board_config.h” file.
    ຮູບທີ 27. Pin Correspondence and Setting Modification
    ການ​ຕັ້ງ​ຄ່າ​ການ​ດັດ​ແກ້​

ເພີ່ມຊ່ອງ UART
ເອົາ HT32F52352 HTCFG_UARTM_CH1 ເປັນ example, ໃນທີ່ນີ້ມັນຖືກອະທິບາຍວິທີການເພີ່ມຊ່ອງ UART ໃຫມ່.

ແກ້ໄຂ ht32_board_config.h file
ໂດຍອ້າງອີງໃສ່ແຜ່ນຂໍ້ມູນ HT32F52352 ພາກ “Pin Assignment”, ຊອກຫາຕາຕະລາງການຕັ້ງແຜນທີ່ຂອງຟັງຊັນທາງເລືອກທີ່ສະແດງລາຍການຟັງຊັນ AFIO ຂອງປະເພດອຸປະກອນ. ເນື່ອງຈາກ USART1 ຖືກໃຊ້ເປັນ HTCFG_UARTM_CH0, HTCFG_UARTM_CH1 ທີ່ເພີ່ມເຂົ້າມາໃໝ່ສາມາດເລືອກ USART0 ໄດ້. ທີ່ນີ້, pins TX ແລະ RX ແມ່ນຕັ້ງຢູ່ເທິງ PA2 ແລະ PA3 ຕາມລໍາດັບ, ດັ່ງທີ່ສະແດງຢູ່ໃນເຄິ່ງເທິງຂອງຮູບ 28. ການດັດແກ້ທີ່ສອດຄ້ອງກັນແມ່ນປະຕິບັດໂດຍໃຊ້ເສັ້ນລະຫັດ 120 ~ 126 ໃນ ht32_board_config.h, ດັ່ງທີ່ສະແດງໂດຍກ່ອງຈຸດສີແດງໃນຮູບ. 28.

ຮູບ 28. ເພີ່ມຊ່ອງ UART
ຊ່ອງ UART

FAQs
Q: ໃນຂັ້ນຕອນທີ 5 ຂອງພາກການລວບລວມແລະການທົດສອບ, ການທົດສອບການສົ່ງຕໍ່ແມ່ນປົກກະຕິ. ນີ້, "ABC ນີ້ແມ່ນການທົດສອບ!" ຂໍ້​ຄວາມ​ໄດ້​ຮັບ​ການ​ສະ​ແດງ​ຢ່າງ​ສໍາ​ເລັດ​ຜົນ​, ແນວ​ໃດ​ກໍ​ຕາມ​ສໍາ​ລັບ​ການ​ທໍາ​ງານ​ຂອງ​ການ​ໄດ້​ຮັບ​, ເປັນ​ຫຍັງ​ຫ້າ​ຄ່າ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ບໍ່​ໄດ້​ກັບ​ຄືນ​ມາ​ແລະ​ສະ​ແດງ​?
A: ກວດເບິ່ງວ່າເຂັມ MCU UART RX ແລະ DAP_Tx ຂອງ UART Jumper-J2 ໄດ້ຖືກສັ້ນໂດຍໃຊ້ jumper. ເນື່ອງຈາກລະຫັດແອັບພລິເຄຊັນ "Module_UART" ຕ້ອງການໃຊ້ Virtual COM Port (VCP) ຂອງ e-Link32 Lite, ການຕັ້ງຄ່າວົງຈອນສັ້ນຄວນຈະຖືກນໍາໃຊ້ກັບສອງ pins ຊ້າຍຂອງ UART Jumper-J2, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 29.

ຮູບ 29. ການຕັ້ງຄ່າ UART Jumper-J2
UART Jumper

ຖາມ: ຫຼັງຈາກ ການດໍາເນີນການ “Build” (ຫຼືທາງລັດ “F7”), ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະປາກົດຂຶ້ນທີ່ຊີ້ບອກວ່າສະບັບຂອງ firmware Library ເກົ່າກວ່າອັນທີ່ຕ້ອງການບໍ? ເບິ່ງຮູບທີ 30.
A: ການປະຕິບັດລະຫັດຄໍາຮ້ອງສະຫມັກ "Module_UART" ຈໍາເປັນຕ້ອງປະກອບມີ uart_module.c/h. files ທີ່​ມີ​ຄວາມ​ຕ້ອງ​ການ​ສໍາ​ລັບ​ການ​ສະ​ເພາະ​ໃດ​ຫນຶ່ງ​ສະ​ບັບ​ຫໍ​ສະ​ຫມຸດ firmware​. ເມື່ອຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດດັ່ງກ່າວປະກົດຂຶ້ນ, ມັນຫມາຍຄວາມວ່າຫ້ອງສະຫມຸດເຟີມແວທີ່ໃຊ້ໃນປັດຈຸບັນເປັນສະບັບເກົ່າ. ສະນັ້ນ, ມັນ ຈຳ ເປັນຕ້ອງດາວໂຫລດລຸ້ນ ໃໝ່ ທີ່ສຸດໂດຍຜ່ານການເຊື່ອມຕໍ່ທີ່ໃຫ້ຢູ່ໃນພາກ "Firmware Library".

ຮູບທີ 30. ຂໍ້ຄວາມຜິດພາດຂອງ Firmware Library
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ສະ​ບັບ​

ສະຫຼຸບ

ເອກະສານນີ້ໄດ້ໃຫ້ຄໍາແນະນໍາພື້ນຖານເພື່ອຊ່ວຍໃຫ້ຜູ້ໃຊ້ມີຄວາມເຂົ້າໃຈດີຂຶ້ນກ່ຽວກັບລະຫັດແອັບພລິເຄຊັນ "Module_UART" ແລະໂປຣໂຕຄໍການສື່ສານ UART. ນີ້ແມ່ນປະຕິບັດຕາມໂດຍການດາວໂຫຼດຊັບພະຍາກອນແລະການກະກຽມ. ບົດອະທິບາຍຫນ້າທີ່ໄດ້ນໍາສະເຫນີ file ໂຄງສ້າງໄດເລກະທໍລີ, ສະຖາປັດຕະຍະກໍາ API, ຄໍາອະທິບາຍ API ແລະການນໍາໃຊ້ API examples. ບົດຄໍາແນະນໍາສໍາລັບການນໍາໃຊ້ໄດ້ສະແດງໃຫ້ເຫັນເຖິງການກະກຽມສິ່ງແວດລ້ອມ, ການລວບລວມແລະການທົດສອບລະຫັດຄໍາຮ້ອງສະຫມັກ "Module_UART". ມັນຍັງໄດ້ໃຫ້ຄໍາແນະນໍາສໍາລັບການປ່ຽນລະຫັດແລະການຕັ້ງຄ່າການດັດແກ້ເຊັ່ນດຽວກັນກັບການອະທິບາຍບາງບັນຫາທົ່ວໄປທີ່ອາດຈະພົບ. ທັງຫມົດນີ້ລວມກັນຈະຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດເຂົ້າໃຈວິທີການນໍາໃຊ້ APIs ຢ່າງໄວວາແລະຕໍ່ມາຫຼຸດລົງຈໍານວນເວລາທີ່ຈະເລີ່ມຕົ້ນ.

ເອກະສານອ້າງອີງ

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ Holtek webເວັບໄຊທ໌: www.holtek.com

ສະບັບແລະຂໍ້ມູນການດັດແກ້

ວັນທີຜູ້ຂຽນປ່ອຍຂໍ້ມູນການດັດແກ້
2022.04.30蔡期育(Chi-Yu Tsai)V1.00ຮຸ່ນ ທຳ ອິດ

ປະຕິເສດຄວາມຮັບຜິດຊອບ

ຂໍ້ມູນທັງຫມົດ, ເຄື່ອງຫມາຍການຄ້າ, ໂລໂກ້, ຮູບພາບ, ວິດີໂອ, ຄລິບສຽງ, ການເຊື່ອມຕໍ່ແລະລາຍການອື່ນໆທີ່ປາກົດຢູ່ໃນນີ້ webເວັບໄຊ ('ຂໍ້ມູນ') ແມ່ນສໍາລັບການອ້າງອີງເທົ່ານັ້ນ ແລະມີການປ່ຽນແປງໄດ້ທຸກເວລາໂດຍບໍ່ມີການແຈ້ງລ່ວງໜ້າ ແລະຕາມການຕັດສິນໃຈຂອງ Holtek Semiconductor Inc. ແລະບໍລິສັດທີ່ກ່ຽວຂ້ອງ (ຕໍ່ໄປນີ້ແມ່ນ 'Holtek', 'ບໍລິສັດ', 'ພວກເຮົາ', ' ພວກເຮົາ ຫຼື 'ຂອງພວກເຮົາ'). ໃນຂະນະທີ່ Holtek ພະຍາຍາມຮັບປະກັນຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນໃນເລື່ອງນີ້ webເວັບໄຊທ໌, ບໍ່ມີການຮັບປະກັນທີ່ສະແດງອອກໂດຍ Holtek ກັບຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນ. Holtek ຈະບໍ່ຮັບຜິດຊອບຕໍ່ຄວາມບໍ່ຖືກຕ້ອງ ຫຼືການຮົ່ວໄຫຼໃດໆ.
Holtek ຈະບໍ່ຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍໃດໆ (ລວມທັງແຕ່ບໍ່ຈໍາກັດກັບໄວຣັສຄອມພິວເຕີ, ບັນຫາລະບົບຫຼືການສູນເສຍຂໍ້ມູນ) ໃດໆທີ່ເກີດຂື້ນໃນການນໍາໃຊ້ຫຼືກ່ຽວຂ້ອງກັບການນໍາໃຊ້ນີ້. webເວັບໄຊໂດຍຝ່າຍໃດ. ອາດ​ຈະ​ມີ​ການ​ເຊື່ອມ​ຕໍ່​ໃນ​ຂົງ​ເຂດ​ນີ້​, ທີ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ທ່ານ​ໄປ​ຢ້ຽມ​ຢາມ​ໄດ້​ webສະຖານທີ່ຂອງບໍລິສັດອື່ນໆ.
ເຫຼົ່ານີ້ webສະຖານທີ່ບໍ່ໄດ້ຖືກຄວບຄຸມໂດຍ Holtek. Holtek ຈະ​ບໍ່​ມີ​ຄວາມ​ຮັບ​ຜິດ​ຊອບ​ແລະ​ບໍ່​ມີ​ການ​ຮັບ​ປະ​ກັນ​ຕໍ່​ຂໍ້​ມູນ​ໃດໆ​ທີ່​ສະ​ແດງ​ຢູ່​ໃນ​ສະ​ຖານ​ທີ່​ດັ່ງ​ກ່າວ​. hyperlinks ກັບອື່ນໆ 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

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *