-
Notifications
You must be signed in to change notification settings - Fork 2
STM32F103C8T6 (5. USB)
USB yra naudojamos A11, A12, 5V ir GND išvestys
USB HID Mouse projektas
USB Custom HID projektas
-
Parsisiunčiam STM32F10x, STM32L1xx and STM32F3xx USB full speed device library (UM0424) (stsw-stm32121.zip) biblioteką iš http://www.st.com/web/en/catalog/tools/PF258157# ir išpakuojam
-
Projekto failų medyje system\include sukuriam naują direktoriją usb ir įkopijuojam stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Libraries\STM32_USB-FS-Device_Driver\inc esančius failus
-
Projekto failų medyje system\src sukuriam naują direktoriją usb ir įkopijuojam stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Libraries\STM32_USB-FS-Device_Driver\src esančius failus
-
Einam į Project->Properties, C/C++ Build->Settings, Tool Settings skiltį, Cross ARM C Compiler->Includes ir į Include paths (-I) pridedam "../system/include/usb". Tą patį padarom ir Cross ARM C++ Compiler->Includes, spaudžiam Apply ir OK
-
Kopijuojam *.h (nekopijuojam stm32f30x_conf.h, stm32f37x_conf.h ir stm32l1xx_conf.h) ir *.c (įskaitant main.c, bet nekopijuojam system_stm32f10x.c, system_stm32f30x.c, system_stm32f37x.c ir system_stm32l1xx.c) failus iš stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Projects\JoyStickMouse\inc ir stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Projects\JoyStickMouse\src atitinkamai į projekto include ir src direktorijas
-
Einam į Project->Properties, C/C++ General->Paths and Symbols, į Symbols skiltį ir pridedam USE_STM3210B_EVAL reikšmė visoms konfigūracijoms (uždedam varnelę ant Add to all configurations) ir visoms kalboms (uždedam varnelę ant Add to all languages)
-
Kopijuojam stm3210b_eval.h (iš stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Utilities\STM32_EVAL\STM3210B_EVAL) ir stm32_eval_legacy.h (iš stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Utilities\STM32_EVAL\Common) į include, o stm3210b_eval.c (iš stsw-stm32121\STM32_USB-FS-Device_Lib_V4.0.0\Utilities\STM32_EVAL\STM3210B_EVAL) į src direktorijas
-
hw_config.h pridedam #include "stm3210b_eval.h" ir #include "stm32_eval_legacy.h"
-
usb_type.h užkomentuojam bool tipą. Į usb_core.c ir usb_pwr.h pridedam #include <stdbool.h>. Padarom Build ir ten kur klaidos dėl FALSE ir TRUE atitinkamai juos pakeičiam į false ir true
-
Einam į Project->Properties, C/C++ General->Paths and Symbols, į Source location skiltį ir iš Exclusion filtro pašalinam stm32f10x_exti.c
-
include/hw_config.h ir system/include/usb_init.h pridedam1
#ifdef __cplusplus
extern "C" {
#endif
<.......>
#ifdef __cplusplus
}
#endif- Atlikus šią veiksmų seką ir STM32F103C8T6 prijungus per USB jungtį turėtų atsirasti USB HID Mouse įrenginys, tačiau norint, kad jis veiktų dar reikia susikonfiguruoti išvestis (angl. port), nes nukopijuoto pavyzdžio kodas yra skirtas STM3210b Eval Board plokštei. Norint, kad veiktų su STM32F103C8T6 galima pasinaudoti aukščiau esančia nuoroda į USB HID Mouse pavyzdį ir prijungti mygtukus kaip parodyta schemoje:
arba **USB Custom HID** pavyzdį (**USB HID Demonstrator Release 1.0.2** (en.stsw-stm32084.zip) programą reiks parsisiųsti iš http://www.st.com/en/development-tools/stsw-stm32084.html. Taip pat gali reikti sudiegti **Microsoft Visual C++ 2005 Redistributable Package (x86)**, nes kitaip paleidžiant programą rodys klaidos pranešimą):
1 - ką daro extern "C" ir kodėl jo reikia galima pasiskaityti https://en.wikipedia.org/wiki/Name_mangling. Iš principo jo reikia, kad teisingai būtų kviečiamos C funkcijos iš C++.