Skip to content

Commit 0162069

Browse files
committed
Initial code
1 parent f1f3888 commit 0162069

File tree

171 files changed

+121255
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+121255
-0
lines changed
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
/**
2+
* @file Platform_Configuration_NucleoL0xx.h
3+
* @author AMS RF application team
4+
* @version V1.0.0
5+
* @date April, 2020
6+
* @brief This file contains definitions for STM32L0xx_NUCLEO Eval Platform
7+
*
8+
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9+
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
10+
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
11+
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
12+
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
13+
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14+
*
15+
* THIS SOURCE CODE IS PROTECTED BY A LICENSE.
16+
* FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
17+
* IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
18+
*
19+
* <h2><center>&copy; COPYRIGHT 2019 STMicroelectronics</center></h2>
20+
*/
21+
22+
/* Define to prevent recursive inclusion -------------------------------------*/
23+
#ifndef __PLATFORM_CONFIGURATION_H
24+
#define __PLATFORM_CONFIGURATION_H
25+
26+
/* Includes ------------------------------------------------------------------*/
27+
#include "stm32l0xx_hal.h"
28+
29+
#if !defined (USE_STM32L0xx_NUCLEO)
30+
#define USE_STM32L0xx_NUCLEO
31+
#endif
32+
33+
#ifdef __cplusplus
34+
extern "C" {
35+
#endif
36+
37+
/**
38+
* @brief MCU UID definition
39+
*/
40+
#define UID_ADDRESS ((uint32_t)0x1FF80050U)
41+
#define UID_LEN 12
42+
43+
/**
44+
* @brief MCU XO frequency definition
45+
*/
46+
#define CLOCK_FREQUENCY (SystemCoreClock/1000)
47+
#define CLOCK_FREQUENCY_MHZ (CLOCK_FREQUENCY/1000)
48+
49+
/*****************************************************************************/
50+
/* BUTTON(s) SECTION */
51+
/*****************************************************************************/
52+
/**
53+
* @brief Buttons definitions
54+
*/
55+
#define PUSH_BUTTON1_PIN GPIO_PIN_13
56+
#define PUSH_BUTTON1_GPIO_PORT GPIOC
57+
#define PUSH_BUTTON1_GPIO_CLK() __GPIOC_CLK_ENABLE()
58+
#define PUSH_BUTTON1_EXTI_IRQn EXTI4_15_IRQn
59+
#define PUSH_BUTTON1_EXTI_IRQ_HANDLER EXTI4_15_IRQHandler
60+
#define PUSH_BUTTON1_KEY BUTTON_1
61+
#define PUSH_BUTTON1_IRQ_PREEMPTION_PRIORITY 0
62+
#define PUSH_BUTTON1_IRQ_SUB_PRIORITY 0
63+
64+
65+
/*****************************************************************************/
66+
/* UART SECTION */
67+
/*****************************************************************************/
68+
/**
69+
* @brief UART definitions
70+
*/
71+
#define VCOM_YES 0
72+
#define VCOM_NO 1
73+
#define VCOM_PRESENT VCOM_YES
74+
#define SDK_EVAL_UART_BAUDRATE 115200
75+
#define SDK_EVAL_UART_TX_PIN GPIO_PIN_3
76+
#define SDK_EVAL_UART_RX_PIN GPIO_PIN_2
77+
#define NUCLEO_UARTx_RX_QUEUE_SIZE (400)
78+
#define NUCLEO_UARTx_TX_QUEUE_SIZE (400)
79+
80+
#define NUCLEO_UARTx USART2
81+
#define NUCLEO_UARTx_AF GPIO_AF4_USART2
82+
#define NUCLEO_UARTx_PORT GPIOA
83+
#define NUCLEO_UARTx_RX_PIN GPIO_PIN_2
84+
#define NUCLEO_UARTx_TX_PIN GPIO_PIN_3
85+
86+
#define NUCLEO_UARTx_GPIO_CLK_ENABLE() __GPIOA_CLK_ENABLE()
87+
#define NUCLEO_UARTx_GPIO_CLK_DISABLE() __GPIOA_CLK_DISABLE()
88+
#define NUCLEO_UARTx_CLK_ENABLE() __USART2_CLK_ENABLE()
89+
#define NUCLEO_UARTx_IRQHandler USART2_IRQHandler
90+
#define NUCLEO_UARTx_IRQn USART2_IRQn
91+
#define NUCLEO_UARTx_PRIORITY 2
92+
93+
#define NUCLEO_UARTx_TX_DMA_CHANNEL_IRQHandler DMA1_Channel4_5_6_7_IRQHandler
94+
#define NUCLEO_UARTx_TX_DMA_CHANNEL_IRQn DMA1_Channel4_5_6_7_IRQn
95+
#define NUCLEO_UARTx_TX_DMA_CHANNEL DMA1_Channel7
96+
#define NUCLEO_UARTx_TX_DMA_REQUEST DMA_REQUEST_4
97+
98+
#define NUCLEO_UARTx_RX_DMA_CHANNEL_IRQHandler DMA1_Channel4_5_6_7_IRQHandler
99+
#define NUCLEO_UARTx_RX_DMA_CHANNEL_IRQn DMA1_Channel4_5_6_7_IRQn
100+
#define NUCLEO_UARTx_RX_DMA_CHANNEL DMA1_Channel6
101+
#define NUCLEO_UARTx_RX_DMA_REQUEST DMA_REQUEST_4
102+
103+
#define NUCLEO_UARTx_DMA_CLK_ENABLE() __DMA1_CLK_ENABLE()
104+
105+
106+
/*****************************************************************************/
107+
/* TIM and CK SECTION */
108+
/*****************************************************************************/
109+
110+
/* Remapping for STM32L0x3 */
111+
#define NUCLEO_TIMx_PRIORITY 1
112+
#define TIM1 TIM21
113+
#define TIM1_IRQn TIM21_IRQn
114+
#define __HAL_RCC_TIM1_CLK_ENABLE() __TIM21_CLK_ENABLE()
115+
116+
#define TIM3 TIM2
117+
#define TIM3_IRQn TIM2_IRQn
118+
#define __HAL_RCC_TIM3_CLK_ENABLE() __TIM2_CLK_ENABLE()
119+
120+
121+
#define TIM4 TIM21
122+
#define TIM4_IRQn TIM1_IRQn
123+
#define __HAL_RCC_TIM4_CLK_ENABLE() __TIM21_CLK_ENABLE()
124+
125+
#define TIM5 TIM22
126+
#define TIM5_IRQn TIM22_IRQn
127+
#define __HAL_RCC_TIM5_CLK_ENABLE() __TIM22_CLK_ENABLE()
128+
129+
#define TIM7 TIM6
130+
#define TIM7_IRQn TIM6_IRQn
131+
#define __HAL_RCC_TIM7_CLK_ENABLE() __TIM6_CLK_ENABLE()
132+
133+
#define TIM6_IRQHandler TIM6_DAC_IRQHandler
134+
135+
#define STM32_RTC_IRQHandler RTC_IRQHandler
136+
#define STM32_RTC_IRQn RTC_IRQn
137+
138+
#define STM32_GPIO_CLK_DISABLE() {__GPIOB_CLK_DISABLE();__GPIOC_CLK_DISABLE();__GPIOD_CLK_DISABLE();__GPIOA_CLK_DISABLE();}
139+
#define STM32_GPIO_CLK_ENABLE() {__GPIOA_CLK_ENABLE();__GPIOB_CLK_ENABLE();__GPIOC_CLK_ENABLE();__GPIOD_CLK_ENABLE();}
140+
141+
142+
/*****************************************************************************/
143+
/* LED SECTION */
144+
/*****************************************************************************/
145+
/**
146+
* @brief LEDs definitions
147+
*/
148+
#define LEDn 1
149+
#define SDK_EVAL_LED1_PIN GPIO_PIN_5
150+
#define SDK_EVAL_LED1_PORT GPIOA
151+
#define SDK_EVAL_LED1_CLK __GPIOA_CLK_ENABLE
152+
153+
#ifdef __cplusplus
154+
}
155+
#endif
156+
157+
#endif /* __PLATFORM_CONFIGURATION_H */
158+
159+
/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/

Drivers/BSP/inc/SDK_EVAL_Button.h

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
/**
2+
* @file SDK_EVAL_Button.h
3+
* @author AMS VMA RF application team
4+
* @version V1.1.0
5+
* @date September 29, 2015
6+
* @brief This file provides all the low level API to manage buttons for eval board.
7+
* @details
8+
*
9+
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
10+
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
11+
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
12+
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
13+
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
14+
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
15+
*
16+
* THIS SOURCE CODE IS PROTECTED BY A LICENSE.
17+
* FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
18+
* IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
19+
*
20+
* <h2><center>&copy; COPYRIGHT 2015 STMicroelectronics</center></h2>
21+
*/
22+
23+
/* Define to prevent recursive inclusion -------------------------------------*/
24+
#ifndef __SDK_EVAL_BUTTON_H
25+
#define __SDK_EVAL_BUTTON_H
26+
27+
/* Includes ------------------------------------------------------------------*/
28+
#include "SDK_EVAL_Config.h"
29+
30+
#ifdef __cplusplus
31+
extern "C" {
32+
#endif
33+
34+
/** @addtogroup SDK_EVAL_STM32 SDK EVAL STM32
35+
* @{
36+
*/
37+
38+
/** @addtogroup SDK_EVAL_Button SDK EVAL Button
39+
* @{
40+
*/
41+
42+
/** @addtogroup SDK_EVAL_Button_Exported_Types SDK EVAL Button Exported Types
43+
* @{
44+
*/
45+
46+
/**
47+
* @brief Enumeration of SDK EVAL Buttons
48+
* There is only one user configurable button on Nucleo boards
49+
* but here two buttons are configured the same in order to keep
50+
* compatibility with BlueNRG-1/2 evaluation boards
51+
*
52+
*/
53+
typedef enum {
54+
BUTTON_1 = 0,
55+
BUTTON_2 = BUTTON_1
56+
} SdkEvalButton;
57+
58+
/**
59+
* @brief Enumeration of SDK EVAL Buttons IRQ mode
60+
*/
61+
typedef enum {
62+
BUTTON_MODE_GPIO = 0,
63+
BUTTON_MODE_EXTI = 1
64+
} SdkEvalButtonIrq;
65+
66+
/**
67+
* @brief Joystick for SDK EVAL enumeration
68+
*/
69+
typedef enum
70+
{
71+
JOY_NONE = 0,
72+
JOY_SEL = 1,
73+
JOY_DOWN = 2,
74+
JOY_LEFT = 3,
75+
JOY_RIGHT = 4,
76+
JOY_UP = 5
77+
78+
} SdkEvalJoyState;
79+
80+
/**
81+
* @}
82+
*/
83+
84+
/** @defgroup SDK_EVAL_Button_Exported_Constants SDK EVAL Button Exported Constants
85+
* @{
86+
*/
87+
#define EVAL_BOARD_BUTTONS (1)
88+
89+
/**
90+
* @}
91+
*/
92+
93+
/** @defgroup SDK_EVAL_Button_Exported_Macros SDK EVAL Button Exported Macros
94+
* @{
95+
*/
96+
97+
/**
98+
* @}
99+
*/
100+
101+
/** @defgroup SDK_EVAL_Button_Exported_Functions SDK EVAL Button Exported Functions
102+
* @{
103+
*/
104+
uint32_t Get_ButtonGpioPin(SdkEvalButton xButton);
105+
106+
/**
107+
* @brief Configures Buttons.
108+
* @param xButton Specifies the Button to be configured, @ref SdkEvalButton
109+
* This parameter can be one of following parameters:
110+
* @arg BUTTON_1: Push1 button
111+
* @arg BUTTON_2: Push2 button
112+
* but in Nucleo boards is always set to BUTTON_1
113+
* @retval None.
114+
*/
115+
void SdkEvalPushButtonInit(SdkEvalButton xButton);
116+
117+
/**
118+
* @brief Configures buttons IRQ mode.
119+
* @param xButton Specifies the Button to be configured, @ref SdkEvalButton
120+
* This parameter can be one of following parameters:
121+
* @arg BUTTON_1: Push1 button
122+
* @param SdkEvalButtonIrq Specifies the IRQ mode to be configured,
123+
* This parameter can be one of following parameters:
124+
* @arg IRQ_ON_RISING_EDGE: IRQ on rising edge
125+
* @arg IRQ_ON_FALLING_EDGE: IRQ on falling edge
126+
* @arg IRQ_ON_BOTH_EDGE: IRQ on both edges
127+
* @retval None.
128+
*/
129+
void SdkEvalPushButtonIrq(SdkEvalButton xButton, SdkEvalButtonIrq xButtonIrq);
130+
131+
/**
132+
* @brief Returns the selected Button state.
133+
* @param xButton Specifies the Button to be configured, @ref SdkEvalButton
134+
* This parameter can be one of following parameters:
135+
* @arg BUTTON_1: Push1 button
136+
* @retval FlagStatus: error status of the button @ref FlagStatus
137+
* This parameter can be: SET or RESET.
138+
*/
139+
FlagStatus SdkEvalPushButtonGetState(SdkEvalButton xButton);
140+
141+
/**
142+
* @brief Get the pending bit state.
143+
* @param xButton Specifies the Button to be configured, @ref SdkEvalButton
144+
* This parameter can be one of following parameters:
145+
* @arg BUTTON_1: Push1 button
146+
* @retval FlagStatus: error status of the button @ref FlagStatus
147+
* This parameter can be: SET or RESET.
148+
*/
149+
FlagStatus SdkEvalPushButtonGetITPendingBit(SdkEvalButton xButton);
150+
151+
/**
152+
* @brief Clear the pending bit state.
153+
* @param xButton Specifies the Button to be configured, @ref SdkEvalButton
154+
* This parameter can be one of following parameters:
155+
* @arg BUTTON_1: Push1 button
156+
* @arg BUTTON_2: Push2 button
157+
* @retval None
158+
*/
159+
void SdkEvalPushButtonClearITPendingBit(SdkEvalButton xButton);
160+
161+
/**
162+
* @}
163+
*/
164+
165+
/**
166+
* @}
167+
*/
168+
169+
/**
170+
* @}
171+
*/
172+
173+
#ifdef __cplusplus
174+
}
175+
#endif
176+
177+
#endif /* __SDK_EVAL_BUTTON_H */
178+
/******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/

0 commit comments

Comments
 (0)