STM32LIB
config.h
Go to the documentation of this file.
1 #pragma once
2 #ifndef CONFIG__STM32LIB_H_INCLUDED
3 #define CONFIG__STM32LIB_H_INCLUDED
4 
5 #include <stdint.h>
6 #include "Peripheral.h"
7 
8 //For the STM32F0
9 #ifdef STM32F0XX
10 
11 //#include "RegisterAccess/MCU/HPP/STM32F030.hpp"
12 
13 #include "stm32f0xx_conf.h"
14 #include <system_stm32f0xx.h>
15 #include "stm32f0xx.h"
16 
18 #include "MCU/F0/stm32f0xx_exti.h"
19 
20 
21 #endif /* STM32F0XX */
22 
23 
24 #define BIT_GET(p,m) ((p) & (m))
25 #define BIT_SET(p,m) ((p) |= (m))
26 #define BIT_CLEAR(p,m) ((p) &= ~(m))
27 #define BIT_TOGGLE(p,m) ((p) ^= (m))
28 //#define BIT_WRITE(c,p,m) (c ? bit_set(p,m) : bit_clear(p,m))
29 #define BIT_WRITE(p,m,v) ((p) = ((v << GET_OFFSET(m)) & m))
30 
32 #define BIT_MASK(len) ( BIT(len)-1 )
33 #define BF_MASK(start, len) ( BIT_MASK(len)<<(start) )
35 #define BF_PREP(x, start, len) ( ((x)&BIT_MASK(len)) << (start) )
37 #define BF_GET(y, start, len) ( ((y)>>(start)) & BIT_MASK(len) )
39 #define BF_SET(y, x, start, len) ( y= ((y) &~ BF_MASK(start, len)) | BF_PREP(x, start, len) )
41 
42 constexpr static const int Mod37BitPosition[] = // map a bit value mod 37 to its position
43 {
44  32, 0, 1, 26, 2, 23, 27, 0, 3, 16, 24, 30, 28, 11, 0, 13, 4,
45  7, 17, 0, 25, 22, 31, 15, 29, 10, 12, 6, 0, 21, 14, 9, 5,
46  20, 8, 19, 18
47 };
48 
49 constexpr unsigned long BIT(uint8_t bit){
50  return (unsigned long)0x00000001 << (bit);
51 }
52 
53 constexpr unsigned long GET_OFFSET(uint32_t mask){
54  return (Mod37BitPosition[(-mask & mask) % 37]+1);
55 }
56 
125  };
126 
127 enum ClockName {
128  HSI,
129  HSE,
131  PLL,
132  LSI,
133  LSE,
135 };
136 
137 
138 
139 #endif /* CONFIG__STM32LIB_H_INCLUDED */
140 
PERIPHERAL_TIMER8.
Definition: config.h:104
static constexpr const int Mod37BitPosition[]
Definition: config.h:42
Definition: config.h:131
Definition: config.h:128
PERIPHERAL_USART6.
Definition: config.h:123
PERIPHERAL_GPIOF.
Definition: config.h:76
PERIPHERAL_GPIOB.
Definition: config.h:72
FLASH Interface.
Definition: config.h:68
Definition: config.h:133
constexpr unsigned long GET_OFFSET(uint32_t mask)
Definition: config.h:53
constexpr unsigned long BIT(uint8_t bit)
Definition: config.h:49
ClockName
Definition: config.h:127
PERIPHERAL_USART3_FULL_REMAP.
Definition: config.h:120
SRAM INTERFACE.
Definition: config.h:95
PeripheralName
Definition: config.h:57
PERIPHERAL_MAC.
Definition: config.h:83
Windows WatchDog.
Definition: config.h:124
PERIPHERAL_DMA2.
Definition: config.h:67
Definition: config.h:132
PERIPHERAL_TIMER12.
Definition: config.h:108
PERIPHERAL_SDIO.
Definition: config.h:89
PERIPHERAL_TIMER3.
Definition: config.h:99
PERIPHERAL_FSMC.
Definition: config.h:69
PERIPHERAL_DAC1.
Definition: config.h:63
PERIPHERAL_USART1.
Definition: config.h:114
PERIPHERAL_I2S2.
Definition: config.h:81
PERIPHERAL_POWER.
Definition: config.h:87
PERIPHERAL_MAC_REMAP.
Definition: config.h:84
PERIPHERAL_GPIOC.
Definition: config.h:73
PERIPHERAL_TIMER5.
Definition: config.h:101
PERIPHERAL_ADC2.
Definition: config.h:59
PERIPHERAL_MCU_DEBUG.
Definition: config.h:65
PERIPHERAL_ADC1.
Definition: config.h:58
PERIPHERAL_FMC.
Definition: config.h:70
PERIPHERAL_TIMER16.
Definition: config.h:112
PERIPHERAL_DAC2.
Definition: config.h:64
PERIPHERAL_GPIOE.
Definition: config.h:75
internal OTG HS PHY
Definition: config.h:86
PERIPHERAL_SPI2.
Definition: config.h:92
PERIPHERAL_TIMER9.
Definition: config.h:105
PERIPHERAL_TIMER1.
Definition: config.h:97
PERIPHERAL_TIMER13.
Definition: config.h:109
PERIPHERAL_SPI1.
Definition: config.h:90
PERIPHERAL_RNG.
Definition: config.h:88
PERIPHERAL_I2S3.
Definition: config.h:82
PERIPHERAL_USART3.
Definition: config.h:118
PERIPHERAL_ADC3.
Definition: config.h:60
internal OTG FS PHY
Definition: config.h:85
PERIPHERAL_USART3_PARTIAL_REMAP.
Definition: config.h:119
PERIPHERAL_TIMER14.
Definition: config.h:110
PERIPHERAL_USART2_REMAP.
Definition: config.h:117
PERIPHERAL_UART5.
Definition: config.h:122
PERIPHERAL_TIMER4.
Definition: config.h:100
PERIPHERAL_I2C3.
Definition: config.h:80
PERIPHERAL_TIMER10.
Definition: config.h:106
PERIPHERAL_TIMER2.
Definition: config.h:98
PERIPHERAL_TIMER17.
Definition: config.h:113
PERIPHERAL_USART2.
Definition: config.h:116
PERIPHERAL_TIMER7.
Definition: config.h:103
PERIPHERAL_BACKUP.
Definition: config.h:61
PERIPHERAL_I2C2.
Definition: config.h:79
PERIPHERAL_USART1_REMAP.
Definition: config.h:115
PERIPHERAL_GPIOD.
Definition: config.h:74
Definition: config.h:130
This file contains all the functions prototypes for the EXTI firmware library.
PERIPHERAL_SPI3_REMAP.
Definition: config.h:94
PERIPHERAL_SYSCFG.
Definition: config.h:96
PERIPHERAL_UART4.
Definition: config.h:121
This file contains all the functions prototypes for the SYSCFG firmware library.
PERIPHERAL_TIMER15.
Definition: config.h:111
PERIPHERAL_DMA1.
Definition: config.h:66
PERIPHERAL_CRC.
Definition: config.h:62
Definition: config.h:134
PERIPHERAL_GPIOA.
Definition: config.h:71
PERIPHERAL_SPI3.
Definition: config.h:93
PERIPHERAL_HASH.
Definition: config.h:77
Definition: config.h:129
PERIPHERAL_SPI1_REMAP.
Definition: config.h:91
PERIPHERAL_TIMER6.
Definition: config.h:102
PERIPHERAL_TIMER11.
Definition: config.h:107
PERIPHERAL_I2C1.
Definition: config.h:78