STSW-STLKT01: Drivers/BSP/SensorTile/SensorTile_BlueNRG.h Source File

STSW-STLKT01

STSW-STLKT01
SensorTile_BlueNRG.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32_BLUENRG_BLE_H
40 #define __STM32_BLUENRG_BLE_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47  #include "stm32l4xx_hal.h"
48  #define SYSCLK_FREQ 80000000
49 
66 // SPI Instance
67 #define BNRG_SPI_INSTANCE SPI1
68 #define BNRG_SPI_CLK_ENABLE() __SPI1_CLK_ENABLE()
69 
70 // SPI Configuration
71 #define BNRG_SPI_MODE SPI_MODE_MASTER
72 #define BNRG_SPI_DIRECTION SPI_DIRECTION_2LINES
73 #define BNRG_SPI_DATASIZE SPI_DATASIZE_8BIT
74 #define BNRG_SPI_CLKPOLARITY SPI_POLARITY_LOW
75 #define BNRG_SPI_CLKPHASE SPI_PHASE_1EDGE
76 #define BNRG_SPI_NSS SPI_NSS_SOFT
77 #define BNRG_SPI_FIRSTBIT SPI_FIRSTBIT_MSB
78 #define BNRG_SPI_TIMODE SPI_TIMODE_DISABLED
79 #define BNRG_SPI_CRCPOLYNOMIAL 7
80 #define BNRG_SPI_BAUDRATEPRESCALER SPI_BAUDRATEPRESCALER_16
81 #define BNRG_SPI_CRCCALCULATION SPI_CRCCALCULATION_DISABLED
82 
83 // SPI Reset Pin: PH.0
84 #define BNRG_SPI_RESET_PIN GPIO_PIN_0
85 #define BNRG_SPI_RESET_MODE GPIO_MODE_OUTPUT_PP
86 #define BNRG_SPI_RESET_PULL GPIO_PULLUP
87 #define BNRG_SPI_RESET_SPEED GPIO_SPEED_LOW
88 #define BNRG_SPI_RESET_ALTERNATE 0
89 #define BNRG_SPI_RESET_PORT GPIOH
90 #define BNRG_SPI_RESET_CLK_ENABLE() __GPIOH_CLK_ENABLE()
91 
92 // SCLK: PA.5
93 #define BNRG_SPI_SCLK_PIN GPIO_PIN_5
94 #define BNRG_SPI_SCLK_MODE GPIO_MODE_AF_PP
95 #define BNRG_SPI_SCLK_PULL GPIO_PULLDOWN
96 #define BNRG_SPI_SCLK_SPEED GPIO_SPEED_HIGH
97 #define BNRG_SPI_SCLK_ALTERNATE GPIO_AF5_SPI1
98 #define BNRG_SPI_SCLK_PORT GPIOA
99 #define BNRG_SPI_SCLK_CLK_ENABLE() __GPIOA_CLK_ENABLE()
100 
101 // MISO (Master Input Slave Output): PA.6
102 #define BNRG_SPI_MISO_PIN GPIO_PIN_6
103 #define BNRG_SPI_MISO_MODE GPIO_MODE_AF_PP
104 #define BNRG_SPI_MISO_PULL GPIO_NOPULL
105 #define BNRG_SPI_MISO_SPEED GPIO_SPEED_HIGH
106 #define BNRG_SPI_MISO_ALTERNATE GPIO_AF5_SPI1
107 #define BNRG_SPI_MISO_PORT GPIOA
108 #define BNRG_SPI_MISO_CLK_ENABLE() __GPIOA_CLK_ENABLE()
109 
110 // MOSI (Master Output Slave Input): PA.7
111 #define BNRG_SPI_MOSI_PIN GPIO_PIN_7
112 #define BNRG_SPI_MOSI_MODE GPIO_MODE_AF_PP
113 #define BNRG_SPI_MOSI_PULL GPIO_NOPULL
114 #define BNRG_SPI_MOSI_SPEED GPIO_SPEED_HIGH
115 #define BNRG_SPI_MOSI_ALTERNATE GPIO_AF5_SPI1
116 #define BNRG_SPI_MOSI_PORT GPIOA
117 #define BNRG_SPI_MOSI_CLK_ENABLE() __GPIOA_CLK_ENABLE()
118 
119 // NSS/CSN/CS: PB.2
120 #define BNRG_SPI_CS_PIN GPIO_PIN_2
121 #define BNRG_SPI_CS_MODE GPIO_MODE_OUTPUT_PP
122 #define BNRG_SPI_CS_PULL GPIO_PULLUP
123 #define BNRG_SPI_CS_SPEED GPIO_SPEED_HIGH
124 #define BNRG_SPI_CS_ALTERNATE 0
125 #define BNRG_SPI_CS_PORT GPIOB
126 #define BNRG_SPI_CS_CLK_ENABLE() __GPIOB_CLK_ENABLE()
127 
128 // IRQ: PC.5
129 #define BNRG_SPI_IRQ_PIN GPIO_PIN_5
130 #define BNRG_SPI_IRQ_MODE GPIO_MODE_IT_RISING
131 #define BNRG_SPI_IRQ_PULL GPIO_NOPULL
132 #define BNRG_SPI_IRQ_SPEED GPIO_SPEED_HIGH
133 #define BNRG_SPI_IRQ_ALTERNATE 0
134 #define BNRG_SPI_IRQ_PORT GPIOC
135 #define BNRG_SPI_IRQ_CLK_ENABLE() __GPIOC_CLK_ENABLE()
136 
137 // EXTI External Interrupt for SPI
138 // NOTE: if you change the IRQ pin remember to implement a corresponding handler
139 // function like EXTI0_IRQHandler() in the user project
140 #define BNRG_SPI_EXTI_IRQn EXTI9_5_IRQn
141 #define BNRG_SPI_EXTI_IRQHandler EXTI9_5_IRQHandler
142 #define BNRG_SPI_EXTI_PIN BNRG_SPI_IRQ_PIN
143 #define BNRG_SPI_EXTI_PORT BNRG_SPI_IRQ_PORT
144 //#define RTC_WAKEUP_IRQHandler RTC_WKUP_IRQHandler
145 
154 extern void Enable_SPI_IRQ(void);
155 extern void Disable_SPI_IRQ(void);
156 extern void Clear_SPI_IRQ(void);
157 extern void Clear_SPI_EXTI_Flag(void);
158 
159 // FIXME: add prototypes for BlueNRG here
160 extern void BNRG_SPI_Init(void);
161 extern void BlueNRG_RST(void);
162 extern uint8_t BlueNRG_DataPresent(void);
163 extern void BlueNRG_HW_Bootloader(void);
164 extern int32_t BlueNRG_SPI_Read_All(SPI_HandleTypeDef *hspi,
165  uint8_t *buffer,
166  uint8_t buff_size);
167 extern int32_t BlueNRG_SPI_Write(SPI_HandleTypeDef *hspi,
168  uint8_t* data1,
169  uint8_t* data2,
170  uint8_t Nb_bytes1,
171  uint8_t Nb_bytes2);
172 
173 extern void Hal_Write_Serial(const void* data1, const void* data2, int32_t n_bytes1,
174  int32_t n_bytes2);
175 
192 #ifdef __cplusplus
193 }
194 #endif
195 
196 #endif /* __STM32_BLUENRG_BLE_H */
197 
198 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
199 
void Disable_SPI_IRQ(void)
Disable SPI IRQ.
int32_t BlueNRG_SPI_Write(SPI_HandleTypeDef *hspi, uint8_t *data1, uint8_t *data2, uint8_t Nb_bytes1, uint8_t Nb_bytes2)
Writes data from local buffer to SPI.
void Clear_SPI_IRQ(void)
Clear Pending SPI IRQ.
void Clear_SPI_EXTI_Flag(void)
Clear EXTI (External Interrupt) line for SPI IRQ.
void Enable_SPI_IRQ(void)
Enable SPI IRQ.
uint8_t BlueNRG_DataPresent(void)
Reports if the BlueNRG has data for the host micro.
void BlueNRG_HW_Bootloader(void)
Activate internal bootloader using pin.
void BNRG_SPI_Init(void)
Initializes the SPI communication with the BlueNRG Expansion Board.
int32_t BlueNRG_SPI_Read_All(SPI_HandleTypeDef *hspi, uint8_t *buffer, uint8_t buff_size)
Reads from BlueNRG SPI buffer and store data into local buffer.
void Hal_Write_Serial(const void *data1, const void *data2, int32_t n_bytes1, int32_t n_bytes2)
Writes data to a serial interface.
void BlueNRG_RST(void)
Resets the BlueNRG.
Generated by   doxygen 1.8.13