* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Changepull/11058/head 0.11.0
@ -0,0 +1,150 @@ | |||
# QMK Breaking Change - 2020 Nov 28 Changelog | |||
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps. | |||
## Changes Requiring User Action :id=changes-requiring-user-action | |||
### Relocated Keyboards :id-relocated-keyboards | |||
#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669)) | |||
The build commands for the Helix keyboard are: | |||
``` | |||
make <helix_build_name>:<keymap_name> | |||
``` | |||
For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`. | |||
| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020 | | |||
| ---------------------|-------------------------|-------------------------| ------------------------| | |||
| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 | | |||
| helix/pico | helix/pico | helix/pico | helix/pico | | |||
| | helix/pico/back | helix/pico/back | helix/pico/back | | |||
| | helix/pico/under | helix/pico/under | helix/pico/under | | |||
| | | helix/pico/sc | -- | | |||
| | | helix/pico/sc/back | helix/pico/sc | | |||
| | | helix/pico/sc/under | -- | | |||
| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- | | |||
| | helix/rev2/back | helix/rev2/back | -- | | |||
| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) | | |||
| | helix/rev2/oled | helix/rev2/oled | helix/rev2 (=helix) | | |||
| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back | | |||
| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under | | |||
| | | helix/rev2/sc | -- | | |||
| | | helix/rev2/sc/back | -- | | |||
| | | helix/rev2/sc/oled | -- | | |||
| | | helix/rev2/sc/oledback | helix/rev2/sc | | |||
| | | helix/rev2/sc/oledunder | -- | | |||
| | | helix/rev2/sc/under | -- | | |||
| | helix/rev2/under | helix/rev2/under | -- | | |||
| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) | | |||
#### Update the Speedo firmware for v3.0 ([#10657](https://github.com/qmk/qmk_firmware/pull/10657)) | |||
The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0. | |||
| Previous Name | New Name | | |||
| :------------ | :------------------------- | | |||
| speedo | cozykeys/speedo/v2 | | |||
| -- | cozykeys/speedo/v3 **new** | | |||
#### Maartenwut/Maarten name change to evyd13/Evy ([#10274](https://github.com/qmk/qmk_firmware/pull/10274)) | |||
Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved. | |||
| Previous Name | New Name | | |||
| :--------------------- | :----------------- | | |||
| maartenwut/atom47/rev2 | evyd13/atom47/rev2 | | |||
| maartenwut/atom47/rev3 | evyd13/atom47/rev3 | | |||
| maartenwut/eon40 | evyd13/eon40 | | |||
| maartenwut/eon65 | evyd13/eon65 | | |||
| maartenwut/eon75 | evyd13/eon75 | | |||
| maartenwut/eon87 | evyd13/eon87 | | |||
| maartenwut/eon95 | evyd13/eon95 | | |||
| maartenwut/gh80_1800 | evyd13/gh80_1800 | | |||
| maartenwut/gh80_3700 | evyd13/gh80_3700 | | |||
| maartenwut/minitomic | evyd13/minitomic | | |||
| maartenwut/mx5160 | evyd13/mx5160 | | |||
| maartenwut/nt660 | evyd13/nt660 | | |||
| maartenwut/omrontkl | evyd13/omrontkl | | |||
| maartenwut/plain60 | evyd13/plain60 | | |||
| maartenwut/pockettype | evyd13/pockettype | | |||
| maartenwut/quackfire | evyd13/quackfire | | |||
| maartenwut/solheim68 | evyd13/solheim68 | | |||
| maartenwut/ta65 | evyd13/ta65 | | |||
| maartenwut/wasdat | evyd13/wasdat | | |||
| maartenwut/wasdat_code | evyd13/wasdat_code | | |||
| maartenwut/wonderland | evyd13/wonderland | | |||
#### Xelus Valor and Dawn60 Refactors ([#10512](https://github.com/qmk/qmk_firmware/pull/10512), [#10584](https://github.com/qmk/qmk_firmware/pull/10584)) | |||
The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling. | |||
| Previous Name | New Name | | |||
| :------------ | :---------------- | | |||
| xelus/dawn60 | xelus/dawn60/rev1 | | |||
| xelus/valor | xelus/valor/rev1 | | |||
### Updated Keyboard Codebases :id=keyboard-updates | |||
#### AEboards EXT65 Refactor ([#10820](https://github.com/qmk/qmk_firmware/pull/10820)) | |||
The EXT65 codebase has been reworked so keymaps can be used with either revision. | |||
## Core Changes :id=core-changes | |||
### Fixes :id=core-fixes | |||
* Reconnect the USB if users wake up a computer from the keyboard to restore the USB state ([#10088](https://github.com/qmk/qmk_firmware/pull/10088)) | |||
* Fix cursor position bug in oled_write_raw functions ([#10800](https://github.com/qmk/qmk_firmware/pull/10800)) | |||
### Additions and Enhancements :id=core-additions | |||
* Allow MATRIX_ROWS to be greater than 32 ([#10183](https://github.com/qmk/qmk_firmware/pull/10183)) | |||
* Add support for soft serial to ATmega32U2 ([#10204](https://github.com/qmk/qmk_firmware/pull/10204)) | |||
* Allow direct control of MIDI velocity value ([#9940](https://github.com/qmk/qmk_firmware/pull/9940)) | |||
* Joystick 16-bit support ([#10439](https://github.com/qmk/qmk_firmware/pull/10439)) | |||
* Allow encoder resolutions to be set per encoder ([#10259](https://github.com/qmk/qmk_firmware/pull/10259)) | |||
* Share button state from mousekey to pointing_device ([#10179](https://github.com/qmk/qmk_firmware/pull/10179)) | |||
* Add advanced/efficient RGB Matrix Indicators ([#8564](https://github.com/qmk/qmk_firmware/pull/8564)) | |||
* OLED display update interval support ([#10388](https://github.com/qmk/qmk_firmware/pull/10388)) | |||
* Per-Key Retro Tapping ([#10622](https://github.com/qmk/qmk_firmware/pull/10622)) | |||
* Allow backlight duty cycle limit ([#10260](https://github.com/qmk/qmk_firmware/pull/10260)) | |||
* Add step sequencer feature ([#9703](https://github.com/qmk/qmk_firmware/pull/9703)) | |||
* Added `add_oneshot_mods` & `del_oneshot_mods` ([#10549](https://github.com/qmk/qmk_firmware/pull/10549)) | |||
* Add AT90USB support for serial.c ([#10706](https://github.com/qmk/qmk_firmware/pull/10706)) | |||
* Auto shift: support repeats and early registration (#9826) | |||
### Clean-ups and Optimizations :id=core-optimizations | |||
* Haptic and solenoid cleanup ([#9700](https://github.com/qmk/qmk_firmware/pull/9700)) | |||
* XD75 cleanup ([#10524](https://github.com/qmk/qmk_firmware/pull/10524)) | |||
* Minor change to behavior allowing display updates to continue between task ticks ([#10750](https://github.com/qmk/qmk_firmware/pull/10750)) | |||
* Change some GPIO manipulations in matrix.c to be atomic ([#10491](https://github.com/qmk/qmk_firmware/pull/10491)) | |||
* combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P ([#10837](https://github.com/qmk/qmk_firmware/pull/10837)) | |||
* Remove references to HD44780 ([#10735](https://github.com/qmk/qmk_firmware/pull/10735)) | |||
## QMK Infrastructure and Internals :id=qmk-internals | |||
* Add ability to build a subset of all keyboards based on platform. ([#10420](https://github.com/qmk/qmk_firmware/pull/10420)) | |||
* Initialise EEPROM drivers at startup, instead of upon first execution ([#10438](https://github.com/qmk/qmk_firmware/pull/10438)) | |||
* Make bootloader_jump weak for ChibiOS ([#10417](https://github.com/qmk/qmk_firmware/pull/10417)) | |||
* Support for STM32 GPIOF,G,H,I,J,K ([#10206](https://github.com/qmk/qmk_firmware/pull/10206)) | |||
* Add milc as a dependency and remove the installed milc ([#10563](https://github.com/qmk/qmk_firmware/pull/10563)) | |||
* ChibiOS upgrade: early init conversions ([#10214](https://github.com/qmk/qmk_firmware/pull/10214)) | |||
* ChibiOS upgrade: configuration file migrator ([#9952](https://github.com/qmk/qmk_firmware/pull/9952)) | |||
* Add definition based on currently-selected serial driver. ([#10716](https://github.com/qmk/qmk_firmware/pull/10716)) | |||
* Allow for modification of output RGB values when using rgblight/rgb_matrix. ([#10638](https://github.com/qmk/qmk_firmware/pull/10638)) | |||
* Allow keyboards/keymaps to execute code at each main loop iteration ([#10530](https://github.com/qmk/qmk_firmware/pull/10530)) | |||
* qmk cformat ([#10767](https://github.com/qmk/qmk_firmware/pull/10767)) | |||
* Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line ([#10824](https://github.com/qmk/qmk_firmware/pull/10824)) | |||
* update Chibios OS USB for the OTG driver ([#8893](https://github.com/qmk/qmk_firmware/pull/8893)) | |||
* Fixup version.h writing when using `SKIP_VERSION=yes` ([#10972](https://github.com/qmk/qmk_firmware/pull/10972), [#10974](https://github.com/qmk/qmk_firmware/pull/10974)) | |||
* Rename ledmatrix.h to match .c file ([#7949](https://github.com/qmk/qmk_firmware/pull/7949)) | |||
* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10231](https://github.com/qmk/qmk_firmware/pull/10231)) | |||
* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10840](https://github.com/qmk/qmk_firmware/pull/10840)) |
@ -0,0 +1,88 @@ | |||
# Sequencer | |||
Since QMK has experimental support for MIDI, you can now turn your keyboard into a [step sequencer](https://en.wikipedia.org/wiki/Music_sequencer#Step_sequencers)! | |||
!> **IMPORTANT:** This feature is highly experimental, it has only been tested on a Planck EZ so far. Also, the scope will be limited to support the drum machine use-case to start with. | |||
## Enable the step sequencer | |||
Add the following line to your `rules.mk`: | |||
```make | |||
SEQUENCER_ENABLE = yes | |||
``` | |||
By default the sequencer has 16 steps, but you can override this setting in your `config.h`: | |||
```c | |||
#define SEQUENCER_STEPS 32 | |||
``` | |||
## Tracks | |||
You can program up to 8 independent tracks with the step sequencer. Select the tracks you want to edit, enable or disable some steps, and start the sequence! | |||
## Resolutions | |||
While the tempo defines the absolute speed at which the sequencer goes through the steps, the resolution defines the granularity of these steps (from coarser to finer). | |||
|Resolution |Description | | |||
|---------- |----------- | | |||
|`SQ_RES_2` |Every other beat | | |||
|`SQ_RES_2T` |Every 1.5 beats | | |||
|`SQ_RES_4` |Every beat | | |||
|`SQ_RES_4T` |Three times per 2 beats| | |||
|`SQ_RES_8` |Twice per beat | | |||
|`SQ_RES_8T` |Three times per beat | | |||
|`SQ_RES_16` |Four times per beat | | |||
|`SQ_RES_16T` |Six times per beat | | |||
|`SQ_RES_32` |Eight times per beat | | |||
## Keycodes | |||
|Keycode |Description | | |||
|------- |----------- | | |||
|`SQ_ON` |Start the step sequencer | | |||
|`SQ_OFF` |Stop the step sequencer | | |||
|`SQ_TOG` |Toggle the step sequencer playback | | |||
|`SQ_SALL`|Enable all the steps | | |||
|`SQ_SCLR`|Disable all the steps | | |||
|`SQ_S(n)`|Toggle the step `n` | | |||
|`SQ_TMPD`|Decrease the tempo | | |||
|`SQ_TMPU`|Increase the tempo | | |||
|`SQ_R(n)`|Set the resolution to n | | |||
|`SQ_RESD`|Change to the slower resolution | | |||
|`SQ_RESU`|Change to the faster resolution | | |||
|`SQ_T(n)`|Set `n` as the only active track or deactivate all | | |||
## Functions | |||
|Function |Description | | |||
|-------- |----------- | | |||
|`bool is_sequencer_on(void);` |Return whether the sequencer is playing | | |||
|`void sequencer_toggle(void);` |Toggle the step sequencer playback | | |||
|`void sequencer_on(void);` |Start the step sequencer | | |||
|`void sequencer_off(void);` |Stop the step sequencer | | |||
|`bool is_sequencer_step_on(uint8_t step);` |Return whether the step is currently enabled | | |||
|`void sequencer_set_step(uint8_t step, bool value);` |Enable or disable the step | | |||
|`void sequencer_set_step_on();` |Enable the step | | |||
|`void sequencer_set_step_off();` |Disable the step | | |||
|`void sequencer_toggle_step(uint8_t step);` |Toggle the step | | |||
|`void sequencer_set_all_steps(bool value);` |Enable or disable all the steps | | |||
|`void sequencer_set_all_steps_on();` |Enable all the steps | | |||
|`void sequencer_set_all_steps_off();` |Disable all the steps | | |||
|`uint8_t sequencer_get_tempo(void);` |Return the current tempo | | |||
|`void sequencer_set_tempo(uint8_t tempo);` |Set the tempo to `tempo` (between 1 and 255) | | |||
|`void sequencer_increase_tempo(void);` |Increase the tempo | | |||
|`void sequencer_decrease_tempo(void);` |Decrease the tempo | | |||
|`sequencer_resolution_t sequencer_get_resolution(void);` |Return the current resolution | | |||
|`void sequencer_set_resolution(sequencer_resolution_t resolution);` |Set the resolution to `resolution` | | |||
|`void sequencer_increase_resolution(void);` |Change to the faster resolution | | |||
|`void sequencer_decrease_resolution(void);` |Change to the slower resolution | | |||
|`bool is_sequencer_track_active(uint8_t track);` |Return whether the track is active | | |||
|`void sequencer_set_track_activation(uint8_t track, bool value);` |Activate or deactivate the `track` | | |||
|`void sequencer_toggle_track_activation(uint8_t track);` |Toggle the `track` | | |||
|`void sequencer_activate_track(uint8_t track);` |Activate the `track` | | |||
|`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` | | |||
|`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all | | |||
@ -0,0 +1 @@ | |||
#include "ext65.h" |
@ -0,0 +1,9 @@ | |||
#pragma once | |||
#include "quantum.h" | |||
#if defined(KEYBOARD_aeboards_ext65_rev1) | |||
#include "rev1.h" | |||
#elif defined(KEYBOARD_aeboards_ext65_rev2) | |||
#include "rev2.h" | |||
#endif |
@ -0,0 +1,19 @@ | |||
# EXT65 | |||
A southpaw inspired keyboard by [AEBoards](https://aeboards.com/) | |||
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | |||
* Hardware Supported: EXT65 Rev1, Rev2 | |||
* Hardware Availability: Custom keyboard group buys | |||
Make example for this keyboard (after setting up your build environment): | |||
make aeboards/ext65/rev1:default | |||
make aeboards/ext65/rev2:default | |||
Flashing example for this keyboard: | |||
make aeboards/ext65/rev1:default:flash | |||
make aeboards/ext65/rev2:default:flash | |||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -1,103 +0,0 @@ | |||
/* Copyright 2018 Jason Williams (Wilba) | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap BASE: (Base Layer) Default Layer | |||
* ,-------------------. ,-------------------------------------------------------------------. | |||
* |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| | |||
* |-------------------| |-------------------------------------------------------------------| | |||
* | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | | |||
* | + |--------------| |-------------------------------------------------------------------| | |||
* | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| | |||
* |-------------------| |-------------------------------------------------------------------| | |||
* | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| | |||
* | ENT|-------------------------------------------------------------------------------------| | |||
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| | |||
* `------------------------------------------------------------------------------------------' | |||
*/ | |||
[0] = LAYOUT_ext65( | |||
KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR, | |||
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL , | |||
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP, | |||
KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, | |||
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | |||
), | |||
[1] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
[2] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
[3] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
) | |||
}; | |||
void keyboard_pre_init_user(void) { | |||
// Call the keyboard pre init code. | |||
// Set our LED pins as output | |||
setPinOutput(D5); | |||
setPinOutput(D3); | |||
setPinOutput(D2); | |||
setPinOutput(D1); | |||
} | |||
void led_set_user(uint8_t usb_led) { | |||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { | |||
writePinHigh(D5); | |||
} else { | |||
writePinLow(D5); | |||
} | |||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { | |||
writePinHigh(D3); | |||
} else { | |||
writePinLow(D3); | |||
} | |||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { | |||
writePinHigh(D2); | |||
} else { | |||
writePinLow(D2); | |||
} | |||
} | |||
layer_state_t layer_state_set_user(layer_state_t state) { | |||
switch (get_highest_layer(state)) { | |||
case 1: | |||
writePinHigh(D1); | |||
break; | |||
default: // for any other layers, or the default layer | |||
writePinLow(D1); | |||
break; | |||
} | |||
return state; | |||
} |
@ -1,2 +0,0 @@ | |||
# The Default Ext65 Layout | |||
@ -1,103 +0,0 @@ | |||
/* Copyright 2018 Jason Williams (Wilba) | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap BASE: (Base Layer) Default Layer | |||
* ,-------------------. ,-------------------------------------------------------------------. | |||
* |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| | |||
* |-------------------| |-------------------------------------------------------------------| | |||
* | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | | |||
* | + |--------------| |-------------------------------------------------------------------| | |||
* | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| | |||
* |-------------------| |-------------------------------------------------------------------| | |||
* | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| | |||
* | ENT|-------------------------------------------------------------------------------------| | |||
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| | |||
* `------------------------------------------------------------------------------------------' | |||
*/ | |||
[0] = LAYOUT_ext65( | |||
KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR, | |||
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL , | |||
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP, | |||
KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, | |||
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | |||
), | |||
[1] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
[2] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
), | |||
[3] = LAYOUT_ext65( | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||
) | |||
}; | |||
void keyboard_pre_init_user(void) { | |||
// Call the keyboard pre init code. | |||
// Set our LED pins as output | |||
setPinOutput(D5); | |||
setPinOutput(D3); | |||
setPinOutput(D2); | |||
setPinOutput(D1); | |||
} | |||
void led_set_user(uint8_t usb_led) { | |||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { | |||
writePinHigh(D5); | |||
} else { | |||
writePinLow(D5); | |||
} | |||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { | |||
writePinHigh(D3); | |||
} else { | |||
writePinLow(D3); | |||
} | |||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { | |||
writePinHigh(D2); | |||
} else { | |||
writePinLow(D2); | |||
} | |||
} | |||
uint32_t layer_state_set_user(uint32_t state) { | |||
switch (biton32(state)) { | |||
case 1: | |||
writePinHigh(D1); | |||
break; | |||
default: // for any other layers, or the default layer | |||
writePinLow(D1); | |||
break; | |||
} | |||
return state; | |||
} |
@ -1,2 +0,0 @@ | |||
# The VIA Ext65 Layout | |||
@ -1,14 +0,0 @@ | |||
EXT65 | |||
=== | |||
A southpaw inspired keyboard by [aeboards](https://aeboards.com/) | |||
Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | |||
Hardware Supported: EXT65 | |||
Hardware Availability: Custom keyboard group buys | |||
Make example for this keyboard (after setting up your build environment): | |||
make aeboards/ext65/rev1:default | |||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -1,18 +1,32 @@ | |||
/* Copyright 2018 Jason Williams (Wilba) | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 2 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include "rev1.h" | |||
// Nothing to see here, move along... ;-) | |||
void keyboard_pre_init_user(void) { | |||
// Call the keyboard pre init code. | |||
// Set our LED pins as output | |||
setPinOutput(D5); | |||
setPinOutput(D3); | |||
setPinOutput(D2); | |||
setPinOutput(D1); | |||
} | |||
bool led_update_kb(led_t led_state) { | |||
bool res = led_update_user(led_state); | |||
if(res) { | |||
writePin(D5, led_state.num_lock); | |||
writePin(D3, led_state.caps_lock); | |||
writePin(D2, led_state.scroll_lock); | |||
} | |||
return res; | |||
} | |||
layer_state_t layer_state_set_kb(layer_state_t state) { | |||
switch (get_highest_layer(state)) { | |||
case 1: | |||
writePinHigh(D1); | |||
break; | |||
default: // for any other layers, or the default layer | |||
writePinLow(D1); | |||
break; | |||
} | |||
return layer_state_set_user(state); | |||
} |
@ -0,0 +1 @@ | |||
DEFAULT_FOLDER = aeboards/ext65/rev2 |
@ -1 +1,6 @@ | |||
#include "660m.h" | |||
void board_init(void) { | |||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; | |||
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); | |||
} |
@ -1,268 +0,0 @@ | |||
/* | |||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
*/ | |||
/* | |||
* This file has been automatically generated using ChibiStudio board | |||
* generator plugin. Do not edit manually. | |||
*/ | |||
#include "hal.h" | |||
#include "stm32_gpio.h" | |||
/*===========================================================================*/ | |||
/* Driver local definitions. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver exported variables. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver local variables and types. */ | |||
/*===========================================================================*/ | |||
/** | |||
* @brief Type of STM32 GPIO port setup. | |||
*/ | |||
typedef struct { | |||
uint32_t moder; | |||
uint32_t otyper; | |||
uint32_t ospeedr; | |||
uint32_t pupdr; | |||
uint32_t odr; | |||
uint32_t afrl; | |||
uint32_t afrh; | |||
} gpio_setup_t; | |||
/** | |||
* @brief Type of STM32 GPIO initialization data. | |||
*/ | |||
typedef struct { | |||
#if STM32_HAS_GPIOA || defined(__DOXYGEN__) | |||
gpio_setup_t PAData; | |||
#endif | |||
#if STM32_HAS_GPIOB || defined(__DOXYGEN__) | |||
gpio_setup_t PBData; | |||
#endif | |||
#if STM32_HAS_GPIOC || defined(__DOXYGEN__) | |||
gpio_setup_t PCData; | |||
#endif | |||
#if STM32_HAS_GPIOD || defined(__DOXYGEN__) | |||
gpio_setup_t PDData; | |||
#endif | |||
#if STM32_HAS_GPIOE || defined(__DOXYGEN__) | |||
gpio_setup_t PEData; | |||
#endif | |||
#if STM32_HAS_GPIOF || defined(__DOXYGEN__) | |||
gpio_setup_t PFData; | |||
#endif | |||
#if STM32_HAS_GPIOG || defined(__DOXYGEN__) | |||
gpio_setup_t PGData; | |||
#endif | |||
#if STM32_HAS_GPIOH || defined(__DOXYGEN__) | |||
gpio_setup_t PHData; | |||
#endif | |||
#if STM32_HAS_GPIOI || defined(__DOXYGEN__) | |||
gpio_setup_t PIData; | |||
#endif | |||
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) | |||
gpio_setup_t PJData; | |||
#endif | |||
#if STM32_HAS_GPIOK || defined(__DOXYGEN__) | |||
gpio_setup_t PKData; | |||
#endif | |||
} gpio_config_t; | |||
/** | |||
* @brief STM32 GPIO static initialization data. | |||
*/ | |||
static const gpio_config_t gpio_default_config = { | |||
#if STM32_HAS_GPIOA | |||
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, | |||
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOB | |||
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, | |||
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOC | |||
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, | |||
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOD | |||
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, | |||
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOE | |||
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, | |||
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOF | |||
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, | |||
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOG | |||
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, | |||
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOH | |||
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, | |||
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOI | |||
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, | |||
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOJ | |||
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, | |||
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOK | |||
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, | |||
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} | |||
#endif | |||
}; | |||
/*===========================================================================*/ | |||
/* Driver local functions. */ | |||
/*===========================================================================*/ | |||
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { | |||
gpiop->OTYPER = config->otyper; | |||
gpiop->OSPEEDR = config->ospeedr; | |||
gpiop->PUPDR = config->pupdr; | |||
gpiop->ODR = config->odr; | |||
gpiop->AFRL = config->afrl; | |||
gpiop->AFRH = config->afrh; | |||
gpiop->MODER = config->moder; | |||
} | |||
static void stm32_gpio_init(void) { | |||
/* Enabling GPIO-related clocks, the mask comes from the | |||
registry header file.*/ | |||
rccResetAHB(STM32_GPIO_EN_MASK); | |||
rccEnableAHB(STM32_GPIO_EN_MASK, true); | |||
/* Initializing all the defined GPIO ports.*/ | |||
#if STM32_HAS_GPIOA | |||
gpio_init(GPIOA, &gpio_default_config.PAData); | |||
#endif | |||
#if STM32_HAS_GPIOB | |||
gpio_init(GPIOB, &gpio_default_config.PBData); | |||
#endif | |||
#if STM32_HAS_GPIOC | |||
gpio_init(GPIOC, &gpio_default_config.PCData); | |||
#endif | |||
#if STM32_HAS_GPIOD | |||
gpio_init(GPIOD, &gpio_default_config.PDData); | |||
#endif | |||
#if STM32_HAS_GPIOE | |||
gpio_init(GPIOE, &gpio_default_config.PEData); | |||
#endif | |||
#if STM32_HAS_GPIOF | |||
gpio_init(GPIOF, &gpio_default_config.PFData); | |||
#endif | |||
#if STM32_HAS_GPIOG | |||
gpio_init(GPIOG, &gpio_default_config.PGData); | |||
#endif | |||
#if STM32_HAS_GPIOH | |||
gpio_init(GPIOH, &gpio_default_config.PHData); | |||
#endif | |||
#if STM32_HAS_GPIOI | |||
gpio_init(GPIOI, &gpio_default_config.PIData); | |||
#endif | |||
#if STM32_HAS_GPIOJ | |||
gpio_init(GPIOJ, &gpio_default_config.PJData); | |||
#endif | |||
#if STM32_HAS_GPIOK | |||
gpio_init(GPIOK, &gpio_default_config.PKData); | |||
#endif | |||
} | |||
/*===========================================================================*/ | |||
/* Driver interrupt handlers. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver exported functions. */ | |||
/*===========================================================================*/ | |||
/** | |||
* @brief Early initialization code. | |||
* @details GPIO ports and system clocks are initialized before everything | |||
* else. | |||
*/ | |||
void __early_init(void) { | |||
extern void enter_bootloader_mode_if_requested(void); | |||
enter_bootloader_mode_if_requested(); | |||
stm32_gpio_init(); | |||
stm32_clock_init(); | |||
} | |||
#if HAL_USE_SDC || defined(__DOXYGEN__) | |||
/** | |||
* @brief SDC card detection. | |||
*/ | |||
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { | |||
(void)sdcp; | |||
/* TODO: Fill the implementation.*/ | |||
return true; | |||
} | |||
/** | |||
* @brief SDC card write protection detection. | |||
*/ | |||
bool sdc_lld_is_write_protected(SDCDriver *sdcp) { | |||
(void)sdcp; | |||
/* TODO: Fill the implementation.*/ | |||
return false; | |||
} | |||
#endif /* HAL_USE_SDC */ | |||
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) | |||
/** | |||
* @brief MMC_SPI card detection. | |||
*/ | |||
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { | |||
(void)mmcp; | |||
/* TODO: Fill the implementation.*/ | |||
return true; | |||
} | |||
/** | |||
* @brief MMC_SPI card write protection detection. | |||
*/ | |||
bool mmc_lld_is_write_protected(MMCDriver *mmcp) { | |||
(void)mmcp; | |||
/* TODO: Fill the implementation.*/ | |||
return false; | |||
} | |||
#endif | |||
/** | |||
* @brief Board-specific initialization code. | |||
* @todo Add your board-specific code, if any. | |||
*/ | |||
void boardInit(void) { | |||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; | |||
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); | |||
} |
@ -1,940 +0,0 @@ | |||
/* | |||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
*/ | |||
/* | |||
* This file has been automatically generated using ChibiStudio board | |||
* generator plugin. Do not edit manually. | |||
*/ | |||
#ifndef BOARD_H | |||
#define BOARD_H | |||
/*===========================================================================*/ | |||
/* Driver constants. */ | |||
/*===========================================================================*/ | |||
/* | |||
* Setup for ST STM32F072B-Discovery board. | |||
*/ | |||
/* | |||
* Board identifier. | |||
*/ | |||
#define BOARD_ST_STM32F072B_DISCOVERY | |||
#define BOARD_NAME "ST STM32F072B-Discovery" | |||
/* | |||
* Board oscillators-related settings. | |||
* NOTE: HSE not fitted. | |||
*/ | |||
#if !defined(STM32_LSECLK) | |||
#define STM32_LSECLK 32768 | |||
#endif | |||
#define STM32_LSEDRV (3U << 3U) | |||
#if !defined(STM32_HSECLK) | |||
#define STM32_HSECLK 0U | |||
#endif | |||
#define STM32_HSE_BYPASS | |||
/* | |||
* MCU type as defined in the ST header. | |||
*/ | |||
#define STM32F072xB | |||
/* | |||
* IO pins assignments. | |||
*/ | |||
#define GPIOA_BUTTON 0U | |||
#define GPIOA_PIN1 1U | |||
#define GPIOA_PIN2 2U | |||
#define GPIOA_PIN3 3U | |||
#define GPIOA_PIN4 4U | |||
#define GPIOA_PIN5 5U | |||
#define GPIOA_PIN6 6U | |||
#define GPIOA_PIN7 7U | |||
#define GPIOA_PIN8 8U | |||
#define GPIOA_PIN9 9U | |||
#define GPIOA_PIN10 10U | |||
#define GPIOA_USB_DM 11U | |||
#define GPIOA_USB_DP 12U | |||
#define GPIOA_SWDIO 13U | |||
#define GPIOA_SWCLK 14U | |||
#define GPIOA_PIN15 15U | |||
#define GPIOB_PIN0 0U | |||
#define GPIOB_PIN1 1U | |||
#define GPIOB_PIN2 2U | |||
#define GPIOB_PIN3 3U | |||
#define GPIOB_PIN4 4U | |||
#define GPIOB_PIN5 5U | |||
#define GPIOB_PIN6 6U | |||
#define GPIOB_PIN7 7U | |||
#define GPIOB_PIN8 8U | |||
#define GPIOB_PIN9 9U | |||
#define GPIOB_PIN10 10U | |||
#define GPIOB_PIN11 11U | |||
#define GPIOB_PIN12 12U | |||
#define GPIOB_SPI2_SCK 13U | |||
#define GPIOB_SPI2_MISO 14U | |||
#define GPIOB_SPI2_MOSI 15U | |||
#define GPIOC_MEMS_CS 0U | |||
#define GPIOC_PIN1 1U | |||
#define GPIOC_PIN2 2U | |||
#define GPIOC_PIN3 3U | |||
#define GPIOC_PIN4 4U | |||
#define GPIOC_PIN5 5U | |||
#define GPIOC_LED_RED 6U | |||
#define GPIOC_LED_BLUE 7U | |||
#define GPIOC_LED_ORANGE 8U | |||
#define GPIOC_LED_GREEN 9U | |||
#define GPIOC_PIN10 10U | |||
#define GPIOC_PIN11 11U | |||
#define GPIOC_PIN12 12U | |||
#define GPIOC_PIN13 13U | |||
#define GPIOC_OSC32_IN 14U | |||
#define GPIOC_OSC32_OUT 15U | |||
#define GPIOD_PIN0 0U | |||
#define GPIOD_PIN1 1U | |||
#define GPIOD_PIN2 2U | |||
#define GPIOD_PIN3 3U | |||
#define GPIOD_PIN4 4U | |||
#define GPIOD_PIN5 5U | |||
#define GPIOD_PIN6 6U | |||
#define GPIOD_PIN7 7U | |||
#define GPIOD_PIN8 8U | |||
#define GPIOD_PIN9 9U | |||
#define GPIOD_PIN10 10U | |||
#define GPIOD_PIN11 11U | |||
#define GPIOD_PIN12 12U | |||
#define GPIOD_PIN13 13U | |||
#define GPIOD_PIN14 14U | |||
#define GPIOD_PIN15 15U | |||
#define GPIOE_PIN0 0U | |||
#define GPIOE_PIN1 1U | |||
#define GPIOE_PIN2 2U | |||
#define GPIOE_PIN3 3U | |||
#define GPIOE_PIN4 4U | |||
#define GPIOE_PIN5 5U | |||
#define GPIOE_PIN6 6U | |||
#define GPIOE_PIN7 7U | |||
#define GPIOE_PIN8 8U | |||
#define GPIOE_PIN9 9U | |||
#define GPIOE_PIN10 10U | |||
#define GPIOE_PIN11 11U | |||
#define GPIOE_PIN12 12U | |||
#define GPIOE_PIN13 13U | |||
#define GPIOE_PIN14 14U | |||
#define GPIOE_PIN15 15U | |||
#define GPIOF_OSC_IN 0U | |||
#define GPIOF_OSC_OUT 1U | |||
#define GPIOF_PIN2 2U | |||
#define GPIOF_PIN3 3U | |||
#define GPIOF_PIN4 4U | |||
#define GPIOF_PIN5 5U | |||
#define GPIOF_PIN6 6U | |||
#define GPIOF_PIN7 7U | |||
#define GPIOF_PIN8 8U | |||
#define GPIOF_PIN9 9U | |||
#define GPIOF_PIN10 10U | |||
#define GPIOF_PIN11 11U | |||
#define GPIOF_PIN12 12U | |||
#define GPIOF_PIN13 13U | |||
#define GPIOF_PIN14 14U | |||
#define GPIOF_PIN15 15U | |||
/* | |||
* IO lines assignments. | |||
*/ | |||
#define LINE_BUTTON PAL_LINE(GPIOA, 0U) | |||
#define LINE_USB_DM PAL_LINE(GPIOA, 11U) | |||
#define LINE_USB_DP PAL_LINE(GPIOA, 12U) | |||
#define LINE_SWDIO PAL_LINE(GPIOA, 13U) | |||
#define LINE_SWCLK PAL_LINE(GPIOA, 14U) | |||
#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) | |||
#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) | |||
#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) | |||
#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) | |||
#define LINE_LED_RED PAL_LINE(GPIOC, 6U) | |||
#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) | |||
#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U) | |||
#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) | |||
#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) | |||
#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) | |||
#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) | |||
#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) | |||
/*===========================================================================*/ | |||
/* Driver pre-compile time settings. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Derived constants and error checks. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver data structures and types. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver macros. */ | |||
/*===========================================================================*/ | |||
/* | |||
* I/O ports initial setup, this configuration is established soon after reset | |||
* in the initialization code. | |||
* Please refer to the STM32 Reference Manual for details. | |||
*/ | |||
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) | |||
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) | |||
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) | |||
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) | |||
#define PIN_ODR_LOW(n) (0U << (n)) | |||
#define PIN_ODR_HIGH(n) (1U << (n)) | |||
#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) | |||
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) | |||
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) | |||
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) | |||
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) | |||
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) | |||
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) | |||
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) | |||
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) | |||
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) | |||
/* | |||
* GPIOA setup: | |||
* | |||
* PA0 - BUTTON (input floating). | |||
* PA1 - PIN1 (input pullup). | |||
* PA2 - PIN2 (input pullup). | |||
* PA3 - PIN3 (input pullup). | |||
* PA4 - PIN4 (input pullup). | |||
* PA5 - PIN5 (input pullup). | |||
* PA6 - PIN6 (input pullup). | |||
* PA7 - PIN7 (input pullup). | |||
* PA8 - PIN8 (input pullup). | |||
* PA9 - PIN9 (input pullup). | |||
* PA10 - PIN10 (input pullup). | |||
* PA11 - USB_DM (input floating). | |||
* PA12 - USB_DP (input floating). | |||
* PA13 - SWDIO (alternate 0). | |||
* PA14 - SWCLK (alternate 0). | |||
* PA15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOA_USB_DM) | \ | |||
PIN_MODE_INPUT(GPIOA_USB_DP) | \ | |||
PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ | |||
PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN15)) | |||
#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) | |||
#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ | |||
PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ | |||
PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ | |||
PIN_OSPEED_HIGH(GPIOA_PIN15)) | |||
#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ | |||
PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ | |||
PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ | |||
PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN15)) | |||
#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOA_USB_DM) | \ | |||
PIN_ODR_HIGH(GPIOA_USB_DP) | \ | |||
PIN_ODR_HIGH(GPIOA_SWDIO) | \ | |||
PIN_ODR_HIGH(GPIOA_SWCLK) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN15)) | |||
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN7, 0U)) | |||
#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN15, 0U)) | |||
/* | |||
* GPIOB setup: | |||
* | |||
* PB0 - PIN0 (input pullup). | |||
* PB1 - PIN1 (input pullup). | |||
* PB2 - PIN2 (input pullup). | |||
* PB3 - PIN3 (input pullup). | |||
* PB4 - PIN4 (input pullup). | |||
* PB5 - PIN5 (input pullup). | |||
* PB6 - PIN6 (input pullup). | |||
* PB7 - PIN7 (input pullup). | |||
* PB8 - PIN8 (input pullup). | |||
* PB9 - PIN9 (input pullup). | |||
* PB10 - PIN10 (input pullup). | |||
* PB11 - PIN11 (input pullup). | |||
* PB12 - PIN12 (input pullup). | |||
* PB13 - SPI2_SCK (alternate 0). | |||
* PB14 - SPI2_MISO (alternate 0). | |||
* PB15 - SPI2_MOSI (alternate 0). | |||
*/ | |||
#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN12) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN2) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN3) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN7, 0U)) | |||
#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U)) | |||
/* | |||
* GPIOC setup: | |||
* | |||
* PC0 - MEMS_CS (output pushpull maximum). | |||
* PC1 - PIN1 (input pullup). | |||
* PC2 - PIN2 (input pullup). | |||
* PC3 - PIN3 (input pullup). | |||
* PC4 - PIN4 (input pullup). | |||
* PC5 - PIN5 (input pullup). | |||
* PC6 - LED_RED (output pushpull maximum). | |||
* PC7 - LED_BLUE (output pushpull maximum). | |||
* PC8 - LED_ORANGE (output pushpull maximum). | |||
* PC9 - LED_GREEN (output pushpull maximum). | |||
* PC10 - PIN10 (input pullup). | |||
* PC11 - PIN11 (input pullup). | |||
* PC12 - PIN12 (input pullup). | |||
* PC13 - PIN13 (input pullup). | |||
* PC14 - OSC32_IN (input floating). | |||
* PC15 - OSC32_OUT (input floating). | |||
*/ | |||
#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN5) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_RED) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOC_OSC32_IN) | \ | |||
PIN_MODE_INPUT(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_RED) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ | |||
PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \ | |||
PIN_OSPEED_HIGH(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN5) | \ | |||
PIN_ODR_LOW(GPIOC_LED_RED) | \ | |||
PIN_ODR_LOW(GPIOC_LED_BLUE) | \ | |||
PIN_ODR_LOW(GPIOC_LED_ORANGE) | \ | |||
PIN_ODR_LOW(GPIOC_LED_GREEN) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOC_OSC32_IN) | \ | |||
PIN_ODR_HIGH(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_BLUE, 0U)) | |||
#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U)) | |||
/* | |||
* GPIOD setup: | |||
* | |||
* PD0 - PIN0 (input pullup). | |||
* PD1 - PIN1 (input pullup). | |||
* PD2 - PIN2 (input pullup). | |||
* PD3 - PIN3 (input pullup). | |||
* PD4 - PIN4 (input pullup). | |||
* PD5 - PIN5 (input pullup). | |||
* PD6 - PIN6 (input pullup). | |||
* PD7 - PIN7 (input pullup). | |||
* PD8 - PIN8 (input pullup). | |||
* PD9 - PIN9 (input pullup). | |||
* PD10 - PIN10 (input pullup). | |||
* PD11 - PIN11 (input pullup). | |||
* PD12 - PIN12 (input pullup). | |||
* PD13 - PIN13 (input pullup). | |||
* PD14 - PIN14 (input pullup). | |||
* PD15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN15)) | |||
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) | |||
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN15)) | |||
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN15)) | |||
#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN15)) | |||
#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN7, 0U)) | |||
#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN15, 0U)) | |||
/* | |||
* GPIOE setup: | |||
* | |||
* PE0 - PIN0 (input pullup). | |||
* PE1 - PIN1 (input pullup). | |||
* PE2 - PIN2 (input pullup). | |||
* PE3 - PIN3 (input pullup). | |||
* PE4 - PIN4 (input pullup). | |||
* PE5 - PIN5 (input pullup). | |||
* PE6 - PIN6 (input pullup). | |||
* PE7 - PIN7 (input pullup). | |||
* PE8 - PIN8 (input pullup). | |||
* PE9 - PIN9 (input pullup). | |||
* PE10 - PIN10 (input pullup). | |||
* PE11 - PIN11 (input pullup). | |||
* PE12 - PIN12 (input pullup). | |||
* PE13 - PIN13 (input pullup). | |||
* PE14 - PIN14 (input pullup). | |||
* PE15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN15)) | |||
#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) | |||
#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN15)) | |||
#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN15)) | |||
#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN15)) | |||
#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN7, 0U)) | |||
#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN15, 0U)) | |||
/* | |||
* GPIOF setup: | |||
* | |||
* PF0 - OSC_IN (input floating). | |||
* PF1 - OSC_OUT (input floating). | |||
* PF2 - PIN2 (input pullup). | |||
* PF3 - PIN3 (input pullup). | |||
* PF4 - PIN4 (input pullup). | |||
* PF5 - PIN5 (input pullup). | |||
* PF6 - PIN6 (input pullup). | |||
* PF7 - PIN7 (input pullup). | |||
* PF8 - PIN8 (input pullup). | |||
* PF9 - PIN9 (input pullup). | |||
* PF10 - PIN10 (input pullup). | |||
* PF11 - PIN11 (input pullup). | |||
* PF12 - PIN12 (input pullup). | |||
* PF13 - PIN13 (input pullup). | |||
* PF14 - PIN14 (input pullup). | |||
* PF15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \ | |||
PIN_MODE_INPUT(GPIOF_OSC_OUT) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN15)) | |||
#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) | |||
#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN15)) | |||
#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \ | |||
PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN15)) | |||
#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \ | |||
PIN_ODR_HIGH(GPIOF_OSC_OUT) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN15)) | |||
#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN7, 0U)) | |||
#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN15, 0U)) | |||
/*===========================================================================*/ | |||
/* External declarations. */ | |||
/*===========================================================================*/ | |||
#if !defined(_FROM_ASM_) | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
void boardInit(void); | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* _FROM_ASM_ */ | |||
#endif /* BOARD_H */ |
@ -1,5 +0,0 @@ | |||
# List of all the board related files. | |||
BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c | |||
# Required include directories | |||
BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY |
@ -1,703 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!-- STM32F0xx board Template --> | |||
<board | |||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd"> | |||
<configuration_settings> | |||
<templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path> | |||
<output_path>..</output_path> | |||
<hal_version>3.0.x</hal_version> | |||
</configuration_settings> | |||
<board_name>ST STM32F072B-Discovery</board_name> | |||
<board_id>ST_STM32F072B_DISCOVERY</board_id> | |||
<board_functions></board_functions> | |||
<subtype>STM32F072xB</subtype> | |||
<clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0" | |||
LSEBypass="false" LSEDrive="3 High Drive (default)" /> | |||
<ports> | |||
<GPIOA> | |||
<pin0 | |||
ID="BUTTON" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="USB_DM" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="USB_DP" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="SWDIO" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="SWCLK" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullDown" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOA> | |||
<GPIOB> | |||
<pin0 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="SPI2_SCK" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="SPI2_MISO" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="SPI2_MOSI" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
</GPIOB> | |||
<GPIOC> | |||
<pin0 | |||
ID="MEMS_CS" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="LED_RED" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="LED_BLUE" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="LED_ORANGE" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" ></pin8> | |||
<pin9 | |||
ID="LED_GREEN" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="OSC32_IN" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="OSC32_OUT" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOC> | |||
<GPIOD> | |||
<pin0 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOD> | |||
<GPIOE> | |||
<pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
</GPIOE> | |||
<GPIOF> | |||
<pin0 | |||
ID="OSC_IN" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="OSC_OUT" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOF> | |||
</ports> | |||
</board> |
@ -1,268 +0,0 @@ | |||
/* | |||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
*/ | |||
/* | |||
* This file has been automatically generated using ChibiStudio board | |||
* generator plugin. Do not edit manually. | |||
*/ | |||
#include "hal.h" | |||
#include "stm32_gpio.h" | |||
/*===========================================================================*/ | |||
/* Driver local definitions. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver exported variables. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver local variables and types. */ | |||
/*===========================================================================*/ | |||
/** | |||
* @brief Type of STM32 GPIO port setup. | |||
*/ | |||
typedef struct { | |||
uint32_t moder; | |||
uint32_t otyper; | |||
uint32_t ospeedr; | |||
uint32_t pupdr; | |||
uint32_t odr; | |||
uint32_t afrl; | |||
uint32_t afrh; | |||
} gpio_setup_t; | |||
/** | |||
* @brief Type of STM32 GPIO initialization data. | |||
*/ | |||
typedef struct { | |||
#if STM32_HAS_GPIOA || defined(__DOXYGEN__) | |||
gpio_setup_t PAData; | |||
#endif | |||
#if STM32_HAS_GPIOB || defined(__DOXYGEN__) | |||
gpio_setup_t PBData; | |||
#endif | |||
#if STM32_HAS_GPIOC || defined(__DOXYGEN__) | |||
gpio_setup_t PCData; | |||
#endif | |||
#if STM32_HAS_GPIOD || defined(__DOXYGEN__) | |||
gpio_setup_t PDData; | |||
#endif | |||
#if STM32_HAS_GPIOE || defined(__DOXYGEN__) | |||
gpio_setup_t PEData; | |||
#endif | |||
#if STM32_HAS_GPIOF || defined(__DOXYGEN__) | |||
gpio_setup_t PFData; | |||
#endif | |||
#if STM32_HAS_GPIOG || defined(__DOXYGEN__) | |||
gpio_setup_t PGData; | |||
#endif | |||
#if STM32_HAS_GPIOH || defined(__DOXYGEN__) | |||
gpio_setup_t PHData; | |||
#endif | |||
#if STM32_HAS_GPIOI || defined(__DOXYGEN__) | |||
gpio_setup_t PIData; | |||
#endif | |||
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) | |||
gpio_setup_t PJData; | |||
#endif | |||
#if STM32_HAS_GPIOK || defined(__DOXYGEN__) | |||
gpio_setup_t PKData; | |||
#endif | |||
} gpio_config_t; | |||
/** | |||
* @brief STM32 GPIO static initialization data. | |||
*/ | |||
static const gpio_config_t gpio_default_config = { | |||
#if STM32_HAS_GPIOA | |||
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, | |||
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOB | |||
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, | |||
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOC | |||
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, | |||
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOD | |||
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, | |||
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOE | |||
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, | |||
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOF | |||
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, | |||
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOG | |||
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, | |||
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOH | |||
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, | |||
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOI | |||
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, | |||
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOJ | |||
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, | |||
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, | |||
#endif | |||
#if STM32_HAS_GPIOK | |||
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, | |||
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} | |||
#endif | |||
}; | |||
/*===========================================================================*/ | |||
/* Driver local functions. */ | |||
/*===========================================================================*/ | |||
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { | |||
gpiop->OTYPER = config->otyper; | |||
gpiop->OSPEEDR = config->ospeedr; | |||
gpiop->PUPDR = config->pupdr; | |||
gpiop->ODR = config->odr; | |||
gpiop->AFRL = config->afrl; | |||
gpiop->AFRH = config->afrh; | |||
gpiop->MODER = config->moder; | |||
} | |||
static void stm32_gpio_init(void) { | |||
/* Enabling GPIO-related clocks, the mask comes from the | |||
registry header file.*/ | |||
rccResetAHB(STM32_GPIO_EN_MASK); | |||
rccEnableAHB(STM32_GPIO_EN_MASK, true); | |||
/* Initializing all the defined GPIO ports.*/ | |||
#if STM32_HAS_GPIOA | |||
gpio_init(GPIOA, &gpio_default_config.PAData); | |||
#endif | |||
#if STM32_HAS_GPIOB | |||
gpio_init(GPIOB, &gpio_default_config.PBData); | |||
#endif | |||
#if STM32_HAS_GPIOC | |||
gpio_init(GPIOC, &gpio_default_config.PCData); | |||
#endif | |||
#if STM32_HAS_GPIOD | |||
gpio_init(GPIOD, &gpio_default_config.PDData); | |||
#endif | |||
#if STM32_HAS_GPIOE | |||
gpio_init(GPIOE, &gpio_default_config.PEData); | |||
#endif | |||
#if STM32_HAS_GPIOF | |||
gpio_init(GPIOF, &gpio_default_config.PFData); | |||
#endif | |||
#if STM32_HAS_GPIOG | |||
gpio_init(GPIOG, &gpio_default_config.PGData); | |||
#endif | |||
#if STM32_HAS_GPIOH | |||
gpio_init(GPIOH, &gpio_default_config.PHData); | |||
#endif | |||
#if STM32_HAS_GPIOI | |||
gpio_init(GPIOI, &gpio_default_config.PIData); | |||
#endif | |||
#if STM32_HAS_GPIOJ | |||
gpio_init(GPIOJ, &gpio_default_config.PJData); | |||
#endif | |||
#if STM32_HAS_GPIOK | |||
gpio_init(GPIOK, &gpio_default_config.PKData); | |||
#endif | |||
} | |||
/*===========================================================================*/ | |||
/* Driver interrupt handlers. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver exported functions. */ | |||
/*===========================================================================*/ | |||
/** | |||
* @brief Early initialization code. | |||
* @details GPIO ports and system clocks are initialized before everything | |||
* else. | |||
*/ | |||
void __early_init(void) { | |||
extern void enter_bootloader_mode_if_requested(void); | |||
enter_bootloader_mode_if_requested(); | |||
stm32_gpio_init(); | |||
stm32_clock_init(); | |||
} | |||
#if HAL_USE_SDC || defined(__DOXYGEN__) | |||
/** | |||
* @brief SDC card detection. | |||
*/ | |||
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { | |||
(void)sdcp; | |||
/* TODO: Fill the implementation.*/ | |||
return true; | |||
} | |||
/** | |||
* @brief SDC card write protection detection. | |||
*/ | |||
bool sdc_lld_is_write_protected(SDCDriver *sdcp) { | |||
(void)sdcp; | |||
/* TODO: Fill the implementation.*/ | |||
return false; | |||
} | |||
#endif /* HAL_USE_SDC */ | |||
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) | |||
/** | |||
* @brief MMC_SPI card detection. | |||
*/ | |||
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { | |||
(void)mmcp; | |||
/* TODO: Fill the implementation.*/ | |||
return true; | |||
} | |||
/** | |||
* @brief MMC_SPI card write protection detection. | |||
*/ | |||
bool mmc_lld_is_write_protected(MMCDriver *mmcp) { | |||
(void)mmcp; | |||
/* TODO: Fill the implementation.*/ | |||
return false; | |||
} | |||
#endif | |||
/** | |||
* @brief Board-specific initialization code. | |||
* @todo Add your board-specific code, if any. | |||
*/ | |||
void boardInit(void) { | |||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; | |||
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); | |||
} |
@ -1,940 +0,0 @@ | |||
/* | |||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
*/ | |||
/* | |||
* This file has been automatically generated using ChibiStudio board | |||
* generator plugin. Do not edit manually. | |||
*/ | |||
#ifndef BOARD_H | |||
#define BOARD_H | |||
/*===========================================================================*/ | |||
/* Driver constants. */ | |||
/*===========================================================================*/ | |||
/* | |||
* Setup for ST STM32F072B-Discovery board. | |||
*/ | |||
/* | |||
* Board identifier. | |||
*/ | |||
#define BOARD_ST_STM32F072B_DISCOVERY | |||
#define BOARD_NAME "ST STM32F072B-Discovery" | |||
/* | |||
* Board oscillators-related settings. | |||
* NOTE: HSE not fitted. | |||
*/ | |||
#if !defined(STM32_LSECLK) | |||
#define STM32_LSECLK 32768 | |||
#endif | |||
#define STM32_LSEDRV (3U << 3U) | |||
#if !defined(STM32_HSECLK) | |||
#define STM32_HSECLK 0U | |||
#endif | |||
#define STM32_HSE_BYPASS | |||
/* | |||
* MCU type as defined in the ST header. | |||
*/ | |||
#define STM32F072xB | |||
/* | |||
* IO pins assignments. | |||
*/ | |||
#define GPIOA_BUTTON 0U | |||
#define GPIOA_PIN1 1U | |||
#define GPIOA_PIN2 2U | |||
#define GPIOA_PIN3 3U | |||
#define GPIOA_PIN4 4U | |||
#define GPIOA_PIN5 5U | |||
#define GPIOA_PIN6 6U | |||
#define GPIOA_PIN7 7U | |||
#define GPIOA_PIN8 8U | |||
#define GPIOA_PIN9 9U | |||
#define GPIOA_PIN10 10U | |||
#define GPIOA_USB_DM 11U | |||
#define GPIOA_USB_DP 12U | |||
#define GPIOA_SWDIO 13U | |||
#define GPIOA_SWCLK 14U | |||
#define GPIOA_PIN15 15U | |||
#define GPIOB_PIN0 0U | |||
#define GPIOB_PIN1 1U | |||
#define GPIOB_PIN2 2U | |||
#define GPIOB_PIN3 3U | |||
#define GPIOB_PIN4 4U | |||
#define GPIOB_PIN5 5U | |||
#define GPIOB_PIN6 6U | |||
#define GPIOB_PIN7 7U | |||
#define GPIOB_PIN8 8U | |||
#define GPIOB_PIN9 9U | |||
#define GPIOB_PIN10 10U | |||
#define GPIOB_PIN11 11U | |||
#define GPIOB_PIN12 12U | |||
#define GPIOB_SPI2_SCK 13U | |||
#define GPIOB_SPI2_MISO 14U | |||
#define GPIOB_SPI2_MOSI 15U | |||
#define GPIOC_MEMS_CS 0U | |||
#define GPIOC_PIN1 1U | |||
#define GPIOC_PIN2 2U | |||
#define GPIOC_PIN3 3U | |||
#define GPIOC_PIN4 4U | |||
#define GPIOC_PIN5 5U | |||
#define GPIOC_LED_RED 6U | |||
#define GPIOC_LED_BLUE 7U | |||
#define GPIOC_LED_ORANGE 8U | |||
#define GPIOC_LED_GREEN 9U | |||
#define GPIOC_PIN10 10U | |||
#define GPIOC_PIN11 11U | |||
#define GPIOC_PIN12 12U | |||
#define GPIOC_PIN13 13U | |||
#define GPIOC_OSC32_IN 14U | |||
#define GPIOC_OSC32_OUT 15U | |||
#define GPIOD_PIN0 0U | |||
#define GPIOD_PIN1 1U | |||
#define GPIOD_PIN2 2U | |||
#define GPIOD_PIN3 3U | |||
#define GPIOD_PIN4 4U | |||
#define GPIOD_PIN5 5U | |||
#define GPIOD_PIN6 6U | |||
#define GPIOD_PIN7 7U | |||
#define GPIOD_PIN8 8U | |||
#define GPIOD_PIN9 9U | |||
#define GPIOD_PIN10 10U | |||
#define GPIOD_PIN11 11U | |||
#define GPIOD_PIN12 12U | |||
#define GPIOD_PIN13 13U | |||
#define GPIOD_PIN14 14U | |||
#define GPIOD_PIN15 15U | |||
#define GPIOE_PIN0 0U | |||
#define GPIOE_PIN1 1U | |||
#define GPIOE_PIN2 2U | |||
#define GPIOE_PIN3 3U | |||
#define GPIOE_PIN4 4U | |||
#define GPIOE_PIN5 5U | |||
#define GPIOE_PIN6 6U | |||
#define GPIOE_PIN7 7U | |||
#define GPIOE_PIN8 8U | |||
#define GPIOE_PIN9 9U | |||
#define GPIOE_PIN10 10U | |||
#define GPIOE_PIN11 11U | |||
#define GPIOE_PIN12 12U | |||
#define GPIOE_PIN13 13U | |||
#define GPIOE_PIN14 14U | |||
#define GPIOE_PIN15 15U | |||
#define GPIOF_OSC_IN 0U | |||
#define GPIOF_OSC_OUT 1U | |||
#define GPIOF_PIN2 2U | |||
#define GPIOF_PIN3 3U | |||
#define GPIOF_PIN4 4U | |||
#define GPIOF_PIN5 5U | |||
#define GPIOF_PIN6 6U | |||
#define GPIOF_PIN7 7U | |||
#define GPIOF_PIN8 8U | |||
#define GPIOF_PIN9 9U | |||
#define GPIOF_PIN10 10U | |||
#define GPIOF_PIN11 11U | |||
#define GPIOF_PIN12 12U | |||
#define GPIOF_PIN13 13U | |||
#define GPIOF_PIN14 14U | |||
#define GPIOF_PIN15 15U | |||
/* | |||
* IO lines assignments. | |||
*/ | |||
#define LINE_BUTTON PAL_LINE(GPIOA, 0U) | |||
#define LINE_USB_DM PAL_LINE(GPIOA, 11U) | |||
#define LINE_USB_DP PAL_LINE(GPIOA, 12U) | |||
#define LINE_SWDIO PAL_LINE(GPIOA, 13U) | |||
#define LINE_SWCLK PAL_LINE(GPIOA, 14U) | |||
#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) | |||
#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) | |||
#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) | |||
#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) | |||
#define LINE_LED_RED PAL_LINE(GPIOC, 6U) | |||
#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) | |||
#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U) | |||
#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) | |||
#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) | |||
#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) | |||
#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) | |||
#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) | |||
/*===========================================================================*/ | |||
/* Driver pre-compile time settings. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Derived constants and error checks. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver data structures and types. */ | |||
/*===========================================================================*/ | |||
/*===========================================================================*/ | |||
/* Driver macros. */ | |||
/*===========================================================================*/ | |||
/* | |||
* I/O ports initial setup, this configuration is established soon after reset | |||
* in the initialization code. | |||
* Please refer to the STM32 Reference Manual for details. | |||
*/ | |||
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) | |||
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) | |||
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) | |||
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) | |||
#define PIN_ODR_LOW(n) (0U << (n)) | |||
#define PIN_ODR_HIGH(n) (1U << (n)) | |||
#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) | |||
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) | |||
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) | |||
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) | |||
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) | |||
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) | |||
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) | |||
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) | |||
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) | |||
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) | |||
/* | |||
* GPIOA setup: | |||
* | |||
* PA0 - BUTTON (input floating). | |||
* PA1 - PIN1 (input pullup). | |||
* PA2 - PIN2 (input pullup). | |||
* PA3 - PIN3 (input pullup). | |||
* PA4 - PIN4 (input pullup). | |||
* PA5 - PIN5 (input pullup). | |||
* PA6 - PIN6 (input pullup). | |||
* PA7 - PIN7 (input pullup). | |||
* PA8 - PIN8 (input pullup). | |||
* PA9 - PIN9 (input pullup). | |||
* PA10 - PIN10 (input pullup). | |||
* PA11 - USB_DM (input floating). | |||
* PA12 - USB_DP (input floating). | |||
* PA13 - SWDIO (alternate 0). | |||
* PA14 - SWCLK (alternate 0). | |||
* PA15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOA_USB_DM) | \ | |||
PIN_MODE_INPUT(GPIOA_USB_DP) | \ | |||
PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ | |||
PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ | |||
PIN_MODE_INPUT(GPIOA_PIN15)) | |||
#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) | |||
#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \ | |||
PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ | |||
PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ | |||
PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ | |||
PIN_OSPEED_HIGH(GPIOA_PIN15)) | |||
#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ | |||
PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ | |||
PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ | |||
PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ | |||
PIN_PUPDR_PULLUP(GPIOA_PIN15)) | |||
#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOA_USB_DM) | \ | |||
PIN_ODR_HIGH(GPIOA_USB_DP) | \ | |||
PIN_ODR_HIGH(GPIOA_SWDIO) | \ | |||
PIN_ODR_HIGH(GPIOA_SWCLK) | \ | |||
PIN_ODR_HIGH(GPIOA_PIN15)) | |||
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN7, 0U)) | |||
#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ | |||
PIN_AFIO_AF(GPIOA_PIN15, 0U)) | |||
/* | |||
* GPIOB setup: | |||
* | |||
* PB0 - PIN0 (input pullup). | |||
* PB1 - PIN1 (input pullup). | |||
* PB2 - PIN2 (input pullup). | |||
* PB3 - PIN3 (input pullup). | |||
* PB4 - PIN4 (input pullup). | |||
* PB5 - PIN5 (input pullup). | |||
* PB6 - PIN6 (input pullup). | |||
* PB7 - PIN7 (input pullup). | |||
* PB8 - PIN8 (input pullup). | |||
* PB9 - PIN9 (input pullup). | |||
* PB10 - PIN10 (input pullup). | |||
* PB11 - PIN11 (input pullup). | |||
* PB12 - PIN12 (input pullup). | |||
* PB13 - SPI2_SCK (alternate 0). | |||
* PB14 - SPI2_MISO (alternate 0). | |||
* PB15 - SPI2_MOSI (alternate 0). | |||
*/ | |||
#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOB_PIN12) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \ | |||
PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN2) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN3) | \ | |||
PIN_OSPEED_HIGH(GPIOB_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \ | |||
PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \ | |||
PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOB_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \ | |||
PIN_ODR_HIGH(GPIOB_SPI2_MOSI)) | |||
#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN7, 0U)) | |||
#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \ | |||
PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U)) | |||
/* | |||
* GPIOC setup: | |||
* | |||
* PC0 - MEMS_CS (output pushpull maximum). | |||
* PC1 - PIN1 (input pullup). | |||
* PC2 - PIN2 (input pullup). | |||
* PC3 - PIN3 (input pullup). | |||
* PC4 - PIN4 (input pullup). | |||
* PC5 - PIN5 (input pullup). | |||
* PC6 - LED_RED (output pushpull maximum). | |||
* PC7 - LED_BLUE (output pushpull maximum). | |||
* PC8 - LED_ORANGE (output pushpull maximum). | |||
* PC9 - LED_GREEN (output pushpull maximum). | |||
* PC10 - PIN10 (input pullup). | |||
* PC11 - PIN11 (input pullup). | |||
* PC12 - PIN12 (input pullup). | |||
* PC13 - PIN13 (input pullup). | |||
* PC14 - OSC32_IN (input floating). | |||
* PC15 - OSC32_OUT (input floating). | |||
*/ | |||
#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN5) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_RED) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \ | |||
PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOC_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOC_OSC32_IN) | \ | |||
PIN_MODE_INPUT(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_RED) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \ | |||
PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ | |||
PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \ | |||
PIN_OSPEED_HIGH(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \ | |||
PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN5) | \ | |||
PIN_ODR_LOW(GPIOC_LED_RED) | \ | |||
PIN_ODR_LOW(GPIOC_LED_BLUE) | \ | |||
PIN_ODR_LOW(GPIOC_LED_ORANGE) | \ | |||
PIN_ODR_LOW(GPIOC_LED_GREEN) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOC_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOC_OSC32_IN) | \ | |||
PIN_ODR_HIGH(GPIOC_OSC32_OUT)) | |||
#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_BLUE, 0U)) | |||
#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \ | |||
PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U)) | |||
/* | |||
* GPIOD setup: | |||
* | |||
* PD0 - PIN0 (input pullup). | |||
* PD1 - PIN1 (input pullup). | |||
* PD2 - PIN2 (input pullup). | |||
* PD3 - PIN3 (input pullup). | |||
* PD4 - PIN4 (input pullup). | |||
* PD5 - PIN5 (input pullup). | |||
* PD6 - PIN6 (input pullup). | |||
* PD7 - PIN7 (input pullup). | |||
* PD8 - PIN8 (input pullup). | |||
* PD9 - PIN9 (input pullup). | |||
* PD10 - PIN10 (input pullup). | |||
* PD11 - PIN11 (input pullup). | |||
* PD12 - PIN12 (input pullup). | |||
* PD13 - PIN13 (input pullup). | |||
* PD14 - PIN14 (input pullup). | |||
* PD15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOD_PIN15)) | |||
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) | |||
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOD_PIN15)) | |||
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOD_PIN15)) | |||
#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOD_PIN15)) | |||
#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN7, 0U)) | |||
#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOD_PIN15, 0U)) | |||
/* | |||
* GPIOE setup: | |||
* | |||
* PE0 - PIN0 (input pullup). | |||
* PE1 - PIN1 (input pullup). | |||
* PE2 - PIN2 (input pullup). | |||
* PE3 - PIN3 (input pullup). | |||
* PE4 - PIN4 (input pullup). | |||
* PE5 - PIN5 (input pullup). | |||
* PE6 - PIN6 (input pullup). | |||
* PE7 - PIN7 (input pullup). | |||
* PE8 - PIN8 (input pullup). | |||
* PE9 - PIN9 (input pullup). | |||
* PE10 - PIN10 (input pullup). | |||
* PE11 - PIN11 (input pullup). | |||
* PE12 - PIN12 (input pullup). | |||
* PE13 - PIN13 (input pullup). | |||
* PE14 - PIN14 (input pullup). | |||
* PE15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN1) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOE_PIN15)) | |||
#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) | |||
#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOE_PIN15)) | |||
#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOE_PIN15)) | |||
#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN1) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOE_PIN15)) | |||
#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN7, 0U)) | |||
#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOE_PIN15, 0U)) | |||
/* | |||
* GPIOF setup: | |||
* | |||
* PF0 - OSC_IN (input floating). | |||
* PF1 - OSC_OUT (input floating). | |||
* PF2 - PIN2 (input pullup). | |||
* PF3 - PIN3 (input pullup). | |||
* PF4 - PIN4 (input pullup). | |||
* PF5 - PIN5 (input pullup). | |||
* PF6 - PIN6 (input pullup). | |||
* PF7 - PIN7 (input pullup). | |||
* PF8 - PIN8 (input pullup). | |||
* PF9 - PIN9 (input pullup). | |||
* PF10 - PIN10 (input pullup). | |||
* PF11 - PIN11 (input pullup). | |||
* PF12 - PIN12 (input pullup). | |||
* PF13 - PIN13 (input pullup). | |||
* PF14 - PIN14 (input pullup). | |||
* PF15 - PIN15 (input pullup). | |||
*/ | |||
#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \ | |||
PIN_MODE_INPUT(GPIOF_OSC_OUT) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN2) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN3) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN4) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN5) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN6) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN7) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN8) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN9) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN10) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN11) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN12) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN13) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN14) | \ | |||
PIN_MODE_INPUT(GPIOF_PIN15)) | |||
#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ | |||
PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) | |||
#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ | |||
PIN_OSPEED_VERYLOW(GPIOF_PIN15)) | |||
#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \ | |||
PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ | |||
PIN_PUPDR_PULLUP(GPIOF_PIN15)) | |||
#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \ | |||
PIN_ODR_HIGH(GPIOF_OSC_OUT) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN2) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN3) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN4) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN5) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN6) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN7) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN8) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN9) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN10) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN11) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN12) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN13) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN14) | \ | |||
PIN_ODR_HIGH(GPIOF_PIN15)) | |||
#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN7, 0U)) | |||
#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ | |||
PIN_AFIO_AF(GPIOF_PIN15, 0U)) | |||
/*===========================================================================*/ | |||
/* External declarations. */ | |||
/*===========================================================================*/ | |||
#if !defined(_FROM_ASM_) | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
void boardInit(void); | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* _FROM_ASM_ */ | |||
#endif /* BOARD_H */ |
@ -1,5 +0,0 @@ | |||
# List of all the board related files. | |||
BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c | |||
# Required include directories | |||
BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY |
@ -1,703 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!-- STM32F0xx board Template --> | |||
<board | |||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd"> | |||
<configuration_settings> | |||
<templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path> | |||
<output_path>..</output_path> | |||
<hal_version>3.0.x</hal_version> | |||
</configuration_settings> | |||
<board_name>ST STM32F072B-Discovery</board_name> | |||
<board_id>ST_STM32F072B_DISCOVERY</board_id> | |||
<board_functions></board_functions> | |||
<subtype>STM32F072xB</subtype> | |||
<clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0" | |||
LSEBypass="false" LSEDrive="3 High Drive (default)" /> | |||
<ports> | |||
<GPIOA> | |||
<pin0 | |||
ID="BUTTON" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="USB_DM" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="USB_DP" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="SWDIO" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="SWCLK" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullDown" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOA> | |||
<GPIOB> | |||
<pin0 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="SPI2_SCK" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="SPI2_MISO" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="SPI2_MOSI" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Alternate" | |||
Alternate="0" /> | |||
</GPIOB> | |||
<GPIOC> | |||
<pin0 | |||
ID="MEMS_CS" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="LED_RED" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="LED_BLUE" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="LED_ORANGE" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" ></pin8> | |||
<pin9 | |||
ID="LED_GREEN" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="Low" | |||
Mode="Output" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="OSC32_IN" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="OSC32_OUT" | |||
Type="PushPull" | |||
Speed="Maximum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOC> | |||
<GPIOD> | |||
<pin0 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOD> | |||
<GPIOE> | |||
<pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
<pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp" | |||
Level="High" Mode="Input" Alternate="0" /> | |||
</GPIOE> | |||
<GPIOF> | |||
<pin0 | |||
ID="OSC_IN" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin1 | |||
ID="OSC_OUT" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="Floating" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin2 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin3 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin4 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin5 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin6 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin7 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin8 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin9 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin10 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin11 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin12 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin13 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin14 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
<pin15 | |||
ID="" | |||
Type="PushPull" | |||
Speed="Minimum" | |||
Resistor="PullUp" | |||
Level="High" | |||
Mode="Input" | |||
Alternate="0" /> | |||
</GPIOF> | |||
</ports> | |||
</board> |
@ -0,0 +1,26 @@ | |||
# Speedo | |||
![Speedo](http://assets.cozykeys.xyz/images/keyboards/speedo/speedo-v3.0-angle-led-front_1600x1600.png) | |||
- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing) | |||
- Hardware Supported: Elite-C | |||
- Hardware Availability: [Speedo Repository](https://github.com/cozykeys/speedo) | |||
Make example for this keyboard (after setting up your build environment): | |||
make speedo:default | |||
Flashing example for this keyboard: | |||
make speedo:default:flash | |||
See the | |||
[build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and | |||
the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for | |||
more information. Brand new to QMK? Start with our | |||
[Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | |||
## Flashing the Firmware | |||
See the QMK docs for handwiring a keyboard; there is a section with | |||
instructions on how to flash the *.hex* file to the Teensy 2.0 controller. |
@ -0,0 +1,17 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include "speedo.h" |
@ -0,0 +1,23 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#ifdef KEYBOARD_cozykeys_speedo_v2 | |||
#include "speedo_v2.h" | |||
#elif KEYBOARD_cozykeys_speedo_v3 | |||
#include "speedo_v3.h" | |||
#endif |
@ -0,0 +1,44 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#include "config_common.h" | |||
// USB Device descriptor parameter | |||
#define VENDOR_ID 0xFEED | |||
#define PRODUCT_ID 0x1192 | |||
#define DEVICE_VER 0x0002 | |||
#define MANUFACTURER CozyKeys | |||
#define PRODUCT Speedo | |||
// Key matrix size | |||
#define MATRIX_ROWS 5 | |||
#define MATRIX_COLS 14 | |||
// Keyboard Matrix Assignments | |||
#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 } | |||
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 } | |||
#define UNUSED_PINS { D5, D4, D6, D7, B4 } | |||
#define DIODE_DIRECTION COL2ROW | |||
// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed | |||
#define DEBOUNCE 5 | |||
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap | |||
#define LOCKING_SUPPORT_ENABLE | |||
// Locking resynchronize hack | |||
#define LOCKING_RESYNC_ENABLE |
@ -0,0 +1,79 @@ | |||
{ | |||
"keyboard_name": "Speedo", | |||
"url": "https://github.com/cozykeys/speedo", | |||
"maintainer": "pcewing", | |||
"width": 14, | |||
"height": 5, | |||
"layouts": { | |||
"LAYOUT": { | |||
"layout": [ | |||
{ "label": "k01", "x": 0.693, "y": 0.0, "r": 10 }, | |||
{ "label": "k02", "x": 1.675, "y": 0.173, "r": 10 }, | |||
{ "label": "k03", "x": 2.685, "y": 0.191, "r": 10 }, | |||
{ "label": "k04", "x": 3.712, "y": 0.106, "r": 10 }, | |||
{ "label": "k05", "x": 4.64, "y": 0.589, "r": 10 }, | |||
{ "label": "k06", "x": 5.577, "y": 1.021, "r": 10 }, | |||
{ "label": "k07", "x": 7.571, "y": 1.021, "r": -10 }, | |||
{ "label": "k08", "x": 8.507, "y": 0.589, "r": -10 }, | |||
{ "label": "k09", "x": 9.435, "y": 0.106, "r": -10 }, | |||
{ "label": "k10", "x": 10.463, "y": 0.191, "r": -10 }, | |||
{ "label": "k11", "x": 11.472, "y": 0.173, "r": -10 }, | |||
{ "label": "k12", "x": 12.454, "y": 0.0, "r": -10 }, | |||
{ "label": "k13", "x": 0.52, "y": 0.982, "r": 10 }, | |||
{ "label": "k14", "x": 1.502, "y": 1.155, "r": 10 }, | |||
{ "label": "k15", "x": 2.511, "y": 1.174, "r": 10 }, | |||
{ "label": "k16", "x": 3.539, "y": 1.088, "r": 10 }, | |||
{ "label": "k17", "x": 4.467, "y": 1.572, "r": 10 }, | |||
{ "label": "k18", "x": 5.403, "y": 2.003, "r": 10 }, | |||
{ "label": "k19", "x": 6.574, "y": 2.559, "r": 0 }, | |||
{ "label": "k20", "x": 7.744, "y": 2.003, "r": -10 }, | |||
{ "label": "k21", "x": 8.681, "y": 1.572, "r": -10 }, | |||
{ "label": "k22", "x": 9.608, "y": 1.088, "r": -10 }, | |||
{ "label": "k23", "x": 10.636, "y": 1.174, "r": -10 }, | |||
{ "label": "k24", "x": 11.645, "y": 1.155, "r": -10 }, | |||
{ "label": "k25", "x": 12.628, "y": 0.982, "r": -10 }, | |||
{ "label": "k26", "x": 0.346, "y": 1.964, "r": 10 }, | |||
{ "label": "k27", "x": 1.329, "y": 2.138, "r": 10 }, | |||
{ "label": "k28", "x": 2.338, "y": 2.156, "r": 10 }, | |||
{ "label": "k29", "x": 3.366, "y": 2.07, "r": 10 }, | |||
{ "label": "k30", "x": 4.294, "y": 2.554, "r": 10 }, | |||
{ "label": "k31", "x": 5.23, "y": 2.986, "r": 10 }, | |||
{ "label": "k32", "x": 6.574, "y": 3.557, "r": 0 }, | |||
{ "label": "k33", "x": 7.917, "y": 2.986, "r": -10 }, | |||
{ "label": "k34", "x": 8.854, "y": 2.554, "r": -10 }, | |||
{ "label": "k35", "x": 9.781, "y": 2.07, "r": -10 }, | |||
{ "label": "k36", "x": 10.809, "y": 2.156, "r": -10 }, | |||
{ "label": "k37", "x": 11.819, "y": 2.138, "r": -10 }, | |||
{ "label": "k38", "x": 12.801, "y": 1.964, "r": -10 }, | |||
{ "label": "k39", "x": 0.173, "y": 2.947, "r": 10 }, | |||
{ "label": "k40", "x": 1.155, "y": 3.12, "r": 10 }, | |||
{ "label": "k41", "x": 2.165, "y": 3.138, "r": 10 }, | |||
{ "label": "k42", "x": 3.193, "y": 3.053, "r": 10 }, | |||
{ "label": "k43", "x": 4.12, "y": 3.536, "r": 10 }, | |||
{ "label": "k44", "x": 5.057, "y": 3.968, "r": 10 }, | |||
{ "label": "k45", "x": 6.075, "y": 4.554, "r": 0 }, | |||
{ "label": "k46", "x": 7.072, "y": 4.554, "r": 0 }, | |||
{ "label": "k47", "x": 8.09, "y": 3.968, "r": -10 }, | |||
{ "label": "k48", "x": 9.027, "y": 3.536, "r": -10 }, | |||
{ "label": "k49", "x": 9.954, "y": 3.053, "r": -10 }, | |||
{ "label": "k50", "x": 10.982, "y": 3.138, "r": -10 }, | |||
{ "label": "k51", "x": 11.992, "y": 3.12, "r": -10 }, | |||
{ "label": "k52", "x": 12.974, "y": 2.947, "r": -10 }, | |||
{ "label": "k53", "x": 0.0, "y": 3.929, "r": 10 }, | |||
{ "label": "k54", "x": 0.982, "y": 4.102, "r": 10 }, | |||
{ "label": "k55", "x": 1.992, "y": 4.12, "r": 10 }, | |||
{ "label": "k56", "x": 3.02, "y": 4.035, "r": 10 }, | |||
{ "label": "k57", "x": 3.947, "y": 4.518, "r": 10 }, | |||
{ "label": "k58", "x": 4.994, "y": 5.235, "r": 40 }, | |||
{ "label": "k59", "x": 5.753, "y": 6.064, "r": 55 }, | |||
{ "label": "k60", "x": 7.395, "y": 6.064, "r": -55 }, | |||
{ "label": "k61", "x": 8.154, "y": 5.235, "r": 40 }, | |||
{ "label": "k62", "x": 9.2, "y": 4.518, "r": -10 }, | |||
{ "label": "k63", "x": 10.128, "y": 4.035, "r": -10 }, | |||
{ "label": "k64", "x": 11.155, "y": 4.12, "r": -10 }, | |||
{ "label": "k65", "x": 12.165, "y": 4.102, "r": -10 }, | |||
{ "label": "k66", "x": 13.147, "y": 3.929, "r": -10 } | |||
] | |||
} | |||
} | |||
} |
@ -0,0 +1 @@ | |||
# CozyKeys Speedo v2 Default Keymap |
@ -0,0 +1,22 @@ | |||
# MCU name | |||
MCU = atmega32u4 | |||
# Bootloader selection | |||
BOOTLOADER = halfkay | |||
# Build Options | |||
# change yes to no to disable | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | |||
MOUSEKEY_ENABLE = yes # Mouse keys | |||
EXTRAKEY_ENABLE = yes # Audio control and System control | |||
CONSOLE_ENABLE = no # Console for debug | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
NKRO_ENABLE = no # USB Nkey Rollover | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth | |||
AUDIO_ENABLE = no # Audio output |
@ -0,0 +1,17 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include "speedo_v2.h" |
@ -0,0 +1,36 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#include "quantum.h" | |||
#define ___ KC_NO | |||
#define LAYOUT( \ | |||
k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \ | |||
k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \ | |||
k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, \ | |||
k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \ | |||
k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \ | |||
) \ | |||
{ \ | |||
{ k01, k01, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \ | |||
{ k13, k15, k15, k16, k17, k18, k19, ___, k20, k21, k22, k23, k24, k25 }, \ | |||
{ k26, k28, k28, k29, k30, k31, ___, k32, k33, k34, k35, k36, k37, k38 }, \ | |||
{ k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52 }, \ | |||
{ k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \ | |||
} |
@ -0,0 +1,58 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#include "config_common.h" | |||
// USB Device descriptor parameter | |||
#define VENDOR_ID 0xFEED | |||
#define PRODUCT_ID 0x1192 | |||
#define DEVICE_VER 0x0003 | |||
#define MANUFACTURER CozyKeys | |||
#define PRODUCT Speedo | |||
// Key matrix size | |||
#define MATRIX_ROWS 5 | |||
#define MATRIX_COLS 14 | |||
// Keyboard Matrix Assignments | |||
#define MATRIX_ROW_PINS { F0, F1, C7, D5, B7 } | |||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B6, B2, E6, D7, C6, D4, D0, D1 } | |||
#define UNUSED_PINS { D2, D3, B0, B4 } | |||
#define DIODE_DIRECTION COL2ROW | |||
#ifdef RGBLIGHT_ENABLE | |||
#define RGB_DI_PIN B5 | |||
#define RGBLED_NUM 12 | |||
#define RGBLIGHT_HUE_STEP 8 | |||
#define RGBLIGHT_SAT_STEP 8 | |||
#define RGBLIGHT_VAL_STEP 8 | |||
#define RGBLIGHT_LIMIT_VAL 255 | |||
#define RGBLIGHT_SLEEP | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLIGHT_BREATHE_TABLE_SIZE 256 | |||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 | |||
#define RGBLIGHT_EFFECT_BREATHE_MAX 255 | |||
#endif | |||
// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed | |||
#define DEBOUNCE 5 | |||
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap | |||
#define LOCKING_SUPPORT_ENABLE | |||
// Locking resynchronize hack | |||
#define LOCKING_RESYNC_ENABLE |
@ -0,0 +1,79 @@ | |||
{ | |||
"keyboard_name": "Speedo", | |||
"url": "https://github.com/cozykeys/speedo", | |||
"maintainer": "pcewing", | |||
"width": 14, | |||
"height": 5, | |||
"layouts": { | |||
"LAYOUT": { | |||
"layout": [ | |||
{ "label": "k01", "x": 0.695, "y": 0, "r": 10 }, | |||
{ "label": "k02", "x": 1.679, "y": 0.174, "r": 10 }, | |||
{ "label": "k03", "x": 2.692, "y": 0.192, "r": 10 }, | |||
{ "label": "k04", "x": 3.722, "y": 0.107, "r": 10 }, | |||
{ "label": "k05", "x": 4.652, "y": 0.591, "r": 10 }, | |||
{ "label": "k06", "x": 5.591, "y": 1.023, "r": 10 }, | |||
{ "label": "k07", "x": 9.457, "y": 1.023, "r": -10 }, | |||
{ "label": "k08", "x": 10.396, "y": 0.591, "r": -10 }, | |||
{ "label": "k09", "x": 11.326, "y": 0.107, "r": -10 }, | |||
{ "label": "k10", "x": 12.356, "y": 0.192, "r": -10 }, | |||
{ "label": "k11", "x": 13.369, "y": 0.174, "r": -10 }, | |||
{ "label": "k12", "x": 14.353, "y": 0, "r": -10 }, | |||
{ "label": "k13", "x": 0.521, "y": 0.985, "r": 10 }, | |||
{ "label": "k14", "x": 1.506, "y": 1.158, "r": 10 }, | |||
{ "label": "k15", "x": 2.518, "y": 1.177, "r": 10 }, | |||
{ "label": "k16", "x": 3.548, "y": 1.092, "r": 10 }, | |||
{ "label": "k17", "x": 4.478, "y": 1.576, "r": 10 }, | |||
{ "label": "k18", "x": 5.418, "y": 2.008, "r": 10 }, | |||
{ "label": "k19", "x": 7.524, "y": 3.305, "r": 0 }, | |||
{ "label": "k20", "x": 9.63, "y": 2.008, "r": -10 }, | |||
{ "label": "k21", "x": 10.57, "y": 1.576, "r": -10 }, | |||
{ "label": "k22", "x": 11.5, "y": 1.092, "r": -10 }, | |||
{ "label": "k23", "x": 12.53, "y": 1.177, "r": -10 }, | |||
{ "label": "k24", "x": 13.542, "y": 1.158, "r": -10 }, | |||
{ "label": "k25", "x": 14.527, "y": 0.985, "r": -10 }, | |||
{ "label": "k26", "x": 0.347, "y": 1.97, "r": 10 }, | |||
{ "label": "k27", "x": 1.332, "y": 2.143, "r": 10 }, | |||
{ "label": "k28", "x": 2.344, "y": 2.162, "r": 10 }, | |||
{ "label": "k29", "x": 3.375, "y": 2.077, "r": 10 }, | |||
{ "label": "k30", "x": 4.305, "y": 2.561, "r": 10 }, | |||
{ "label": "k31", "x": 5.244, "y": 2.993, "r": 10 }, | |||
{ "label": "k32", "x": 6.524, "y": 3.805, "r": 0 }, | |||
{ "label": "k33", "x": 8.524, "y": 3.805, "r": 0 }, | |||
{ "label": "k34", "x": 9.804, "y": 2.993, "r": -10 }, | |||
{ "label": "k35", "x": 10.743, "y": 2.561, "r": -10 }, | |||
{ "label": "k36", "x": 11.673, "y": 2.077, "r": -10 }, | |||
{ "label": "k37", "x": 12.704, "y": 2.162, "r": -10 }, | |||
{ "label": "k38", "x": 13.716, "y": 2.143, "r": -10 }, | |||
{ "label": "k39", "x": 14.701, "y": 1.97, "r": -10 }, | |||
{ "label": "k40", "x": 0.174, "y": 2.954, "r": 10 }, | |||
{ "label": "k41", "x": 1.158, "y": 3.128, "r": 10 }, | |||
{ "label": "k42", "x": 2.171, "y": 3.147, "r": 10 }, | |||
{ "label": "k43", "x": 3.201, "y": 3.062, "r": 10 }, | |||
{ "label": "k44", "x": 4.131, "y": 3.546, "r": 10 }, | |||
{ "label": "k45", "x": 5.07, "y": 3.978, "r": 10 }, | |||
{ "label": "k46", "x": 7.524, "y": 4.305, "r": 0 }, | |||
{ "label": "k47", "x": 9.978, "y": 3.978, "r": -10 }, | |||
{ "label": "k48", "x": 10.917, "y": 3.546, "r": -10 }, | |||
{ "label": "k49", "x": 11.847, "y": 3.062, "r": -10 }, | |||
{ "label": "k50", "x": 12.877, "y": 3.147, "r": -10 }, | |||
{ "label": "k51", "x": 13.89, "y": 3.128, "r": -10 }, | |||
{ "label": "k52", "x": 14.874, "y": 2.954, "r": -10 }, | |||
{ "label": "k53", "x": 0, "y": 3.939, "r": 10 }, | |||
{ "label": "k54", "x": 0.985, "y": 4.113, "r": 10 }, | |||
{ "label": "k55", "x": 1.997, "y": 4.131, "r": 10 }, | |||
{ "label": "k56", "x": 3.027, "y": 4.047, "r": 10 }, | |||
{ "label": "k57", "x": 3.957, "y": 4.53, "r": 10 }, | |||
{ "label": "k58", "x": 4.897, "y": 4.963, "r": 10 }, | |||
{ "label": "k59", "x": 5.881, "y": 5.136, "r": 10 }, | |||
{ "label": "k60", "x": 9.166, "y": 5.136, "r": -10 }, | |||
{ "label": "k61", "x": 10.151, "y": 4.963, "r": -10 }, | |||
{ "label": "k62", "x": 11.09, "y": 4.53, "r": -10 }, | |||
{ "label": "k63", "x": 12.021, "y": 4.047, "r": -10 }, | |||
{ "label": "k64", "x": 13.051, "y": 4.131, "r": -10 }, | |||
{ "label": "k65", "x": 14.063, "y": 4.113, "r": -10 }, | |||
{ "label": "k66", "x": 15.048, "y": 3.939, "r": -10 } | |||
] | |||
} | |||
} | |||
} |
@ -0,0 +1,49 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include QMK_KEYBOARD_H | |||
enum { | |||
LAYER_DEFAULT, | |||
LAYER_FN, | |||
__LAYER_COUNT, | |||
}; | |||
#define FN MO(LAYER_FN) | |||
#define RGB_N RGB_MOD // Rotate to next RGB mode | |||
#define RGB_P RGB_RMOD // Rotate to next RGB mode | |||
const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = { | |||
[LAYER_DEFAULT] = LAYOUT( | |||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, | |||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, | |||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_RGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | |||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | |||
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL | |||
), | |||
[LAYER_FN] = LAYOUT( | |||
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, RESET, | |||
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______, | |||
KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, | |||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, | |||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | |||
), | |||
}; |
@ -0,0 +1,10 @@ | |||
# CozyKeys Speedo v3 Default Keymap | |||
## Default Layer | |||
![Default Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_default.svg) | |||
## Function Layer | |||
![Function Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_fn.svg) | |||
@ -0,0 +1,22 @@ | |||
# MCU name | |||
MCU = atmega32u4 | |||
# Bootloader selection | |||
BOOTLOADER = atmel-dfu | |||
# Build Options | |||
# change yes to no to disable | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | |||
MOUSEKEY_ENABLE = yes # Mouse keys | |||
EXTRAKEY_ENABLE = yes # Audio control and System control | |||
CONSOLE_ENABLE = no # Console for debug | |||
COMMAND_ENABLE = no # Commands for debug and configuration | |||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
NKRO_ENABLE = no # USB Nkey Rollover | |||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth | |||
AUDIO_ENABLE = no # Audio output |
@ -0,0 +1,17 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#include "speedo_v3.h" |
@ -0,0 +1,36 @@ | |||
/* | |||
Copyright 2020 Paul Ewing | |||
This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 2 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
#pragma once | |||
#include "quantum.h" | |||
#define ___ KC_NO | |||
#define LAYOUT( \ | |||
k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \ | |||
k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \ | |||
k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \ | |||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \ | |||
k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \ | |||
) \ | |||
{ \ | |||
{ k01, k02, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \ | |||
{ k13, k14, k15, k16, k17, k18, ___, ___, k20, k21, k22, k23, k24, k25 }, \ | |||
{ k26, k27, k28, k29, k30, k31, k32, k19, k34, k35, k36, k37, k38, k39 }, \ | |||
{ k40, k41, k42, k43, k44, k45, k46, k33, k47, k48, k49, k50, k51, k52 }, \ | |||
{ k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \ | |||
} |
@ -1,5 +1,5 @@ | |||
RGBLIGHT_ENABLE = no | |||
RGB_MATRIX_ENABLE = WS2812 | |||
RGB_MATRIX_ENABLE = yes | |||
MOUSEKEY_ENABLE = no | |||
NKRO_ENABLE = yes | |||
OLED_DRIVER_ENABLE = yes | |||