STM32WL3x ໄມໂຄຄອນຄວບຄຸມ
ຄໍາແນະນໍາການນໍາໃຊ້ຜະລິດຕະພັນ
- ແພັກເກັດ STM32CubeWL3 ປະກອບມີຊັ້ນຕ່ຳ (LL) ແລະຮາດແວ abstraction layer (HAL) APIs ທີ່ກວມເອົາຮາດແວ microcontroller.
- ມັນຍັງສະຫນອງອົງປະກອບກາງເຊັ່ນ SigfoxTM, FatFS, ແລະ FreeRTOS kernel.
- ຊຸດມາພ້ອມກັບ examples ແລະຄໍາຮ້ອງສະຫມັກສໍາລັບການປະຕິບັດງ່າຍ.
- ສະຖາປັດຕະຍະກໍາ STM32CubeWL3 ຖືກສ້າງຂຶ້ນປະມານສາມລະດັບ: Applications, HAL, ແລະ LL.
- HAL ແລະ LL APIs ກວມເອົາຄວາມກ້ວາງຂອງຄວາມຕ້ອງການຄໍາຮ້ອງສະຫມັກ.
- HAL ສະຫນອງການນໍາໃຊ້ອຸປະກອນເສີມພື້ນຖານ examples, ແລະ LL ສະຫນອງການປົກກະຕິໃນລະດັບຕ່ໍາ.
- ລະດັບນີ້ປະກອບມີຊຸດສະຫນັບສະຫນູນກະດານ (BSP) ແລະຊັ້ນຍ່ອຍ HAL.
- BSP ສະຫນອງ APIs ສໍາລັບອົງປະກອບຮາດແວຢູ່ໃນກະດານ, ໃນຂະນະທີ່ HAL ສະຫນອງການນໍາໃຊ້ອຸປະກອນຕໍ່ພ່ວງພື້ນຖານ examples.
- ໄດເວີ BSP ເຊື່ອມຕໍ່ໄດເວີອົງປະກອບກັບກະດານສະເພາະ, ເຮັດໃຫ້ມັນງ່າຍຕໍ່ການພອດກັບຮາດແວອື່ນ.
- STM32CubeWL3 HAL ແລະ LL ແມ່ນປະກອບເຂົ້າກັນໄດ້, ເຊິ່ງກວມເອົາຄວາມຕ້ອງການຄໍາຮ້ອງສະຫມັກທີ່ຫຼາກຫຼາຍ.
- ຜູ້ໃຊ້ສາມາດນຳໃຊ້ APIs ເຫຼົ່ານີ້ເພື່ອພົວພັນກັບຮາດແວ microcontroller ຢ່າງມີປະສິດທິພາບ.
ແນະນຳ
STM32Cube ແມ່ນການລິເລີ່ມຕົ້ນສະບັບ STMicroelectronics ເພື່ອປັບປຸງຜະລິດຕະພັນຂອງຜູ້ອອກແບບຢ່າງຫຼວງຫຼາຍໂດຍການຫຼຸດຜ່ອນຄວາມພະຍາຍາມໃນການພັດທະນາ, ເວລາ, ແລະຄ່າໃຊ້ຈ່າຍ. STM32Cube ກວມເອົາຫຼັກຊັບ STM32 ທັງໝົດ. STM32Cube ປະກອບມີ:
STM32Cube ປະກອບມີ:
- ຊຸດຂອງເຄື່ອງມືພັດທະນາຊອບແວທີ່ເປັນມິດກັບຜູ້ໃຊ້ເພື່ອກວມເອົາການພັດທະນາໂຄງການຈາກແນວຄວາມຄິດໄປສູ່ການປະຕິບັດຕົວຈິງ, ໃນນັ້ນມີ:
- STM32CubeMX, ເຄື່ອງມືການຕັ້ງຄ່າຊອບແວກຣາຟິກທີ່ອະນຸຍາດໃຫ້ສ້າງລະຫັດເບື້ອງຕົ້ນ C ອັດຕະໂນມັດໂດຍໃຊ້ຕົວຊ່ວຍສ້າງກາຟິກ
- STM32CubeIDE, ເຄື່ອງມືພັດທະນາທັງໝົດໃນໜຶ່ງດຽວທີ່ມີການຕັ້ງຄ່າອຸປະກອນຕໍ່ພ່ວງ, ການສ້າງລະຫັດ, ການລວບລວມລະຫັດ ແລະຄຸນສົມບັດດີບັກ
- STM32CubeCLT, ເປັນຊຸດເຄື່ອງມືພັດທະນາເສັ້ນຄຳສັ່ງທັງໝົດໃນໜຶ່ງດຽວ ດ້ວຍການລວບລວມລະຫັດ, ການຂຽນໂປຣແກຣມບອດ ແລະຄຸນສົມບັດດີບັກ
- STM32CubeProgrammer (STM32CubeProg), ເຄື່ອງມືການຂຽນໂປລແກລມທີ່ມີຢູ່ໃນຮູບແບບກາຟິກແລະເສັ້ນຄໍາສັ່ງ
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), ເຄື່ອງມືຕິດຕາມກວດກາທີ່ມີປະສິດທິພາບເພື່ອປັບພຶດຕິກໍາ ແລະການປະຕິບັດຂອງແອັບພລິເຄຊັນ STM32 ໃນເວລາຈິງ
- STM32Cube MCU ແລະ MPU Packages, ແພລະຕະຟອມຊອບແວທີ່ຝັງຕົວແບບຄົບວົງຈອນສະເພາະກັບແຕ່ລະຊຸດ microcontroller ແລະ microprocessor (ເຊັ່ນ: STM32CubeWL3 ສໍາລັບສາຍຜະລິດຕະພັນ STM32WL3x), ເຊິ່ງລວມມີ:
- STM32Cube abstraction layer (HAL), ຮັບປະກັນການເຄື່ອນທີ່ສູງສຸດໃນທົ່ວຫຼັກຊັບ STM32
- STM32Cube APIs ຊັ້ນຕ່ໍາ, ຮັບປະກັນການປະຕິບັດທີ່ດີທີ່ສຸດແລະຮອຍຕີນທີ່ມີລະດັບສູງຂອງການຄວບຄຸມຜູ້ໃຊ້ໃນໄລຍະຮາດແວ.
- ຊຸດທີ່ສອດຄ່ອງຂອງອົງປະກອບກາງເຊັ່ນ: FreeRTOS™ kernel, FatFS, ແລະ Sigfox™
- ອຸປະຖຳຂອງຊອບແວທີ່ຝັງໄວ້ທັງໝົດທີ່ມີຊຸດອຸປະກອນຕໍ່ພ່ວງ ແລະ ແອັບພລິເຄຊັນamples
- STM32Cube Expansion Packages, ເຊິ່ງປະກອບດ້ວຍອົງປະກອບຊອບແວທີ່ຝັງໄວ້ທີ່ເສີມການທໍາງານຂອງ STM32Cube MCU ແລະ MPU Packages ກັບ:
- ສ່ວນຂະຫຍາຍອຸປະກອນກາງ ແລະຊັ້ນນຳໃຊ້
- Examples ແລ່ນຢູ່ໃນບາງກະດານພັດທະນາ STMicroelectronics ສະເພາະ
- ຄູ່ມືຜູ້ໃຊ້ນີ້ອະທິບາຍວິທີການເລີ່ມຕົ້ນກັບ STM32CubeWL3 MCU Package.
ພາກທີ 2 ອະທິບາຍລັກສະນະຕົ້ນຕໍຂອງ STM32CubeWL3 ແລະພາກທີ 3 ສະຫນອງການສິ້ນສຸດview ຂອງສະຖາປັດຕະຍະກໍາຂອງມັນແລະໂຄງສ້າງ MCU Package.
ຂໍ້ມູນທົ່ວໄປ
- STM32CubeWL3 ແລ່ນຄໍາຮ້ອງສະຫມັກການສາທິດ sub-GHz, ລວມທັງ Sigfox™ binaries, ໃນ STM32WL3x ຜະລິດຕະພັນ microcontrollers ອີງໃສ່ໂຮງງານຜະລິດ Arm® Cortex®-M0+.
- ໄມໂຄຄອນຄວບຄຸມ STM32WL3x ຝັງອຸປະກອນຕໍ່ທໍ່ວິທະຍຸ RF ທີ່ໃຊ້ໄດ້ມາດຕະຖານຂອງ STMicroelectronics, ເໝາະສຳລັບການບໍລິໂພກພະລັງງານຕໍ່າສຸດ ແລະປະສິດທິພາບວິທະຍຸທີ່ດີເລີດ, ຕະຫຼອດຊີວິດຂອງແບັດເຕີຣີທີ່ບໍ່ມີໃຜທຽບເທົ່າໄດ້.
ໝາຍເຫດ: Arm ເປັນເຄື່ອງໝາຍການຄ້າທີ່ຈົດທະບຽນຂອງ Arm Limited (ຫຼືບໍລິສັດຍ່ອຍຂອງມັນ) ໃນສະຫະລັດ ແລະ/ຫຼືຢູ່ບ່ອນອື່ນ.
ຄຸນນະສົມບັດຕົ້ນຕໍ STM32CubeWL3
- STM32CubeWL3 MCU Package ແລ່ນດ້ວຍໄມໂຄຄອນຄວບຄຸມ STM32 32-bit ໂດຍອີງໃສ່ໂປເຊດເຊີ Arm® Cortex®-M0+. ມັນລວບລວມ, ໃນຊຸດດຽວ, ອົງປະກອບຊອບແວທີ່ຝັງຢູ່ທົ່ວໄປທັງຫມົດທີ່ຕ້ອງການເພື່ອພັດທະນາແອັບພລິເຄຊັນສໍາລັບ ສາຍຜະລິດຕະພັນ STM32WL3x microcontrollers.
- ຊຸດປະກອບມີຊັ້ນຕ່ໍາ (LL) ແລະຊັ້ນ abstraction ຮາດແວ (HAL) APIs ທີ່ກວມເອົາຮາດແວ microcontroller, ພ້ອມກັບຊຸດອັນກວ້າງຂວາງຂອງ ex.amples ແລ່ນຢູ່ໃນກະດານ STMicroelectronics. HAL ແລະ LL APIs ແມ່ນມີຢູ່ໃນໃບອະນຸຍາດ BSD ແຫຼ່ງເປີດເພື່ອຄວາມສະດວກຂອງຜູ້ໃຊ້. ມັນຍັງປະກອບມີອົງປະກອບຕົວກາງຂອງ Sigfox™, FatFS, ແລະ FreeRTOS™.
- STM32CubeWL3 MCU Package ຍັງສະຫນອງຄໍາຮ້ອງສະຫມັກແລະການສາທິດຈໍານວນຫນຶ່ງທີ່ປະຕິບັດອົງປະກອບກາງຂອງຕົນທັງຫມົດ.
- ການຈັດວາງອົງປະກອບຊຸດ STM32CubeWL3 MCU ແມ່ນສະແດງຢູ່ໃນຮູບ 1.
ສະຖາປັດຕະຍະກຳ STM32CubeWL3view
- ໂຊລູຊັ່ນ STM32CubeWL3 MCU Package ຖືກສ້າງຂຶ້ນປະມານສາມລະດັບເອກະລາດທີ່ໂຕ້ຕອບໄດ້ງ່າຍດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນຮູບ 2.
ລະດັບ 0
ລະດັບນີ້ແບ່ງອອກເປັນສາມຊັ້ນຍ່ອຍ:
- ຊຸດສະຫນັບສະຫນູນກະດານ (BSP).
- ຮາດແວ abstraction layer (HAL):
- HAL ໄດເວີຕໍ່ຂ້າງ
- ໄດເວີຊັ້ນຕ່ໍາ
- ການນໍາໃຊ້ອຸປະກອນຕໍ່ຂ້າງພື້ນຖານ examples.
ຊຸດສະຫນັບສະຫນູນກະດານ (BSP)
ຊັ້ນນີ້ສະຫນອງຊຸດຂອງ APIs ທີ່ກ່ຽວຂ້ອງກັບອົງປະກອບຮາດແວໃນກະດານຮາດແວ (ເຊັ່ນ: LEDs, ປຸ່ມ, ແລະໄດເວີ COM). ມັນປະກອບດ້ວຍສອງພາກສ່ວນ:
ອົງປະກອບ:
- ນີ້ແມ່ນໄດເວີທີ່ກ່ຽວຂ້ອງກັບອຸປະກອນພາຍນອກຢູ່ໃນກະດານແລະບໍ່ແມ່ນ STM32. ໄດເວີອົງປະກອບສະຫນອງ APIs ສະເພາະກັບອົງປະກອບພາຍນອກຂອງໄດເວີ BSP ແລະສາມາດເຄື່ອນທີ່ໃນກະດານອື່ນໆ.
- ຄົນຂັບ BSP:
- ມັນອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ໄດເວີອົງປະກອບກັບກະດານສະເພາະແລະສະຫນອງຊຸດ API ທີ່ເປັນມິດກັບຜູ້ໃຊ້. ກົດລະບຽບການຕັ້ງຊື່ API ແມ່ນ BSP_FUNCT_Action().
- Example: BSP_LED_Init(), BSP_LED_On()
BSP ແມ່ນອີງໃສ່ສະຖາປັດຕະຍະກຳແບບໂມດູລາທີ່ໃຫ້ການພອດໄດ້ງ່າຍໃນຮາດແວໃດນຶ່ງໂດຍພຽງແຕ່ປະຕິບັດການກຳນົດລະດັບຕໍ່າ.
ຊັ້ນ abstraction ຮາດແວ (HAL) ແລະຊັ້ນຕ່ໍາ (LL)
STM32CubeWL3 HAL ແລະ LL ແມ່ນປະກອບເຂົ້າກັນ ແລະກວມເອົາຄວາມຮຽກຮ້ອງຕ້ອງການຂອງແອັບພລິເຄຊັນທີ່ຫຼາກຫຼາຍ:
- ໄດເວີ HAL ສະເຫນີ APIs ແບບພົກພາສູງທີ່ເນັ້ນໃສ່ຫນ້າທີ່ສູງ. ພວກມັນເຊື່ອງ MCU ແລະຄວາມຊັບຊ້ອນຂອງອຸປະກອນຕໍ່ຂ້າງໃຫ້ກັບຜູ້ໃຊ້ສຸດທ້າຍ.
ໄດເວີ HAL ສະຫນອງ APIs ຮັດກຸມລັກສະນະຫຼາຍແບບທົ່ວໄປ, ເຊິ່ງເຮັດໃຫ້ການປະຕິບັດຄໍາຮ້ອງສະຫມັກຂອງຜູ້ໃຊ້ງ່າຍຂຶ້ນໂດຍການສະຫນອງຂະບວນການພ້ອມທີ່ຈະໃຊ້. ຕົວຢ່າງample, ສໍາລັບອຸປະກອນຕໍ່ພ່ວງການສື່ສານ (I2C, UART, ແລະອື່ນໆ), ມັນສະຫນອງ APIs ອະນຸຍາດໃຫ້ການເລີ່ມຕົ້ນແລະການຕັ້ງຄ່າອຸປະກອນຂ້າງຄຽງ, ການຄຸ້ມຄອງການໂອນຂໍ້ມູນໂດຍອີງໃສ່ການລົງຄະແນນສຽງ, ການຂັດຂວາງ, ຫຼືຂະບວນການ DMA, ແລະການຈັດການຄວາມຜິດພາດການສື່ສານທີ່ອາດຈະເກີດຂື້ນໃນລະຫວ່າງການສື່ສານ. APIs ໄດເວີ HAL ຖືກແບ່ງອອກເປັນສອງປະເພດ:- APIs ທົ່ວໄປ, ເຊິ່ງສະຫນອງຫນ້າທີ່ທົ່ວໄປແລະທົ່ວໄປໃຫ້ກັບ microcontrollers ຊຸດ STM32 ທັງຫມົດ.
- Extension APIs, ເຊິ່ງສະຫນອງຫນ້າທີ່ສະເພາະແລະປັບແຕ່ງສໍາລັບຄອບຄົວສະເພາະຫຼືຈໍານວນສ່ວນສະເພາະໃດຫນຶ່ງ.
- APIs ຊັ້ນຕ່ໍາສະຫນອງ APIs ລະດັບຕ່ໍາໃນລະດັບລົງທະບຽນ, ມີການເພີ່ມປະສິດທິພາບທີ່ດີກວ່າແຕ່ມີການເຄື່ອນຍ້າຍຫນ້ອຍລົງ.
ພວກເຂົາຕ້ອງການຄວາມຮູ້ຢ່າງເລິກເຊິ່ງກ່ຽວກັບ MCU ແລະຂໍ້ມູນສະເພາະຂອງອຸປະກອນຕໍ່ພ່ວງ.
ໄດເວີ LL ໄດ້ຖືກອອກແບບເພື່ອສະເຫນີຊັ້ນທີ່ມີນ້ໍາຫນັກເບົາໄວ, ຜູ້ຊ່ຽວຊານທີ່ເນັ້ນໃສ່ທີ່ໃກ້ຊິດກັບຮາດແວຫຼາຍກວ່າ HAL. ກົງກັນຂ້າມກັບ HAL, LL APIs ບໍ່ໄດ້ຖືກສະຫນອງໃຫ້ອຸປະກອນຕໍ່ພ່ວງທີ່ການເຂົ້າເຖິງທີ່ເຫມາະສົມບໍ່ແມ່ນລັກສະນະທີ່ສໍາຄັນ, ຫຼືສໍາລັບຜູ້ທີ່ຕ້ອງການການຕັ້ງຄ່າຊອບແວທີ່ຫນັກແຫນ້ນຫຼື stack ຊັ້ນເທິງທີ່ສັບສົນ.
ຄຸນນະສົມບັດຂອງຄົນຂັບ LL: - ຊຸດຂອງຟັງຊັນເພື່ອເລີ່ມຕົ້ນລັກສະນະຕົ້ນຕໍ peripheral ຕາມພາລາມິເຕີທີ່ລະບຸໄວ້ໃນໂຄງສ້າງຂໍ້ມູນ.
- ຊຸດຂອງຟັງຊັນເພື່ອຕື່ມຂໍ້ມູນໃສ່ໂຄງສ້າງຂໍ້ມູນເບື້ອງຕົ້ນດ້ວຍຄ່າປັບຄ່າທີ່ສອດຄ້ອງກັບແຕ່ລະຊ່ອງຂໍ້ມູນ.
- ຟັງຊັນສຳລັບການຍົກເລີກການເລີ່ມຕົ້ນຂອງອຸປະກອນຕໍ່ຂ້າງ (ການລົງທະບຽນອຸປະກອນຕໍ່ພ່ວງຖືກຟື້ນຟູເປັນຄ່າເລີ່ມຕົ້ນຂອງພວກມັນ).
- ຊຸດຂອງຫນ້າທີ່ inline ສໍາລັບການເຂົ້າເຖິງການລົງທະບຽນໂດຍກົງແລະປະລໍາມະນູ.
- ຄວາມເປັນເອກະລາດຢ່າງເຕັມທີ່ຈາກ HAL ແລະຄວາມສາມາດໃນການນໍາໃຊ້ໃນຮູບແບບ standalone (ບໍ່ມີຄົນຂັບ HAL).
- ການຄຸ້ມຄອງຢ່າງເຕັມທີ່ຂອງຄຸນນະສົມບັດ peripheral ສະຫນັບສະຫນູນ.
ການນໍາໃຊ້ອຸປະກອນຕໍ່ຂ້າງພື້ນຖານ examples
ຊັ້ນນີ້ກວມເອົາ examples ສ້າງຢູ່ເທິງອຸປະກອນຕໍ່ພ່ວງ STM32 ໂດຍໃຊ້ພຽງແຕ່ຊັບພະຍາກອນ HAL ແລະ BSP.
ໝາຍເຫດ: ການສາທິດ examples ຍັງມີຢູ່ເພື່ອສະແດງໃຫ້ເຫັນ ex ສະລັບສັບຊ້ອນຫຼາຍample ສະຖານະການທີ່ມີອຸປະກອນຕໍ່ພ່ວງສະເພາະ, ເຊັ່ນ MRSUBG ແລະ LPAWUR.
ລະດັບ 1
ລະດັບນີ້ແບ່ງອອກເປັນສອງຊັ້ນຍ່ອຍ:
- ອົງປະກອບຂອງອຸປະກອນກາງ
- Examples ອີງໃສ່ອົງປະກອບກາງ
ອົງປະກອບຂອງອຸປະກອນກາງ
ສື່ກາງແມ່ນຊຸດຂອງຫ້ອງສະໝຸດທີ່ກວມເອົາ FreeRTOS™ kernel, FatFS, ແລະ Sigfox™ protocol library.
ປະຕິສໍາພັນຕາມລວງນອນລະຫວ່າງອົງປະກອບຂອງຊັ້ນນີ້ແມ່ນເຮັດໄດ້ໂດຍການໂທຫາ APIs ທີ່ໂດດເດັ່ນ.
ປະຕິສໍາພັນແນວຕັ້ງກັບໄດເວີຊັ້ນຕ່ໍາແມ່ນເຮັດໄດ້ໂດຍຜ່ານການເອີ້ນຄືນສະເພາະແລະ macros static ປະຕິບັດໃນການໂຕ້ຕອບການໂທລະບົບຫ້ອງສະຫມຸດ.
ລັກສະນະຕົ້ນຕໍຂອງແຕ່ລະອົງປະກອບກາງມີດັ່ງນີ້:
- FreeRTOS™ kernel: ປະຕິບັດລະບົບປະຕິບັດງານເວລາຈິງ (RTOS), ອອກແບບສໍາລັບລະບົບຝັງ.
- Sigfox ™: ປະຕິບັດຫ້ອງສະຫມຸດອະນຸສັນຍາ Sigfox ™ທີ່ສອດຄ່ອງກັບເຄືອຂ່າຍໂປໂຕຄອນ Sigfox™ ແລະປະກອບມີຫ້ອງສະຫມຸດໂປໂຕຄອນການທົດສອບ RF ເພື່ອທົດສອບກັບເຄື່ອງມື RF Sigfox™.
- FatFS: ປະຕິບັດ FAT ທົ່ວໄປ file ໂມດູນລະບົບ.
Examples ອີງໃສ່ອົງປະກອບກາງ
- ແຕ່ລະອົງປະກອບເຄື່ອງກາງມາພ້ອມກັບຫນຶ່ງຫຼືຫຼາຍ examples, ຍັງເອີ້ນວ່າຄໍາຮ້ອງສະຫມັກ, ສະແດງວິທີການນໍາໃຊ້ມັນ.
- ການປະສົມປະສານ examples ທີ່ໃຊ້ອົງປະກອບຕົວກາງຫຼາຍອັນໄດ້ຖືກສະຫນອງໃຫ້ເຊັ່ນດຽວກັນ.
ຊຸດເຟີມແວ STM32CubeWL3 ສິ້ນສຸດລົງview
ຮອງຮັບອຸປະກອນ ແລະຮາດແວ STM32WL3x
- STM32Cube ສະເໜີຊັ້ນອະເນກປະສົງຂອງຮາດແວແບບເຄື່ອນທີ່ສູງ (HAL) ທີ່ສ້າງຂຶ້ນອ້ອມຮອບສະຖາປັດຕະຍະກຳທົ່ວໄປ. ມັນອະນຸຍາດໃຫ້ຫຼັກການການສ້າງຊັ້ນ, ເຊັ່ນ: ການນໍາໃຊ້ຊັ້ນກາງເພື່ອປະຕິບັດຫນ້າທີ່ຂອງເຂົາເຈົ້າໂດຍບໍ່ຮູ້, ເລິກ, ສິ່ງທີ່ MCU ຖືກນໍາໃຊ້. ນີ້ປັບປຸງການນໍາມາໃຊ້ລະຫັດຫ້ອງສະໝຸດຄືນໃໝ່ ແລະຮັບປະກັນການພົກພາໄດ້ງ່າຍຕໍ່ກັບອຸປະກອນອື່ນໆ.
- ນອກຈາກນັ້ນ, ດ້ວຍສະຖາປັດຕະຍະກໍາຊັ້ນ, STM32CubeWL3 ສະຫນອງການສະຫນັບສະຫນູນຢ່າງເຕັມທີ່ສໍາລັບທຸກສາຍຜະລິດຕະພັນ STM32WL3x.
- ຜູ້ໃຊ້ຕ້ອງກໍານົດ macro ທີ່ຖືກຕ້ອງໃນ stm32wl3x.h ເທົ່ານັ້ນ.
- ຕາຕະລາງ 1 ສະແດງມະຫາພາກເພື່ອກໍານົດໂດຍຂຶ້ນກັບອຸປະກອນສາຍຜະລິດຕະພັນ STM32WL3x ທີ່ໃຊ້. ມະຫາພາກນີ້ຕ້ອງຖືກກຳນົດໄວ້ໃນຕົວປະມວນຜົນກ່ອນ compiler.
ຕາຕະລາງ 1. Macros ສໍາລັບສາຍຜະລິດຕະພັນ STM32WL3x
Macro ກໍານົດໃນ STM32WL3X.h | ອຸປະກອນສາຍຜະລິດຕະພັນ STM32WL3x |
stm32wl3x | ໄມໂຄຄອນຄວບຄຸມ STM32WL30xx STM32WL31xx ໄມໂຄຄອນຄວບຄຸມ STM32WL33xx |
ຕາຕະລາງ 2. ກະດານສໍາລັບສາຍຜະລິດຕະພັນ STM32WL3x
ກະດານ | ອຸປະກອນທີ່ຮອງຮັບກະດານ STM32WL3x |
NUCLEO-WL33CC1 | STM32WL33CC |
NUCLEO-WL33CC2 | STM32WL33CC |
ຊຸດ STM32CubeWL3 MCU ສາມາດແລ່ນໄດ້ໃນຮາດແວທີ່ເຂົ້າກັນໄດ້. ຜູ້ໃຊ້ອັບເດດໄດເວີ BSP ເພື່ອພອດ ex ທີ່ສະໜອງໃຫ້amples ໃນກະດານຂອງພວກເຂົາ, ຖ້າສິ່ງເຫຼົ່ານີ້ມີລັກສະນະຮາດແວດຽວກັນ (ເຊັ່ນ: LEDs ຫຼືປຸ່ມ).
ຊຸດເຟີມແວຫຼາຍກວ່າview
- STM32CubeWL3 MCU Package solution ແມ່ນໃຫ້ຢູ່ໃນຊຸດ zip ດຽວ, ດ້ວຍໂຄງສ້າງທີ່ສະແດງຢູ່ໃນຮູບ 3.
ຂໍ້ຄວນລະວັງ: ຜູ້ໃຊ້ຕ້ອງບໍ່ດັດແປງອົງປະກອບ fileດ. ຜູ້ໃຊ້ສາມາດແກ້ໄຂ \ ແຫຼ່ງໂຄງການເທົ່ານັ້ນ. ສໍາລັບແຕ່ລະຄະນະ, ຊຸດຂອງ examples ແມ່ນສະຫນອງໃຫ້ກັບໂຄງການ preconfigured ສໍາລັບ EWARM, MDK-ARM, ແລະ STM32CubeIDE toolchains.
ຮູບທີ 4 ສະແດງໂຄງສ້າງໂຄງການສໍາລັບກະດານ NUCLEO-WL33CCx.
ອະດີດamples ຖືກຈັດປະເພດຂຶ້ນກັບລະດັບ STM32CubeWL3 ທີ່ພວກເຂົາໃຊ້. ພວກເຂົາເຈົ້າມີຊື່ດັ່ງຕໍ່ໄປນີ້:
- ລະດັບ 0 ຕົວຢ່າງamples ຖືກເອີ້ນວ່າ Examples, Examples_LL, ແລະ Examples_MIX. ພວກເຂົາໃຊ້ໄດເວີ HAL ຕາມລໍາດັບ, ໄດເວີ LL, ແລະການປະສົມຂອງໄດເວີ HAL ແລະ LL ໂດຍບໍ່ມີອົງປະກອບກາງໃດໆ. ການສາທິດ examples ຍັງມີຢູ່.
- ລະດັບ 1 ຕົວຢ່າງamples ເອີ້ນວ່າຄໍາຮ້ອງສະຫມັກ. ພວກເຂົາເຈົ້າສະຫນອງກໍລະນີການນໍາໃຊ້ປົກກະຕິຂອງແຕ່ລະອົງປະກອບກາງ.
ແອັບພລິເຄຊັນເຟີມແວໃດນຶ່ງສຳລັບກະດານທີ່ໃຫ້ມາສາມາດສ້າງໄດ້ໄວໂດຍໃຊ້ໂປຣເຈັກແມ່ແບບທີ່ມີຢູ່ໃນລາຍການ Templates ແລະ Templates_LL.
Examples, Examples_LL, ແລະ Examples_MIX ມີໂຄງສ້າງດຽວກັນ:
- \inc ໂຟນເດີທີ່ມີສ່ວນຫົວທັງໝົດ files.
- \src ໂຟນເດີທີ່ມີລະຫັດແຫຼ່ງ.
- ໂຟນເດີ \EWARM, \MDK-ARM, ແລະ \STM32CubeIDE ປະກອບດ້ວຍໂຄງການທີ່ກຳນົດຄ່າໄວ້ລ່ວງໜ້າສຳລັບແຕ່ລະຕ່ອງໂສ້ເຄື່ອງມື.
- readme.md ແລະ readme.html ອະທິບາຍ example ພຶດຕິກໍາແລະສະພາບແວດລ້ອມທີ່ຈໍາເປັນເພື່ອເຮັດໃຫ້ມັນເຮັດວຽກ.
ເລີ່ມຕົ້ນດ້ວຍ STM32CubeWL3
ແລ່ນ ex ທໍາອິດample
ພາກສ່ວນນີ້ອະທິບາຍວ່າມັນງ່າຍດາຍແນວໃດທີ່ຈະດໍາເນີນການ ex ທໍາອິດample ພາຍໃນ STM32CubeWL3. ມັນໃຊ້ເປັນຕົວຢ່າງຂອງການຜະລິດສະຫຼັບ LED ແບບງ່າຍດາຍທີ່ແລ່ນຢູ່ໃນກະດານ NUCLEO-WL33CC1:
- ດາວໂຫລດແພັກເກັດ MCU STM32CubeWL3.
- Unzip ມັນ, ຫຼືດໍາເນີນການຕິດຕັ້ງຖ້າຫາກວ່າສະຫນອງໃຫ້, ເຂົ້າໄປໃນໄດເລກະທໍລີທີ່ທ່ານເລືອກ.
- ໃຫ້ແນ່ໃຈວ່າບໍ່ໄດ້ດັດແປງໂຄງສ້າງແພັກເກັດທີ່ສະແດງຢູ່ໃນຮູບ 3. ໂຄງສ້າງແພັກເກັດເຟີມແວ STM32CubeWL3. ໃຫ້ສັງເກດວ່າມັນຍັງແນະນໍາໃຫ້ຄັດລອກຊຸດທີ່ຕັ້ງຢູ່ໃກ້ກັບປະລິມານຮາກ (ຫມາຍຄວາມວ່າ C:\ST ຫຼື G:\Tests), ເນື່ອງຈາກວ່າບາງ IDEs ພົບບັນຫາໃນເວລາທີ່ເສັ້ນທາງຍາວເກີນໄປ.
ວິທີການດໍາເນີນການ HAL example
ກ່ອນທີ່ຈະໂຫລດແລະແລ່ນ example, ມັນແມ່ນແນະນໍາໃຫ້ອ່ານ exampອ່ານຂ້ອຍ file ສໍາລັບການຕັ້ງຄ່າສະເພາະໃດຫນຶ່ງ.
- ເລືອກເບິ່ງ \Projects\NUCLEO-WL33CC\Examples.
- ເປີດ \GPIO, ຈາກນັ້ນ \GPIO_EXTI ໂຟນເດີ.
- ເປີດໂຄງການດ້ວຍລະບົບຕ່ອງໂສ້ເຄື່ອງມືທີ່ຕ້ອງການ. ໄວກວ່າview ກ່ຽວກັບວິທີການເປີດ, ສ້າງ, ແລະດໍາເນີນການ example ກັບຕ່ອງໂສ້ເຄື່ອງມືທີ່ສະຫນັບສະຫນູນແມ່ນໃຫ້ຂ້າງລຸ່ມນີ້.
- ກໍ່ສ້າງຄືນໃຫມ່ທັງຫມົດ files ແລະໂຫຼດຮູບພາບເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາເປົ້າຫມາຍ.
- ດໍາເນີນການ exampເລ. ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງ exampອ່ານຂ້ອຍ file.
ເພື່ອເປີດ, ສ້າງ, ແລະດໍາເນີນການ example ກັບແຕ່ລະເຄື່ອງມືທີ່ສະຫນັບສະຫນູນ, ປະຕິບັດຕາມຂັ້ນຕອນຂ້າງລຸ່ມນີ້:
- ອຸ່ນ:
- ພາຍໃຕ້ Examples folder, ເປີດໂຟນເດີຍ່ອຍ \EWARM.
- ເປີດໃຊ້ພື້ນທີ່ເຮັດວຽກ Project.eww (ຊື່ພື້ນທີ່ເຮັດວຽກອາດຈະປ່ຽນຈາກອັນໜຶ່ງampໄປຫາຄົນອື່ນ).
- ກໍ່ສ້າງຄືນໃຫມ່ທັງຫມົດ files: [ໂຄງການ]>[ສ້າງຄືນໃຫມ່ທັງຫມົດ].
- ໂຫຼດຮູບພາບໂຄງການ: [ໂຄງການ]> [Debug].
- ດໍາເນີນການໂຄງການ: [Debug]>[Go (F5)].
- MDK-ARM:
- ພາຍໃຕ້ Examples folder, ເປີດໂຟນເດີຍ່ອຍ \MDK-ARM.
- ເປີດພື້ນທີ່ເຮັດວຽກ Project.uvproj (ຊື່ພື້ນທີ່ເຮັດວຽກອາດຈະປ່ຽນຈາກອັນໜຶ່ງampໄປຫາຄົນອື່ນ).
- ກໍ່ສ້າງຄືນໃຫມ່ທັງຫມົດ files: [ໂຄງການ]>[ສ້າງເປົ້າໝາຍທັງໝົດ files].
- ໂຫຼດຮູບໂຄງການ: [Debug]>[Start/Stop Debug Session].
- ດໍາເນີນການໂຄງການ: [Debug]>[Run (F5)].
- STM32CubeIDE:
- ເປີດລະບົບຕ່ອງໂສ້ເຄື່ອງມື STM32CubeIDE.
- ຄລິກທີ່ [File]>[ສະຫຼັບພື້ນທີ່ເຮັດວຽກ]>[ອື່ນໆ] ແລະທ່ອງໄປຫາໄດເຣັກທໍຣີພື້ນທີ່ເຮັດວຽກ STM32CubeIDE.
- ຄລິກທີ່ [File]>[ການນໍາເຂົ້າ], ເລືອກ [ທົ່ວໄປ]>[ໂຄງການທີ່ມີຢູ່ແລ້ວເຂົ້າໄປໃນບ່ອນເຮັດວຽກ], ແລະຈາກນັ້ນຄລິກ [Next].
- ໄປຫາໄດເລກະທໍລີພື້ນທີ່ເຮັດວຽກ STM32CubeIDE ແລະເລືອກໂຄງການ.
- ກໍ່ສ້າງໂຄງການທັງຫມົດ files: ເລືອກໂຄງການຢູ່ໃນປ່ອງຢ້ຽມ Project Explorer ຫຼັງຈາກນັ້ນໃຫ້ຄລິກໃສ່ [ໂຄງການ]> [ສ້າງໂຄງການ] ເມນູ.
- ດໍາເນີນການໂຄງການ: [Run]>[Debug (F11)].
ການພັດທະນາຄໍາຮ້ອງສະຫມັກທີ່ກໍາຫນົດເອງ
ໃຊ້ STM32CubeMX ເພື່ອພັດທະນາ ຫຼືອັບເດດແອັບພລິເຄຊັນ
- ໃນຊຸດ STM32Cube MCU, ເກືອບທຸກໂຄງການ examples ແມ່ນຖືກສ້າງຂຶ້ນດ້ວຍເຄື່ອງມື STM32CubeMX ເພື່ອເລີ່ມຕົ້ນລະບົບ, ອຸປະກອນຕໍ່ພ່ວງ, ແລະເຄື່ອງກາງ.
ການນໍາໃຊ້ໂດຍກົງຂອງໂຄງການທີ່ມີຢູ່ແລ້ວ example ຈາກເຄື່ອງມື STM32CubeMX ຕ້ອງການ STM32CubeMX 6.12.0 ຫຼືສູງກວ່າ:
- ຫຼັງຈາກການຕິດຕັ້ງ STM32CubeMX, ເປີດແລະຖ້າຈໍາເປັນປັບປຸງໂຄງການທີ່ສະເຫນີ.
ວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະເປີດໂຄງການທີ່ມີຢູ່ແລ້ວແມ່ນການຄລິກສອງຄັ້ງໃສ່ *.ioc file ດັ່ງນັ້ນ STM32CubeMX ເປີດໂຄງການແລະແຫຼ່ງຂອງມັນໂດຍອັດຕະໂນມັດ files. STM32CubeMX ສ້າງລະຫັດແຫຼ່ງເບື້ອງຕົ້ນຂອງໂຄງການດັ່ງກ່າວ. - ລະຫັດແຫຼ່ງຄໍາຮ້ອງສະຫມັກຕົ້ນຕໍແມ່ນປະກອບດ້ວຍຄໍາເຫັນ "USER CODE BEGIN" ແລະ "USER CODE END". ຖ້າການເລືອກອຸປະກອນຕໍ່ພ່ວງ ແລະການຕັ້ງຄ່າຖືກແກ້ໄຂ, STM32CubeMX ປັບປຸງສ່ວນເລີ່ມຕົ້ນຂອງລະຫັດໃນຂະນະທີ່ຮັກສາລະຫັດແຫຼ່ງແອັບພລິເຄຊັນຫຼັກ.
- ເພື່ອພັດທະນາໂຄງການທີ່ກໍາຫນົດເອງກັບ STM32CubeMX, ປະຕິບັດຕາມຂັ້ນຕອນໂດຍຂັ້ນຕອນ:
- ຕັ້ງຄ່າຊອບແວທີ່ຝັງໄວ້ທັງໝົດທີ່ຕ້ອງການໂດຍໃຊ້ຕົວແກ້ໄຂຂໍ້ຂັດແຍ່ງ pinout, ຕົວຊ່ວຍການຕັ້ງຕົ້ນໄມ້ໂມງ, ເຄື່ອງຄິດເລກການບໍລິໂພກພະລັງງານ, ແລະອຸປະກອນທີ່ປະຕິບັດການປັບຄ່າອຸປະກອນຕໍ່ຂ້າງ MCU (ເຊັ່ນ: GPIO ຫຼື USART).
- ສ້າງລະຫັດ C ເບື້ອງຕົ້ນໂດຍອີງໃສ່ການຕັ້ງຄ່າທີ່ເລືອກ. ລະຫັດນີ້ພ້ອມທີ່ຈະໃຊ້ພາຍໃນສະພາບແວດລ້ອມການພັດທະນາຫຼາຍອັນ. ລະຫັດຜູ້ໃຊ້ຖືກເກັບໄວ້ໃນການຜະລິດລະຫັດຕໍ່ໄປ.
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ STM32CubeMX, ເບິ່ງຄູ່ມືຜູ້ໃຊ້ STM32CubeMX ສໍາລັບການຕັ້ງຄ່າ STM32 ແລະການສ້າງລະຫັດເບື້ອງຕົ້ນ C (UM1718).
ຄໍາຮ້ອງສະຫມັກໄດເວີ
ຄໍາຮ້ອງສະຫມັກ HAL
ພາກນີ້ອະທິບາຍຂັ້ນຕອນທີ່ຈໍາເປັນເພື່ອສ້າງຄໍາຮ້ອງສະຫມັກ HAL ແບບກໍານົດເອງໂດຍໃຊ້ STM32CubeWL3
- ສ້າງໂຄງການ
ເພື່ອສ້າງໂຄງການໃຫມ່, ເລີ່ມຕົ້ນຈາກໂຄງການແມ່ແບບທີ່ສະຫນອງໃຫ້ແຕ່ລະກະດານພາຍໃຕ້ \Projects\ \Templates ຫຼືຈາກໂຄງການທີ່ມີຢູ່ພາຍໃຕ້ \Projects\ \ ຕົວຢ່າງamples ຫຼື \Proj ects\ \ ຄໍາຮ້ອງສະຫມັກ (ບ່ອນທີ່ ຫມາຍເຖິງຊື່ຄະນະກໍາມະ).
ໂຄງການແມ່ແບບສະຫນອງການທໍາງານ loop ຕົ້ນຕໍທີ່ເປົ່າຫວ່າງ. ຢ່າງໃດກໍ່ຕາມ, ມັນເປັນຈຸດເລີ່ມຕົ້ນທີ່ດີທີ່ຈະເຂົ້າໃຈການຕັ້ງຄ່າໂຄງການ STM32CubeWL3. ແມ່ແບບມີລັກສະນະດັ່ງຕໍ່ໄປນີ້:- ມັນມີລະຫັດແຫຼ່ງ HAL, CMSIS, ແລະ BSP ໄດເວີ, ເຊິ່ງແມ່ນຊຸດຂັ້ນຕ່ໍາຂອງອົງປະກອບທີ່ຕ້ອງການເພື່ອພັດທະນາລະຫັດໃນກະດານທີ່ກໍານົດ.
- ມັນມີເສັ້ນທາງລວມສໍາລັບອົງປະກອບເຟີມແວທັງຫມົດ.
- ມັນກໍານົດອຸປະກອນສາຍຜະລິດຕະພັນ STM32WL3x ທີ່ຮອງຮັບ, ອະນຸຍາດໃຫ້ໄດເວີ CMSIS ແລະ HAL ຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ.
- ມັນໃຫ້ຜູ້ໃຊ້ພ້ອມນຳໃຊ້ files preconfigured ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້:
- HAL ເລີ່ມຕົ້ນດ້ວຍພື້ນຖານເວລາເລີ່ມຕົ້ນດ້ວຍ Arm® core SysTick.
- SysTick ISR ຖືກຈັດຕັ້ງປະຕິບັດເພື່ອຈຸດປະສົງ HAL_Delay().
- ໝາຍເຫດ: ເມື່ອສຳເນົາໂຄງການທີ່ມີຢູ່ແລ້ວໄປໃສ່ບ່ອນອື່ນ, ໃຫ້ແນ່ໃຈວ່າເສັ້ນທາງທັງໝົດທີ່ລວມມານັ້ນຖືກອັບເດດແລ້ວ.
- ຕັ້ງຄ່າອົງປະກອບເຟີມແວ
ອົງປະກອບຂອງ HAL ແລະ middleware ສະເໜີຊຸດຕົວເລືອກການຕັ້ງຄ່າເວລາສ້າງໂດຍໃຊ້ macros #define ປະກາດໃນສ່ວນຫົວ. file. ການຕັ້ງຄ່າແມ່ແບບ file ໄດ້ຖືກສະຫນອງໃຫ້ພາຍໃນແຕ່ລະອົງປະກອບ, ເຊິ່ງຕ້ອງໄດ້ຮັບການຄັດລອກໄປທີ່ໂຟເດີໂຄງການ (ປົກກະຕິແລ້ວການຕັ້ງຄ່າ file ມີຊື່ວ່າ xxx_conf_template.h, fragment- ແມ່ແບບຈໍາເປັນຕ້ອງຖືກເອົາອອກເມື່ອຄັດລອກມັນໃສ່ໂຟນເດີໂຄງການ). ການຕັ້ງຄ່າ file ໃຫ້ຂໍ້ມູນພຽງພໍເພື່ອເຂົ້າໃຈຜົນກະທົບຂອງແຕ່ລະທາງເລືອກໃນການຕັ້ງຄ່າ. ຂໍ້ມູນລາຍລະອຽດເພີ່ມເຕີມແມ່ນມີຢູ່ໃນເອກະສານທີ່ໃຫ້ສໍາລັບແຕ່ລະອົງປະກອບ.
- ເລີ່ມຕົ້ນຫ້ອງສະຫມຸດ HAL
ຫຼັງຈາກໂດດໄປຫາໂຄງການຕົ້ນຕໍ, ລະຫັດຄໍາຮ້ອງສະຫມັກຕ້ອງໂທຫາ HAL_Init() API ເພື່ອເລີ່ມຕົ້ນຫ້ອງສະຫມຸດ HAL, ເຊິ່ງປະຕິບັດວຽກງານດັ່ງຕໍ່ໄປນີ້:- ການຕັ້ງຄ່າຂອງ flash memory prefetch ແລະ SysTick interrupt ບູລິມະສິດ (ຜ່ານ macros ທີ່ກໍານົດໄວ້ໃນ stm32 wl3x_hal_conf.h).
- ການຕັ້ງຄ່າຂອງ SysTick ເພື່ອສ້າງການຂັດຂວາງທຸກໆ millisecond ທີ່ SysTick interrupt ບູລິມະສິດ TICK_INT_PRIO ທີ່ກໍານົດໃນ stm32wl3x_hal_conf.h.
- ການຕັ້ງຄ່າບູລິມະສິດກຸ່ມ NVIC ເປັນ 0.
- ຟັງຊັນການໂທກັບ HAL_MspInit() ທີ່ກຳນົດໄວ້ໃນຜູ້ໃຊ້ stm32wl3x_hal_msp.c file ເພື່ອປະຕິບັດການເລີ່ມຕົ້ນຮາດແວລະດັບຕ່ໍາທົ່ວໂລກ.
- ຕັ້ງຄ່າໂມງລະບົບ
ການຕັ້ງຄ່າໂມງລະບົບແມ່ນເຮັດໂດຍການໂທຫາສອງ APIs ທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້:- HAL_RCC_OscConfig(): API ນີ້ກຳນົດຄ່າ oscillators ພາຍໃນ ແລະ ພາຍນອກ. ຜູ້ໃຊ້ເລືອກທີ່ຈະ
ກຳນົດຄ່າໜຶ່ງ ຫຼືທັງໝົດ oscillators. - HAL_RCC_ClockConfig(): API ນີ້ກຳນົດຄ່າແຫຼ່ງໂມງຂອງລະບົບ, ຄວາມຢືດຢຸ່ນຂອງໜ່ວຍຄວາມຈຳແຟລດ, ແລະ AHB ແລະ APB prescalers.
- HAL_RCC_OscConfig(): API ນີ້ກຳນົດຄ່າ oscillators ພາຍໃນ ແລະ ພາຍນອກ. ຜູ້ໃຊ້ເລືອກທີ່ຈະ
- ເລີ່ມຕົ້ນອຸປະກອນຕໍ່ພ່ວງ
- ກ່ອນອື່ນ ໝົດ ຂຽນຟັງຊັນການເລີ່ມຕົ້ນຂອງອຸປະກອນຂ້າງຄຽງ. ດໍາເນີນການດັ່ງຕໍ່ໄປນີ້:
- ເປີດໃຊ້ໂມງຕໍ່ຂ້າງ.
- ຕັ້ງຄ່າ GPIOs ຕໍ່ຂ້າງ.
- ຕັ້ງຄ່າຊ່ອງ DMA ແລະເປີດໃຊ້ການຂັດຂວາງ DMA (ຖ້າຈໍາເປັນ).
- ເປີດໃຊ້ການຂັດຈັງຫວະອຸປະກອນຕໍ່ຂ້າງ (ຖ້າຕ້ອງການ).
- ແກ້ໄຂ stm32xxx_it.c ເພື່ອໂທຫາຕົວຈັດການລົບກວນທີ່ຕ້ອງການ (ອຸປະກອນຕໍ່ພ່ວງ ແລະ DMA), ຖ້າຈໍາເປັນ.
- ຂະບວນການຂຽນຟັງຊັນໂທຄືນທີ່ສົມບູນຖ້າອຸປະກອນຕໍ່ຂັດລົບກວນຫຼື DMA ແມ່ນຫມາຍຄວາມວ່າຈະຖືກນໍາໃຊ້.
- ໃນຜູ້ໃຊ້ main.c file, initialize the peripheral handle structure then call the peripheral initialization function to initialize the peripheral .
- ພັດທະນາແອັບພລິເຄຊັນ
ໃນນີ້ stage, ລະບົບແມ່ນກຽມພ້ອມແລະການພັດທະນາລະຫັດຄໍາຮ້ອງສະຫມັກຂອງຜູ້ໃຊ້ສາມາດເລີ່ມຕົ້ນໄດ້.
HAL ສະໜອງ APIs ທີ່ເຂົ້າໃຈງ່າຍ ແລະພ້ອມນຳໃຊ້ເພື່ອກຳນົດຄ່າອຸປະກອນຕໍ່ພ່ວງ. ມັນສະຫນັບສະຫນູນການສໍາຫຼວດ, ການຂັດຂວາງ, ແລະຮູບແບບການດໍາເນີນໂຄງການ DMA, ເພື່ອຮອງຮັບຄວາມຕ້ອງການຂອງຄໍາຮ້ອງສະຫມັກໃດຫນຶ່ງ. ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບວິທີການນໍາໃຊ້ແຕ່ລະອຸປະກອນຕໍ່ເນື່ອງ, ເບິ່ງ ex ອຸດົມສົມບູນampໄດ້ກໍານົດໄວ້ຢູ່ໃນຊຸດ STM32CubeWL3 MCU.
ຂໍ້ຄວນລະວັງ: ໃນການປະຕິບັດ HAL ເລີ່ມຕົ້ນ, ເຄື່ອງຈັບເວລາ SysTick ຖືກນໍາໃຊ້ເປັນ timebase: ມັນສ້າງການຂັດຂວາງໃນຊ່ວງເວລາປົກກະຕິ. ຖ້າ HAL_Delay() ຖືກເອີ້ນຈາກຂະບວນການ ISR ຂ້າງຄຽງ, ໃຫ້ແນ່ໃຈວ່າການລົບກວນ SysTick ມີບູລິມະສິດສູງກວ່າ (ຕົວເລກຕໍ່າກວ່າ) ກ່ວາການຂັດຈັງຫວະຕໍ່ຂ້າງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຂະບວນການ ISR ຜູ້ໂທຖືກບລັອກ. ຟັງຊັນທີ່ມີຜົນກະທົບກັບການຕັ້ງຄ່າ timebase ໄດ້ຖືກປະກາດວ່າເປັນ __weak ເພື່ອເຮັດໃຫ້ override ເປັນໄປໄດ້ໃນກໍລະນີຂອງການປະຕິບັດອື່ນໆໃນຜູ້ໃຊ້. file (ການນໍາໃຊ້ເຄື່ອງຈັບເວລາຈຸດປະສົງທົ່ວໄປ, ສໍາລັບການຍົກຕົວຢ່າງample, ຫຼືແຫຼ່ງເວລາອື່ນ). ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງ HAL_TimeBase exampເລ.
ຄໍາຮ້ອງສະຫມັກ LL
ພາກນີ້ອະທິບາຍຂັ້ນຕອນທີ່ຈໍາເປັນເພື່ອສ້າງຄໍາຮ້ອງສະຫມັກ LL ແບບກໍານົດເອງໂດຍໃຊ້ STM32CubeWL3.
- ສ້າງໂຄງການ
ເພື່ອສ້າງໂຄງການໃຫມ່, ເລີ່ມຕົ້ນຈາກໂຄງການ Templates_LL ທີ່ສະຫນອງໃຫ້ແຕ່ລະກະດານພາຍໃຕ້ \Projects\ \Templates_LL ຫຼືຈາກໂຄງການທີ່ມີຢູ່ພາຍໃຕ້ \Projects\ \ ຕົວຢ່າງamples_ LL ( ຫມາຍເຖິງຊື່ກະດານ, ເຊັ່ນ NUCLEO-WL32CC33).
ໂຄງການແມ່ແບບສະຫນອງການທໍາງານ loop ຕົ້ນຕໍທີ່ຫວ່າງເປົ່າ, ຊຶ່ງເປັນຈຸດເລີ່ມຕົ້ນທີ່ດີທີ່ຈະເຂົ້າໃຈການຕັ້ງຄ່າໂຄງການສໍາລັບ STM32CubeWL3. ລັກສະນະຕົ້ນຕໍຂອງແມ່ແບບແມ່ນດັ່ງຕໍ່ໄປນີ້:- ມັນປະກອບດ້ວຍລະຫັດແຫຼ່ງຂອງໄດເວີ LL ແລະ CMSIS, ເຊິ່ງເປັນຊຸດຂັ້ນຕ່ໍາຂອງອົງປະກອບທີ່ຈໍາເປັນເພື່ອພັດທະນາລະຫັດໃນກະດານທີ່ກໍານົດ.
- ມັນມີເສັ້ນທາງລວມສໍາລັບອົງປະກອບເຟີມແວທີ່ຕ້ອງການທັງຫມົດ.
- ມັນເລືອກອຸປະກອນສາຍຜະລິດຕະພັນ STM32WL3x ທີ່ຮອງຮັບ ແລະອະນຸຍາດໃຫ້ຕັ້ງຄ່າໄດເວີ CMSIS ແລະ LL ທີ່ຖືກຕ້ອງ.
- ມັນໃຫ້ຜູ້ໃຊ້ພ້ອມທີ່ຈະໃຊ້ files ທີ່ໄດ້ກໍານົດໄວ້ລ່ວງຫນ້າດັ່ງຕໍ່ໄປນີ້:
- main.h: LED ແລະ USER_BUTTON ຊັ້ນ abstraction ຄໍານິຍາມ.
- main.c: ການຕັ້ງຄ່າໂມງລະບົບສໍາລັບຄວາມຖີ່ສູງສຸດ.
- Port the LL example:
- ສຳເນົາ/ວາງໂຟນເດີ Templates_LL – ເພື່ອຮັກສາແຫຼ່ງເບື້ອງຕົ້ນ – ຫຼືໂດຍກົງປັບປຸງໂຄງການ Template s_LL ທີ່ມີຢູ່ແລ້ວ.
- ຫຼັງຈາກນັ້ນ, porting ປະກອບດ້ວຍຕົ້ນຕໍໃນການທົດແທນ Templates_LL files ໂດຍ Examples_LL ໂຄງການເປົ້າຫມາຍ.
- ຮັກສາພາກສ່ວນສະເພາະຂອງກະດານທັງໝົດ. ສໍາລັບເຫດຜົນຂອງຄວາມກະຈ່າງແຈ້ງ, ພາກສ່ວນສະເພາະຂອງກະດານແມ່ນທຸງທີ່ມີສະເພາະ tags:
- ດັ່ງນັ້ນ, ຂັ້ນຕອນການສົ່ງສັນຍານຕົ້ນຕໍແມ່ນດັ່ງຕໍ່ໄປນີ້:
- ແທນທີ່ stm32wl3x_it.h file.
- ແທນທີ່ stm32wl3x_it.c file.
- ແທນທີ່ main.h file ແລະອັບເດດມັນ: ຮັກສາຄວາມໝາຍ LED ແລະປຸ່ມຜູ້ໃຊ້ຂອງແມ່ແບບ LL ພາຍໃຕ້ BOARD SPECIFIC CONFIGURATION tags.
- ແທນທີ່ main.c file ແລະອັບເດດມັນ:
- ຮັກສາການຕັ້ງຄ່າໂມງຂອງແມ່ແບບ SystemClock_Config() LL ພາຍໃຕ້ BOARD SPECIFIC CONFIGURATION tags.
- ອີງຕາມຄໍານິຍາມ LED, ແທນທີ່ແຕ່ລະເຫດການ LDx ດ້ວຍ LDy ອື່ນທີ່ມີຢູ່ໃນ file main.h.
- ດ້ວຍການດັດແປງເຫຼົ່ານີ້, example ແລ່ນຢູ່ໃນກະດານເປົ້າຫມາຍ.
ຄໍາຮ້ອງສະຫມັກ RF, ການສາທິດ, ແລະ examples
ປະເພດຕ່າງໆຂອງຄໍາຮ້ອງສະຫມັກ RF, ການສາທິດ, ແລະ examples ແມ່ນມີຢູ່ໃນຊຸດ STM32CubeWL3.
ພວກເຂົາເຈົ້າໄດ້ຖືກລະບຸໄວ້ໃນສອງພາກຂ້າງລຸ່ມນີ້.
Sub-GHz examples ແລະການສາທິດ
ເຫຼົ່ານີ້ examples ສະແດງໃຫ້ເຫັນຄຸນສົມບັດຕົ້ນຕໍຂອງອຸປະກອນວິທະຍຸ MRSUBG ແລະ LPAWUR. ເຫຼົ່ານີ້ examples ແມ່ນມີຢູ່ພາຍໃຕ້ການ:
- ໂຄງການ\NUCLEO-WL33CC\Examples\MRSUBG
- ໂຄງການ\NUCLEO-WL33CC\Examples\LPAWUR
- ໂຄງການ\NUCLEO-WL33CC\Demonstrations\MRSUBG
- ໂຄງການ\NUCLEO-WL33CC\Demonstrations\LPAWUR
ແຕ່ລະຄົນ example ຫຼືສາທິດໂດຍທົ່ວໄປປະກອບດ້ວຍສອງໂຄງການທີ່ເອີ້ນວ່າ Tx ແລະ Rx ເຮັດຫນ້າທີ່ເປັນເຄື່ອງສົ່ງແລະເຄື່ອງຮັບ, ຕາມລໍາດັບ:
Examples/MRSUBG
- MRSUBG_802_15_4: ການປະຕິບັດຂອງຊັ້ນທາງດ້ານຮ່າງກາຍທີ່ກໍານົດໂດຍມາດຕະຖານ 802.15.4. ມັນສະແດງໃຫ້ເຫັນວິທີການຕັ້ງຄ່າວິທະຍຸເພື່ອສົ່ງຫຼືໄດ້ຮັບ 802.15.4 packets.
- MRSUBG_BasicGeneric: ການແລກປ່ຽນແພັກເກັດພື້ນຖານ STM32WL3x MR_SUBG.
- MRSUBG_Chat: ແອັບພລິເຄຊັ່ນງ່າຍໆທີ່ສະແດງວິທີການໃຊ້ Tx ແລະ Rx ໃນອຸປະກອນດຽວກັນ.
- MRSUBG_DatabufferHandler: ຕົວຢ່າງample ທີ່ສະແດງວິທີການແລກປ່ຽນຈາກ Databuffer 0 ແລະ 1.
- MRSUBG_Sequencer AutoAck: ຕົວຢ່າງample ທີ່ສົ່ງ ແລະຮັບການຮັບຮູ້ແພັກເກັດ (ACKs) ໂດຍອັດຕະໂນມັດ.
- MRSUBG_WMBusSTD: ການແລກປ່ຽນຂໍ້ຄວາມ WM-Bus.
- WakeupRadio: ຕົວຢ່າງample ເພື່ອທົດສອບອຸປະກອນຕໍ່ວິທະຍຸ LPAWUR.
ການສາທິດ/MRSUBG
- MRSUBG_RTC_Button_TX: ນີ້ example ສະແດງໃຫ້ເຫັນວິທີການຕັ້ງ SoC ໃນໂຫມດຢຸດເລິກແລະກໍາຫນົດຄ່າ MRSUBG ເພື່ອປຸກ SoC ໂດຍການກົດ PB2 ເພື່ອສົ່ງກອບຫຼືຫຼັງຈາກເວລາ RTC ຫມົດອາຍຸ.
- MRSUBG_Sequencer_Sniff: ນີ້ example ສະແດງໃຫ້ເຫັນວິທີການກໍານົດລໍາດັບ MRSUBG ການດໍາເນີນງານໃນຮູບແບບ sniff. ນີ້ example ສະແດງໃຫ້ເຫັນດ້ານຜູ້ຮັບແລະຕ້ອງການອຸປະກອນອື່ນເປັນເຄື່ອງສົ່ງ.
- MRSUBG_Timer: ແອັບພລິເຄຊັ່ນກຳນົດເວລາຫຼາຍໆຄັ້ງຂອງໂມງຈັບເວລາ MRSUBG (ດ້ວຍການໂຫຼດຄືນອັດຕະໂນມັດ) ດ້ວຍຊ່ວງເວລາທີ່ແຕກຕ່າງກັນ.
- MRSUBG_WakeupRadio_Tx: ນີ້ example ອະທິບາຍວິທີການຕັ້ງ SoC ໃນໂໝດຢຸດເລິກ ແລະກຳນົດຄ່າ MRSUBG ເພື່ອປຸກ SoC ໂດຍການກົດ PB2 ເພື່ອສົ່ງກອບ. ນີ້ example ສະແດງໃຫ້ເຫັນດ້ານເຄື່ອງສົ່ງສັນຍານແລະຕ້ອງການອຸປະກອນອື່ນເປັນເຄື່ອງຮັບ LPAWUR. ຜູ້ຮັບ example ຕັ້ງຢູ່ພາຍໃຕ້ໂຟນເດີ NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_Rx.
ການສາທິດ/LPAWUR
- LPAWUR_WakeupRadio_Rx: ນີ້ example ອະທິບາຍວິທີການຕັ້ງ SoC ໃນໂຫມດການຢຸດຢ່າງເລິກເຊິ່ງແລະກໍາຫນົດຄ່າ LPAWUR ເພື່ອປຸກ SoC ເມື່ອກອບມາຮອດແລະຖືກຮັບຢ່າງຖືກຕ້ອງ. ນີ້ example ສະແດງໃຫ້ເຫັນດ້ານຜູ້ຮັບແລະຕ້ອງການອຸປະກອນອື່ນເປັນເຄື່ອງສົ່ງ. ເຄື່ອງສົ່ງສັນຍານ example ຕັ້ງຢູ່ພາຍໃຕ້ໂຟນເດີ NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx.
ຄໍາຮ້ອງສະຫມັກ Sigfox™
ແອັບພລິເຄຊັນເຫຼົ່ານີ້ສະແດງວິທີການປະຕິບັດສະຖານະການ Sigfox™ ແລະໃຊ້ Sigfox™ APIs ທີ່ມີຢູ່. ພວກມັນມີຢູ່ໃນເສັ້ນທາງໂຄງການ Projects\NUCLEO-WL33CC\Application\Sigfox\:
- Sigfox_CLI: ຄໍາຮ້ອງສະຫມັກນີ້ສະແດງໃຫ້ເຫັນວິທີການນໍາໃຊ້ການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງ (CLI) ເພື່ອສົ່ງຄໍາສັ່ງທີ່ນໍາໃຊ້ໂປໂຕຄອນ Sigfox ™ເພື່ອສົ່ງຂໍ້ຄວາມແລະການທົດສອບ precertification.
- Sigfox_PushButton: ຄໍາຮ້ອງສະຫມັກນີ້ອະນຸຍາດໃຫ້ການປະເມີນຜົນຂອງຄວາມສາມາດວິທະຍຸ STM32WL33xx Sigfox ™. ການກົດ PB1 ສົ່ງກອບການທົດສອບ Sigfox™.
ປະຫວັດການແກ້ໄຂ
ຕາຕະລາງ 3. ປະຫວັດການແກ້ໄຂເອກະສານ
ວັນທີ | ການທົບທວນ | ການປ່ຽນແປງ |
29-ມີນາ-2024 | 1 | ການປ່ອຍຕົວໃນເບື້ອງຕົ້ນ. |
30-ຕຸລາ-2024 | 2 | ການເຊື່ອມໂຍງຢ່າງເຕັມທີ່ຂອງ STM32CubeWL3 ໃນ STM32Cube. ອັບເດດ:
• ແນະນຳ • ພາກທີ 2: STM32CubeWL3 ລັກສະນະຕົ້ນຕໍ • ພາກທີ 3.2.1: ອົງປະກອບຂອງ Middleware • ພາກທີ 4: ຊຸດເຟີມແວ STM32CubeWL3 ຫຼາຍກວ່າview • ພາກທີ 5.1: ການດໍາເນີນການ ex ຄັ້ງທໍາອິດample • ພາກທີ 5.3: ຄໍາຮ້ອງສະຫມັກ RF, ການສາທິດ, ແລະ examples ເພີ່ມ: • ພາກທີ 5.1.1: ວິທີການດໍາເນີນການ HAL example • ພາກທີ 5.2.1: ການໃຊ້ STM32CubeMX ເພື່ອພັດທະນາ ຫຼືອັບເດດແອັບພລິເຄຊັນ • ສection 6.4: ມີໂຄງການແມ່ແບບສໍາລັບ MRSUBG/LPAWUR peripheral examples? • ພາກທີ 6.5: STM32CubeMX ສາມາດສ້າງລະຫັດໂດຍອີງໃສ່ຊອບແວທີ່ຝັງໄວ້ໄດ້ແນວໃດ? ລຶບອອກແລ້ວ: • ເຄື່ອງມື PC, ລວມທັງ Navigator, STM32WL3 GUI, ແລະ MR-SUBG Sequencer GUI • WiSE-Studio IOMapper ສາມາດສ້າງລະຫັດໂດຍອີງໃສ່ຊອບແວທີ່ຝັງໄວ້ໄດ້ແນວໃດ? • Navigator ອະນຸຍາດໃຫ້ເຂົ້າເຖິງຊັບພະຍາກອນຊຸດຊອບແວບໍ? |
22-ມັງກອນ-2025 | 3 | ຂະຫຍາຍຂອບເຂດຂອງອຸປະກອນທີ່ໃຊ້ໄດ້ກັບ STM32WL30xx ແລະ STM32WL31xx microcontrollers ໃນຕາຕະລາງ 1. Macros ສໍາລັບສາຍຜະລິດຕະພັນ STM32WL3x. |
ແຈ້ງການສໍາຄັນ - ອ່ານຢ່າງລະມັດລະວັງ
- STMicroelectronics NV ແລະບໍລິສັດຍ່ອຍຂອງຕົນ (“ST”) ສະຫງວນສິດໃນການປ່ຽນແປງ, ການແກ້ໄຂ, ການປັບປຸງ, ການປັບປຸງ, ການແກ້ໄຂ ແລະການປັບປຸງຜະລິດຕະພັນ ST ແລະ/ຫຼື ເອກະສານນີ້ໄດ້ທຸກເວລາໂດຍບໍ່ຕ້ອງແຈ້ງລ່ວງໜ້າ. ຜູ້ຊື້ຄວນໄດ້ຮັບຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຫລ້າສຸດກ່ຽວກັບຜະລິດຕະພັນ ST ກ່ອນທີ່ຈະວາງຄໍາສັ່ງ. ຜະລິດຕະພັນ ST ແມ່ນຂາຍຕາມຂໍ້ກໍານົດແລະເງື່ອນໄຂຂອງ ST ຂອງການຂາຍໃນສະຖານທີ່ໃນເວລາທີ່ຮັບຮູ້ຄໍາສັ່ງ.
- ຜູ້ຊື້ແມ່ນຮັບຜິດຊອບພຽງແຕ່ສໍາລັບການເລືອກ, ການຄັດເລືອກ, ແລະການນໍາໃຊ້ຜະລິດຕະພັນ ST ແລະ ST ຖືວ່າບໍ່ມີຄວາມຮັບຜິດຊອບສໍາລັບການຊ່ວຍເຫຼືອຄໍາຮ້ອງສະຫມັກຫຼືການອອກແບບຜະລິດຕະພັນຂອງຜູ້ຊື້.
- ບໍ່ມີໃບອະນຸຍາດ, ສະແດງອອກຫຼືໂດຍຄວາມຫມາຍ, ຕໍ່ກັບສິດທິຊັບສິນທາງປັນຍາໃດໆທີ່ຖືກອະນຸຍາດໂດຍ ST ຢູ່ທີ່ນີ້.
- ການຂາຍຄືນຂອງຜະລິດຕະພັນ ST ທີ່ມີຂໍ້ກໍານົດທີ່ແຕກຕ່າງຈາກຂໍ້ມູນທີ່ກໍານົດໄວ້ໃນທີ່ນີ້ຈະປະຖິ້ມການຮັບປະກັນໃດໆທີ່ໃຫ້ໂດຍ ST ສໍາລັບຜະລິດຕະພັນດັ່ງກ່າວ.
- ST ແລະໂລໂກ້ ST ແມ່ນເຄື່ອງຫມາຍການຄ້າຂອງ ST. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບເຄື່ອງຫມາຍການຄ້າ ST, ເບິ່ງ www.st.com/trademarks. ຊື່ຜະລິດຕະພັນ ຫຼືບໍລິການອື່ນໆທັງໝົດແມ່ນເປັນຊັບສິນຂອງເຈົ້າຂອງຂອງເຂົາເຈົ້າ.
- ຂໍ້ມູນໃນເອກະສານນີ້ແທນທີ່ ແລະແທນທີ່ຂໍ້ມູນທີ່ສະໜອງໃຫ້ໃນເມື່ອກ່ອນໃນສະບັບກ່ອນໜ້າຂອງເອກະສານນີ້.
- © 2025 STMicroelectronics – ສະຫງວນລິຂະສິດທັງໝົດ
FAQ
ເມື່ອໃດທີ່ຂ້ອຍຄວນໃຊ້ HAL ແທນໄດເວີ LL?
ໄດເວີ HAL ສະເໜີ APIs ລະດັບສູງ ແລະ ເນັ້ນການທໍາງານ, ທີ່ມີລະດັບຄວາມສະດວກສະບາຍສູງ. ຄວາມຊັບຊ້ອນຂອງຜະລິດຕະພັນ ຫຼືອຸປະກອນຕໍ່ພອຍຖືກເຊື່ອງໄວ້ສຳລັບຜູ້ໃຊ້ສຸດທ້າຍ. ໄດເວີ LL ສະເຫນີ APIs ລະດັບການລົງທະບຽນຊັ້ນຕ່ໍາທີ່ມີການເພີ່ມປະສິດທິພາບທີ່ດີກວ່າແຕ່ Portable ຫນ້ອຍ. ພວກເຂົາຕ້ອງການຄວາມຮູ້ໃນຄວາມເລິກຂອງຜະລິດຕະພັນຫຼືຂໍ້ມູນຈໍາເພາະ IP.
APIs ເບື້ອງຕົ້ນ LL ຖືກເປີດໃຊ້ແນວໃດ?
ຄໍານິຍາມຂອງ APIs ເບື້ອງຕົ້ນຂອງ LL ແລະໂຄງສ້າງຂອງຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ literals ແລະ prototypes ແມ່ນ conditioned ໂດຍສະຫຼັບການລວບລວມ USE_FULL_LL_DRIVER. ເພື່ອສາມາດນໍາໃຊ້ APIs ເລີ່ມຕົ້ນຂອງ LL, ເພີ່ມສະວິດນີ້ໃນຕົວປະມວນຜົນ preprocessor ຂອງ toolchain compiler.
ມີໂຄງການແມ່ແບບສໍາລັບ MRSUBG/LPAWUR peripheral examples?
ເພື່ອສ້າງ MRSUBG ຫຼື LPAWUR ໃໝ່ample ໂຄງການ, ທັງເລີ່ມຕົ້ນຈາກໂຄງການ skeleton ສະຫນອງໃຫ້ພາຍໃຕ້ການ Pr ojectsNUCLEO- 33CC Examples MRSUBG ຫຼື ProjectsNUCLEO-WL33CC Examples LPAWUR ຫຼືຈາກໂຄງການທີ່ມີຢູ່ພາຍໃຕ້ໄດເລກະທໍລີດຽວກັນນີ້.
STM32CubeMX ສາມາດສ້າງລະຫັດໂດຍອີງໃສ່ຊອບແວທີ່ຝັງໄວ້ໄດ້ແນວໃດ?
STM32CubeMX ມີຄວາມຮູ້ໃນຕົວຂອງ STM32 microcontrollers, ລວມທັງອຸປະກອນຕໍ່ພ່ວງແລະຊອຟແວຂອງພວກມັນ, ເຊິ່ງອະນຸຍາດໃຫ້ມັນສະແດງຮູບພາບໃຫ້ກັບຜູ້ໃຊ້ແລະສ້າງ .h ຫຼື .c. files ອີງໃສ່ການຕັ້ງຄ່າຂອງຜູ້ໃຊ້.
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ST STM32WL3x ໄມໂຄຄອນຄວບຄຸມ [pdf] ຄູ່ມືຜູ້ໃຊ້ STM32WL3x Microcontrollers, STM32WL3x, ໄມໂຄຄອນຄວບຄຸມ |