HOLTEK HT32 MCU UART Application Note ຄູ່ມືຜູ້ໃຊ້
ແນະນຳ
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
ຮູບທີ 2. UART Circuit Diagram
ໃນລະຫວ່າງການສື່ສານ UART serial, ການສົ່ງຂໍ້ມູນແມ່ນ asynchronous. ນີ້ຫມາຍຄວາມວ່າບໍ່ມີໂມງຫຼືສັນຍານ synchronization ອື່ນໆລະຫວ່າງເຄື່ອງສົ່ງແລະເຄື່ອງຮັບ. ໃນທີ່ນີ້ອັດຕາການ baud ໄດ້ຖືກນໍາໃຊ້, ຊຶ່ງເປັນຄວາມໄວການສົ່ງ / ການຮັບຂໍ້ມູນ serial ແລະທີ່ກໍານົດໂດຍທັງສອງຝ່າຍລ່ວງຫນ້າຂອງການໂອນຂໍ້ມູນ. ນອກຈາກນັ້ນ, bits ພິເສດເຊັ່ນ start ແລະ stop bits ໄດ້ຖືກເພີ່ມໃສ່ຈຸດເລີ່ມຕົ້ນແລະຈຸດສິ້ນສຸດຂອງຊຸດຂໍ້ມູນເພື່ອສ້າງເປັນຊຸດຂໍ້ມູນ UART ທີ່ສົມບູນ. ຮູບທີ 3 ສະແດງໂຄງສ້າງແພັກເກັດຂໍ້ມູນ UART ໃນຂະນະທີ່ຮູບທີ 4 ສະແດງຊຸດຂໍ້ມູນ UART 8-bit ໂດຍບໍ່ມີ parity bit.
ຮູບ 3. UART Data Packet Structure
ຮູບທີ 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-ບິດ ເວລາ |
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. ດາວນ໌ໂຫລດແລະ 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.bat | Batch 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.bat | Batch 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 |
ໝາຍເຫດ:
- ໃນ “UART_Module_Example” ລະຫັດຄໍາຮ້ອງສະຫມັກ, API ອ່ານແລະຂຽນການດໍາເນີນການແມ່ນປະຕິບັດໃນລັກສະນະ loopback, ອ້າງເຖິງ “API Usage Examples” ພາກສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
- ໃນລະຫັດແອັບພລິເຄຊັນ “UART_Bridge”, ສອງຊ່ອງ UART, UART CH0 ແລະ UART CH1, ຖືກເປີດໃຊ້ງານ, ແລະໂປຣໂຕຄໍການສື່ສານແບບກຳນົດເອງຜ່ານໂຄງສ້າງ COMMAND ຖືກປະຕິບັດລະຫວ່າງສອງອຸປະກອນ UART. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ “API Usage Examples” ພາກ.
- ລະຫັດແອັບພລິເຄຊັນຕ້ອງໃຊ້ 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:
- ຮອງຮັບສູງສຸດສີ່ຊ່ອງ UART. ຕົວກໍານົດການປ້ອນຂໍ້ມູນຂອງເຂົາເຈົ້າແມ່ນ UARTM_CH0, UARTM_CH1, UARTM_CH2 ແລະ UARTM_CH3.
- ສາມາດຕັ້ງຈຳນວນຊ່ອງ UART ໄດ້ ແລະຊ່ອງທີ່ບໍ່ໄດ້ໃຊ້ຈະບໍ່ຫຼຸດພື້ນທີ່ຄວາມຈຳທີ່ມີຢູ່.
- ການຕັ້ງຄ່າ UART ແລະຄໍານິຍາມ I/O ທັງໝົດແມ່ນແຍກອອກຈາກ APIs. ນີ້ຊ່ວຍເພີ່ມຄວາມສະດວກໃນການຄຸ້ມຄອງການຕັ້ງຄ່າແລະຫຼຸດຜ່ອນຄວາມເປັນໄປໄດ້ຂອງການຕັ້ງຄ່າທີ່ບໍ່ຖືກຕ້ອງຫຼືຂາດຫາຍໄປ.
ການຕັ້ງຄ່າຄໍາອະທິບາຍ
ພາກນີ້ຈະແນະນໍາການຕັ້ງຄ່າພາລາມິເຕີໃນ ht32_board_config.h ແລະ uart_module.h files.
- 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) - uart_module.h: ນີ້ແມ່ນສ່ວນຫົວ API file ຖືກນໍາໃຊ້ໂດຍລະຫັດແອັບພລິເຄຊັນ, ເຊິ່ງລວມມີການຕັ້ງຄ່າເລີ່ມຕົ້ນທີ່ກ່ຽວຂ້ອງ, ຄໍານິຍາມຟັງຊັນ, ແລະອື່ນໆ. ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບທີ 11, ເນື້ອຫາການຕັ້ງຄ່າເລີ່ມຕົ້ນສາມາດຖືກຂຽນທັບໂດຍການຕັ້ງຄ່າພາຍນອກ, ເຊັ່ນ: ການຕັ້ງຄ່າໃນ ht32_board_config.h. file.
ຮູບທີ 11. ການຕັ້ງຄ່າເລີ່ມຕົ້ນໃນ uart_module.h
ລາຍລະອຽດ API
- ລາຍລະອຽດປະເພດຂໍ້ມູນລະຫັດແອັບພລິເຄຊັນ.
- USAART_InitTypeDef
ນີ້ແມ່ນໂຄງສ້າງພື້ນຖານຂອງ UART ເຊິ່ງປະກອບດ້ວຍ BaudRate, WordLength, StopBits, Parity ແລະການຕັ້ງຄ່າຮູບແບບ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.ຕົວແປ ຊື່ ປະເພດ ລາຍລະອຽດ USART_BaudRate u32 UART ອັດຕາ baud ການສື່ສານ USART_WordLength u16 ຄວາມຍາວຂອງຄໍາສັບການສື່ສານ UART: 7, 8 ຫຼື 9 bits USART_StopBits u16 ການສື່ສານ UART ຢຸດຄວາມຍາວບິດ: 1 ຫຼື 2 ບິດ USART_Parity u16 ຄວາມສະເໝີພາບຂອງການສື່ສານ UART: ແມ້ແຕ່, ຄີກ, ເຄື່ອງຫມາຍ, ຊ່ອງ ຫຼືບໍ່ມີ parity USART_Mode u16 ຮູບແບບການສື່ສານ UART; APIs ຮອງຮັບພຽງແຕ່ຮູບແບບປົກກະຕິ
- USAART_InitTypeDef
- ກ່ອນທີ່ຈະໃຊ້ຟັງຊັນ API, ຈົ່ງເຮັດສໍາເລັດການຕັ້ງຄ່າພື້ນຖານ UART ໃນໂຄງການຕົ້ນຕໍ. ການຕັ້ງຄ່າພື້ນຖານ UART ສໍາລັບລະຫັດຄໍາຮ້ອງສະຫມັກນີ້ແມ່ນສະແດງຢູ່ໃນຮູບ 12. ທີ່ນີ້ອັດຕາ baud ແມ່ນ 115200bps, ຄວາມຍາວຂອງຄໍາສັບແມ່ນ 8-bit, ຄວາມຍາວຂອງບິດແມ່ນ 1-bit, ແລະບໍ່ມີຄວາມສະເຫມີພາບ.
ຮູບ 12. ການຕັ້ງຄ່າພື້ນຖານ UART - ຮູບທີ 13 ສະແດງຫນ້າທີ່ API ປະກາດໃນ uart_module.h file. ຕາຕະລາງຕໍ່ໄປນີ້ອະທິບາຍຟັງຊັນ, ຕົວກໍານົດການປ້ອນຂໍ້ມູນ ແລະການນໍາໃຊ້ຟັງຊັນ API.
ຮູບທີ 13. ການປະກາດຟັງຊັນ API ໃນ uart_module.h
ຊື່ | 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
ມີລະຫັດແອັບພລິເຄຊັນ "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 | ຄຳສັ່ງ ກ |
uCmdB | u8 | ຄໍາສັ່ງ B |
uData[3] | u8 | ຂໍ້ມູນ |
ໃນລະຫັດແອັບພລິເຄຊັນ “UART_Bridge”, ໃຊ້ gCMD1 ເພື່ອຮັບຂໍ້ມູນເປັນຊຸດຄຳສັ່ງ ແລະຫຼັງຈາກນັ້ນວິເຄາະມັນ. ຫຼັງຈາກນັ້ນ, ອີງຕາມໂປໂຕຄອນການສື່ສານທີ່ກໍາຫນົດເອງ, ກໍານົດ gCMD2 ເປັນຊຸດຕອບສະຫນອງແລະສົ່ງມັນ. ຕໍ່ໄປນີ້ແມ່ນ example ຂອງຊຸດຄໍາສັ່ງ gCMD1) ແລະຊຸດການຕອບໂຕ້ (gCMD2). ຊຸດຄຳສັ່ງ (UARTBridge_CMD1TypeDef gCMD1):
ໄບຕ໌ 0 | ໄບຕ໌ 1 | Byte 2 ~ Byte 4 |
uHeader | uCmd | uData [3] |
“ກ” | “1” | “x, y, z” |
ແພັກເກັດຕອບສະໜອງ (UARTBridge_CMD2TypeDef gCMD2):
ໄບຕ໌ 0 | ໄບຕ໌ 1 | ໄບຕ໌ 2 | Byte 3 ~ Byte 5 |
uHeader | uCmdA | uCmdB | uData [3] |
“ຂ” | “ກ” | “1” | “x, y, z” |
ອາຊີບຊັບພະຍາກອນ
ເອົາ HT32F52352 ເປັນ exampດັ່ງນັ້ນ, ຊັບພະຍາກອນທີ່ຄອບຄອງໂດຍໂມດູນ UART ແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້.
HT32F52352 | |
ຂະໜາດ ROM | 946 Bytes |
ຂະໜາດ RAM | 40*1 + 256*2 ໄບຕ໌ |
ໝາຍເຫດ:
- ຕົວແປທົ່ວໂລກລວມທັງທຸງແລະສະຖານະສໍາລັບຊ່ອງດຽວຄອບຄອງ 40 bytes ຂອງ RAM.
- ນີ້ແມ່ນສໍາລັບເງື່ອນໄຂທີ່ຊ່ອງດຽວຖືກນໍາໃຊ້ແລະຂະຫນາດ 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 |
ສາຍ USB | 1 | Micro USB, ເຊື່ອມຕໍ່ກັບ PC |
ລະຫັດຄໍາຮ້ອງສະຫມັກ | — | ເສັ້ນທາງການດາວໂຫຼດ, file ແລະການຕັ້ງຄ່າໄດເລກະທໍລີໄດ້ຖືກນໍາສະເຫນີໃນພາກ "ການດາວໂຫຼດຊັບພະຍາກອນແລະການກະກຽມ". ເສັ້ນທາງ: "\\application\Module_UART\UART_Module_Example” |
Tera Term | — | ອ້າງເຖິງພາກສ່ວນ “ຊອບແວ Terminal” |
Keil IDE | — | Keil uVision V5.xx |
ທໍາອິດ, ໃຊ້ HT32F52352 Starter Kit ລວມກັບຟັງຊັນ Virtual COM Port (VCP) ຂອງ e-Link32 Lite ສໍາລັບການແນະນໍາຄໍາຮ້ອງສະຫມັກ UART. ນີ້ຮຽກຮ້ອງໃຫ້ມີການກະກຽມດ້ານສິ່ງແວດລ້ອມດັ່ງຕໍ່ໄປນີ້:
- ມີສອງຕົວເຊື່ອມຕໍ່ USB ຢູ່ໃນກະດານ. ໃຊ້ສາຍ USB ເພື່ອເຊື່ອມຕໍ່ PC ແລະອິນເຕີເຟດ eLink32 Lite ໃນກະດານດັ່ງທີ່ສະແດງໃນຮູບ 16-(a).
- ເນື່ອງຈາກລະຫັດແອັບພລິເຄຊັນຕ້ອງໃຊ້ຟັງຊັນ e-Link32 Lite Virtual COM Port (VCP), ໃຫ້ແນ່ໃຈວ່າ PAx*2 ແລະ DAP_Tx ຂອງ UART Jumper-J2*1 ໄດ້ຖືກຫຍໍ້ໂດຍໃຊ້ jumper. ສະຖານທີ່ J2 ແມ່ນສະແດງໂດຍຮູບ 16-(b).
ໝາຍເຫດ
- J2 ໃນ Starter Kit ມີສອງທາງເລືອກ, PAx ແລະ DAP_Tx shorted ຫຼື PAx ແລະ RS232_Tx shorted. ເບິ່ງຄູ່ມືຜູ້ໃຊ້ Starter Kit ສໍາລັບຟັງຊັນການຕັ້ງຄ່າລະອຽດ.
- ສະຖານທີ່ PIN MCU UART RX ໃນຊຸດ Starter ທີ່ແຕກຕ່າງກັນແມ່ນແຕກຕ່າງກັນ. ນີ້ example ໃຊ້ PAx ເພື່ອຊີ້ບອກ PIN RX.
ຮູບທີ 16. HT32 Starter Kit Diagram
ຕອນນີ້ໃຊ້ກະດານເປົ້າໝາຍຜູ້ໃຊ້ລວມກັບຟັງຊັນ Virtual COM Port (VCP) ຂອງ e-Link32 Pro ສຳລັບການແນະນຳແອັບພລິເຄຊັນ UART. ນີ້ຮຽກຮ້ອງໃຫ້ມີການກະກຽມດ້ານສິ່ງແວດລ້ອມດັ່ງຕໍ່ໄປນີ້:
- ຂ້າງຫນຶ່ງຂອງ e-Link32 Pro ແມ່ນເຊື່ອມຕໍ່ກັບ PC ໂດຍໃຊ້ສາຍ Mini USB ແລະອີກດ້ານຫນຶ່ງແມ່ນເຊື່ອມຕໍ່ກັບກະດານເປົ້າຫມາຍຂອງຜູ້ໃຊ້ໂດຍຜ່ານສາຍສີຂີ້ເຖົ່າ 10-bit ຂອງມັນ. ການເຊື່ອມຕໍ່ລະຫວ່າງຕົວເຊື່ອມຕໍ່ SWD ຂອງສາຍເຄເບີ້ນແລະກະດານເປົ້າຫມາຍແມ່ນຖືກປະຕິບັດໂດຍໃຊ້ສາຍ Dupont, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 17-(a).
- 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 ກັບໂຄງການ
ຂັ້ນຕອນທີ 2. ເພີ່ມ ring_buffer.c file ເຂົ້າໄປໃນໂຄງການ. ຄລິກຂວາໃສ່ໂຟນເດີຜູ້ໃຊ້. ເລືອກ “ຕື່ມການທີ່ມີຢູ່ແລ້ວ Files ໄປຫາກຸ່ມ 'ຜູ້ໃຊ້'…”, ຈາກນັ້ນເລືອກ ring_buffer.c file ແລະໃຫ້ຄລິກໃສ່ "ຕື່ມ", ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 24.\ ອ້າງອີງໃສ່ "ໂຄງສ້າງໄດເລກະທໍລີ" ພາກ file ລາຍລະອຽດເສັ້ນທາງ.
ຮູບທີ 24. ເພີ່ມ ring_buffer.c File ກັບໂຄງການ
ຂັ້ນຕອນທີ 3. ລວມເອົາສ່ວນຫົວ API file ເຂົ້າໄປໃນຈຸດເລີ່ມຕົ້ນຂອງ main.c, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 25. (ເຊັ່ນ: #include “middleware/uart_module.h”)
ຮູບທີ 25. ລວມເອົາ API Header File ກັບ main.c
ຂັ້ນຕອນທີ 4. ປະຕິບັດການຕັ້ງຄ່າທີ່ຕ້ອງການສໍາລັບການສື່ສານ UART ໂດຍໃຊ້ ht32_board_config.h file. ນີ້ໄດ້ຖືກນໍາສະເຫນີໃນລາຍລະອຽດໃນພາກ "ລາຍລະອຽດການຕັ້ງຄ່າ" ແລະ "ການຕັ້ງຄ່າການດັດແກ້ແລະຄໍາຖາມທີ່ຖາມເລື້ອຍໆ".
ການຕັ້ງຄ່າການດັດແກ້ແລະ FAQs
ພາກນີ້ຈະແນະນໍາວິທີການດັດແປງການຕັ້ງຄ່າ UART ແລະອະທິບາຍບາງຄໍາຖາມທົ່ວໄປທີ່ພົບໃນລະຫວ່າງການໃຊ້.
ປ່ຽນ UART Pin Assignment
- ໂດຍອ້າງອີງໃສ່ແຜ່ນຂໍ້ມູນ HT32F52352 ພາກ “Pin Assignment”, ຊອກຫາຕາຕະລາງການຕັ້ງແຜນທີ່ຂອງຟັງຊັນທາງເລືອກທີ່ສະແດງລາຍການຟັງຊັນ AFIO ຂອງປະເພດອຸປະກອນ. ສໍາລັບປັກໝຸດ UART ທີ່ກ່ຽວຂ້ອງ, ອ້າງອີງໃສ່ຖັນ “AF6 USART/UART”, ດັ່ງທີ່ສະແດງໃນຮູບ 26.
ຮູບ 26. HT32F52352 ຕາຕະລາງການຈັບຄູ່ Function Mapping - ຂັ້ນຕອນນີ້ຈະນໍາພາຜູ້ໃຊ້ໃນການຊອກຫາ 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
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
ຖາມ: ຫຼັງຈາກ ການດໍາເນີນການ “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 |