First version of SX1280 class (SPI communication tested)
This commit is contained in:
@@ -96,8 +96,8 @@
|
|||||||
</folderInfo>
|
</folderInfo>
|
||||||
<sourceEntries>
|
<sourceEntries>
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
|
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
|
||||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
|
||||||
</sourceEntries>
|
</sourceEntries>
|
||||||
</configuration>
|
</configuration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
@@ -191,8 +191,8 @@
|
|||||||
</folderInfo>
|
</folderInfo>
|
||||||
<sourceEntries>
|
<sourceEntries>
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
|
|
||||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
|
||||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
|
||||||
</sourceEntries>
|
</sourceEntries>
|
||||||
</configuration>
|
</configuration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
@@ -220,4 +220,5 @@
|
|||||||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
|
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
|
<storageModule moduleId="refreshScope"/>
|
||||||
</cproject>
|
</cproject>
|
||||||
58
.mxproject
58
.mxproject
File diff suppressed because one or more lines are too long
@@ -74,6 +74,10 @@ void Error_Handler(void);
|
|||||||
#define B1_Pin GPIO_PIN_0
|
#define B1_Pin GPIO_PIN_0
|
||||||
#define B1_GPIO_Port GPIOA
|
#define B1_GPIO_Port GPIOA
|
||||||
#define B1_EXTI_IRQn EXTI0_IRQn
|
#define B1_EXTI_IRQn EXTI0_IRQn
|
||||||
|
#define USART2_TX_Pin GPIO_PIN_2
|
||||||
|
#define USART2_TX_GPIO_Port GPIOA
|
||||||
|
#define USART2_RX_Pin GPIO_PIN_3
|
||||||
|
#define USART2_RX_GPIO_Port GPIOA
|
||||||
#define I2S3_WS_Pin GPIO_PIN_4
|
#define I2S3_WS_Pin GPIO_PIN_4
|
||||||
#define I2S3_WS_GPIO_Port GPIOA
|
#define I2S3_WS_GPIO_Port GPIOA
|
||||||
#define SPI1_SCK_Pin GPIO_PIN_5
|
#define SPI1_SCK_Pin GPIO_PIN_5
|
||||||
@@ -82,24 +86,50 @@ void Error_Handler(void);
|
|||||||
#define SPI1_MISO_GPIO_Port GPIOA
|
#define SPI1_MISO_GPIO_Port GPIOA
|
||||||
#define SPI1_MOSI_Pin GPIO_PIN_7
|
#define SPI1_MOSI_Pin GPIO_PIN_7
|
||||||
#define SPI1_MOSI_GPIO_Port GPIOA
|
#define SPI1_MOSI_GPIO_Port GPIOA
|
||||||
|
#define SX1280_A_BUSY_Pin GPIO_PIN_4
|
||||||
|
#define SX1280_A_BUSY_GPIO_Port GPIOC
|
||||||
|
#define SX1280_A_BUSY_EXTI_IRQn EXTI4_IRQn
|
||||||
|
#define SX1280_A_IRQ_Pin GPIO_PIN_5
|
||||||
|
#define SX1280_A_IRQ_GPIO_Port GPIOC
|
||||||
|
#define SX1280_A_IRQ_EXTI_IRQn EXTI9_5_IRQn
|
||||||
|
#define SX1280_A_NSS_Pin GPIO_PIN_0
|
||||||
|
#define SX1280_A_NSS_GPIO_Port GPIOB
|
||||||
|
#define SX1280_A_RST_Pin GPIO_PIN_1
|
||||||
|
#define SX1280_A_RST_GPIO_Port GPIOB
|
||||||
#define BOOT1_Pin GPIO_PIN_2
|
#define BOOT1_Pin GPIO_PIN_2
|
||||||
#define BOOT1_GPIO_Port GPIOB
|
#define BOOT1_GPIO_Port GPIOB
|
||||||
|
#define SX1280_A_RXEN_Pin GPIO_PIN_7
|
||||||
|
#define SX1280_A_RXEN_GPIO_Port GPIOE
|
||||||
|
#define SX1280_A_TXEN_Pin GPIO_PIN_8
|
||||||
|
#define SX1280_A_TXEN_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_BUSY_Pin GPIO_PIN_9
|
||||||
|
#define SX1280_B_BUSY_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_BUSY_EXTI_IRQn EXTI9_5_IRQn
|
||||||
|
#define SX1280_B_IRQ_Pin GPIO_PIN_10
|
||||||
|
#define SX1280_B_IRQ_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_IRQ_EXTI_IRQn EXTI15_10_IRQn
|
||||||
|
#define SX1280_B_NSS_Pin GPIO_PIN_11
|
||||||
|
#define SX1280_B_NSS_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_RST_Pin GPIO_PIN_12
|
||||||
|
#define SX1280_B_RST_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_RXEN_Pin GPIO_PIN_13
|
||||||
|
#define SX1280_B_RXEN_GPIO_Port GPIOE
|
||||||
|
#define SX1280_B_TXEN_Pin GPIO_PIN_14
|
||||||
|
#define SX1280_B_TXEN_GPIO_Port GPIOE
|
||||||
|
#define NRF24_A_IRQ_Pin GPIO_PIN_15
|
||||||
|
#define NRF24_A_IRQ_GPIO_Port GPIOE
|
||||||
|
#define NRF24_A_IRQ_EXTI_IRQn EXTI15_10_IRQn
|
||||||
#define CLK_IN_Pin GPIO_PIN_10
|
#define CLK_IN_Pin GPIO_PIN_10
|
||||||
#define CLK_IN_GPIO_Port GPIOB
|
#define CLK_IN_GPIO_Port GPIOB
|
||||||
#define RADIO_TXEN_Pin GPIO_PIN_11
|
#define NRF24_A_NSS_Pin GPIO_PIN_11
|
||||||
#define RADIO_TXEN_GPIO_Port GPIOB
|
#define NRF24_A_NSS_GPIO_Port GPIOB
|
||||||
#define RADIO_NSS_Pin GPIO_PIN_12
|
#define NRF24_A_CE_Pin GPIO_PIN_12
|
||||||
#define RADIO_NSS_GPIO_Port GPIOB
|
#define NRF24_A_CE_GPIO_Port GPIOB
|
||||||
#define RADIO_BUSY_Pin GPIO_PIN_8
|
#define ESP8266_IRQ_Pin GPIO_PIN_8
|
||||||
#define RADIO_BUSY_GPIO_Port GPIOD
|
#define ESP8266_IRQ_GPIO_Port GPIOD
|
||||||
#define RADIO_BUSY_EXTI_IRQn EXTI9_5_IRQn
|
#define ESP8266_IRQ_EXTI_IRQn EXTI9_5_IRQn
|
||||||
#define RADIO_IRQ_Pin GPIO_PIN_9
|
#define ESP8266_RST_Pin GPIO_PIN_9
|
||||||
#define RADIO_IRQ_GPIO_Port GPIOD
|
#define ESP8266_RST_GPIO_Port GPIOD
|
||||||
#define RADIO_IRQ_EXTI_IRQn EXTI9_5_IRQn
|
|
||||||
#define RADIO_RST_Pin GPIO_PIN_10
|
|
||||||
#define RADIO_RST_GPIO_Port GPIOD
|
|
||||||
#define RADIO_RXEN_Pin GPIO_PIN_11
|
|
||||||
#define RADIO_RXEN_GPIO_Port GPIOD
|
|
||||||
#define LD4_Pin GPIO_PIN_12
|
#define LD4_Pin GPIO_PIN_12
|
||||||
#define LD4_GPIO_Port GPIOD
|
#define LD4_GPIO_Port GPIOD
|
||||||
#define LD3_Pin GPIO_PIN_13
|
#define LD3_Pin GPIO_PIN_13
|
||||||
@@ -108,8 +138,15 @@ void Error_Handler(void);
|
|||||||
#define LD5_GPIO_Port GPIOD
|
#define LD5_GPIO_Port GPIOD
|
||||||
#define LD6_Pin GPIO_PIN_15
|
#define LD6_Pin GPIO_PIN_15
|
||||||
#define LD6_GPIO_Port GPIOD
|
#define LD6_GPIO_Port GPIOD
|
||||||
|
#define NRF24_B_IRQ_Pin GPIO_PIN_6
|
||||||
|
#define NRF24_B_IRQ_GPIO_Port GPIOC
|
||||||
|
#define NRF24_B_IRQ_EXTI_IRQn EXTI9_5_IRQn
|
||||||
#define I2S3_MCK_Pin GPIO_PIN_7
|
#define I2S3_MCK_Pin GPIO_PIN_7
|
||||||
#define I2S3_MCK_GPIO_Port GPIOC
|
#define I2S3_MCK_GPIO_Port GPIOC
|
||||||
|
#define NRF24_B_CE_Pin GPIO_PIN_9
|
||||||
|
#define NRF24_B_CE_GPIO_Port GPIOC
|
||||||
|
#define NRF24_B_NSS_Pin GPIO_PIN_8
|
||||||
|
#define NRF24_B_NSS_GPIO_Port GPIOA
|
||||||
#define VBUS_FS_Pin GPIO_PIN_9
|
#define VBUS_FS_Pin GPIO_PIN_9
|
||||||
#define VBUS_FS_GPIO_Port GPIOA
|
#define VBUS_FS_GPIO_Port GPIOA
|
||||||
#define OTG_FS_ID_Pin GPIO_PIN_10
|
#define OTG_FS_ID_Pin GPIO_PIN_10
|
||||||
@@ -122,6 +159,8 @@ void Error_Handler(void);
|
|||||||
#define SWDIO_GPIO_Port GPIOA
|
#define SWDIO_GPIO_Port GPIOA
|
||||||
#define SWCLK_Pin GPIO_PIN_14
|
#define SWCLK_Pin GPIO_PIN_14
|
||||||
#define SWCLK_GPIO_Port GPIOA
|
#define SWCLK_GPIO_Port GPIOA
|
||||||
|
#define SPI2_NSS_Pin GPIO_PIN_15
|
||||||
|
#define SPI2_NSS_GPIO_Port GPIOA
|
||||||
#define I2S3_SCK_Pin GPIO_PIN_10
|
#define I2S3_SCK_Pin GPIO_PIN_10
|
||||||
#define I2S3_SCK_GPIO_Port GPIOC
|
#define I2S3_SCK_GPIO_Port GPIOC
|
||||||
#define I2S3_SD_Pin GPIO_PIN_12
|
#define I2S3_SD_Pin GPIO_PIN_12
|
||||||
@@ -130,10 +169,23 @@ void Error_Handler(void);
|
|||||||
#define Audio_RST_GPIO_Port GPIOD
|
#define Audio_RST_GPIO_Port GPIOD
|
||||||
#define OTG_FS_OverCurrent_Pin GPIO_PIN_5
|
#define OTG_FS_OverCurrent_Pin GPIO_PIN_5
|
||||||
#define OTG_FS_OverCurrent_GPIO_Port GPIOD
|
#define OTG_FS_OverCurrent_GPIO_Port GPIOD
|
||||||
|
#define TOUCH_NSS_Pin GPIO_PIN_6
|
||||||
|
#define TOUCH_NSS_GPIO_Port GPIOD
|
||||||
|
#define TOUCH_IRQ_Pin GPIO_PIN_7
|
||||||
|
#define TOUCH_IRQ_GPIO_Port GPIOD
|
||||||
|
#define TOUCH_IRQ_EXTI_IRQn EXTI9_5_IRQn
|
||||||
#define SWO_Pin GPIO_PIN_3
|
#define SWO_Pin GPIO_PIN_3
|
||||||
#define SWO_GPIO_Port GPIOB
|
#define SWO_GPIO_Port GPIOB
|
||||||
|
#define LCD_NSS_Pin GPIO_PIN_4
|
||||||
|
#define LCD_NSS_GPIO_Port GPIOB
|
||||||
|
#define LCD_RST_Pin GPIO_PIN_5
|
||||||
|
#define LCD_RST_GPIO_Port GPIOB
|
||||||
#define Audio_SCL_Pin GPIO_PIN_6
|
#define Audio_SCL_Pin GPIO_PIN_6
|
||||||
#define Audio_SCL_GPIO_Port GPIOB
|
#define Audio_SCL_GPIO_Port GPIOB
|
||||||
|
#define LCD_DR_Pin GPIO_PIN_7
|
||||||
|
#define LCD_DR_GPIO_Port GPIOB
|
||||||
|
#define LCD_LED_Pin GPIO_PIN_8
|
||||||
|
#define LCD_LED_GPIO_Port GPIOB
|
||||||
#define Audio_SDA_Pin GPIO_PIN_9
|
#define Audio_SDA_Pin GPIO_PIN_9
|
||||||
#define Audio_SDA_GPIO_Port GPIOB
|
#define Audio_SDA_GPIO_Port GPIOB
|
||||||
#define MEMS_INT2_Pin GPIO_PIN_1
|
#define MEMS_INT2_Pin GPIO_PIN_1
|
||||||
|
|||||||
@@ -64,13 +64,13 @@
|
|||||||
/* #define HAL_MMC_MODULE_ENABLED */
|
/* #define HAL_MMC_MODULE_ENABLED */
|
||||||
#define HAL_SPI_MODULE_ENABLED
|
#define HAL_SPI_MODULE_ENABLED
|
||||||
#define HAL_TIM_MODULE_ENABLED
|
#define HAL_TIM_MODULE_ENABLED
|
||||||
/* #define HAL_UART_MODULE_ENABLED */
|
#define HAL_UART_MODULE_ENABLED
|
||||||
/* #define HAL_USART_MODULE_ENABLED */
|
/* #define HAL_USART_MODULE_ENABLED */
|
||||||
/* #define HAL_IRDA_MODULE_ENABLED */
|
/* #define HAL_IRDA_MODULE_ENABLED */
|
||||||
/* #define HAL_SMARTCARD_MODULE_ENABLED */
|
/* #define HAL_SMARTCARD_MODULE_ENABLED */
|
||||||
/* #define HAL_SMBUS_MODULE_ENABLED */
|
/* #define HAL_SMBUS_MODULE_ENABLED */
|
||||||
/* #define HAL_WWDG_MODULE_ENABLED */
|
/* #define HAL_WWDG_MODULE_ENABLED */
|
||||||
/* #define HAL_PCD_MODULE_ENABLED */
|
#define HAL_PCD_MODULE_ENABLED
|
||||||
/* #define HAL_HCD_MODULE_ENABLED */
|
/* #define HAL_HCD_MODULE_ENABLED */
|
||||||
/* #define HAL_DSI_MODULE_ENABLED */
|
/* #define HAL_DSI_MODULE_ENABLED */
|
||||||
/* #define HAL_QSPI_MODULE_ENABLED */
|
/* #define HAL_QSPI_MODULE_ENABLED */
|
||||||
|
|||||||
@@ -53,10 +53,14 @@ void BusFault_Handler(void);
|
|||||||
void UsageFault_Handler(void);
|
void UsageFault_Handler(void);
|
||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void EXTI0_IRQHandler(void);
|
void EXTI0_IRQHandler(void);
|
||||||
|
void EXTI4_IRQHandler(void);
|
||||||
void DMA1_Stream3_IRQHandler(void);
|
void DMA1_Stream3_IRQHandler(void);
|
||||||
void DMA1_Stream4_IRQHandler(void);
|
void DMA1_Stream4_IRQHandler(void);
|
||||||
void EXTI9_5_IRQHandler(void);
|
void EXTI9_5_IRQHandler(void);
|
||||||
|
void EXTI15_10_IRQHandler(void);
|
||||||
void TIM7_IRQHandler(void);
|
void TIM7_IRQHandler(void);
|
||||||
|
void DMA2_Stream0_IRQHandler(void);
|
||||||
|
void DMA2_Stream3_IRQHandler(void);
|
||||||
/* USER CODE BEGIN EFP */
|
/* USER CODE BEGIN EFP */
|
||||||
|
|
||||||
/* USER CODE END EFP */
|
/* USER CODE END EFP */
|
||||||
|
|||||||
54
Core/Inc/tim.h
Normal file
54
Core/Inc/tim.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file tim.h
|
||||||
|
* @brief This file contains all the function prototypes for
|
||||||
|
* the tim.c file
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __TIM_H__
|
||||||
|
#define __TIM_H__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern TIM_HandleTypeDef htim10;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_TIM10_Init(void);
|
||||||
|
|
||||||
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
/* USER CODE END Prototypes */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __TIM_H__ */
|
||||||
|
|
||||||
52
Core/Inc/usart.h
Normal file
52
Core/Inc/usart.h
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file usart.h
|
||||||
|
* @brief This file contains all the function prototypes for
|
||||||
|
* the usart.c file
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __USART_H__
|
||||||
|
#define __USART_H__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern UART_HandleTypeDef huart2;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_USART2_UART_Init(void);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
/* USER CODE END Prototypes */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __USART_H__ */
|
||||||
|
|
||||||
52
Core/Inc/usb_otg.h
Normal file
52
Core/Inc/usb_otg.h
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file usb_otg.h
|
||||||
|
* @brief This file contains all the function prototypes for
|
||||||
|
* the usb_otg.c file
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __USB_OTG_H__
|
||||||
|
#define __USB_OTG_H__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_USB_OTG_FS_PCD_Init(void);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
/* USER CODE END Prototypes */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __USB_OTG_H__ */
|
||||||
|
|
||||||
@@ -8,12 +8,11 @@
|
|||||||
#include "SSL_Comms.hpp"
|
#include "SSL_Comms.hpp"
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "EXTIHandler.hpp"
|
|
||||||
#include "SX1280Lib/sx1280-hal.h"
|
#include "SX1280Lib/sx1280-hal.h"
|
||||||
|
|
||||||
extern SPI_HandleTypeDef hspi1;
|
extern SPI_HandleTypeDef hspi1;
|
||||||
|
|
||||||
SX1280Hal pRadio(pSpiPeripheral, pNssPin, pBusyPin, pIrqPin, pRstPin, callbacks);
|
|
||||||
|
|
||||||
SSL_Comms::SSL_Comms(GPIO_Pin* but) : but(but) {
|
SSL_Comms::SSL_Comms(GPIO_Pin* but) : but(but) {
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
@@ -30,8 +29,5 @@ void SSL_Comms::irqCallback(void *arg) {
|
|||||||
|
|
||||||
int32_t SSL_Comms::init(){
|
int32_t SSL_Comms::init(){
|
||||||
__NOP();
|
__NOP();
|
||||||
std::function<void(void*)> callbackFunction = [this](void* ptr){irqCallback(ptr);};
|
|
||||||
EXTIHandler::getInstance()->registerCallback(callbackFunction, nullptr, but);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,11 @@
|
|||||||
#include "SPI_Peripheral_STM32.hpp"
|
#include "SPI_Peripheral_STM32.hpp"
|
||||||
#include "BinLeds.hpp"
|
#include "BinLeds.hpp"
|
||||||
#include "SSL_Comms.hpp"
|
#include "SSL_Comms.hpp"
|
||||||
|
#include "SX1280Lib/sx1280-hal.h"
|
||||||
|
|
||||||
extern SPI_HandleTypeDef hspi2;
|
#include <cstdio>
|
||||||
|
|
||||||
|
extern SPI_HandleTypeDef hspi1;
|
||||||
|
|
||||||
GPIO_Pin_STM32 ledOrange(LD3_GPIO_Port, LD3_Pin);
|
GPIO_Pin_STM32 ledOrange(LD3_GPIO_Port, LD3_Pin);
|
||||||
GPIO_Pin_STM32 ledGreen(LD4_GPIO_Port, LD4_Pin);
|
GPIO_Pin_STM32 ledGreen(LD4_GPIO_Port, LD4_Pin);
|
||||||
@@ -19,12 +22,26 @@ GPIO_Pin_STM32 ledRed(LD5_GPIO_Port, LD5_Pin);
|
|||||||
GPIO_Pin_STM32 ledBlue(LD6_GPIO_Port, LD6_Pin);
|
GPIO_Pin_STM32 ledBlue(LD6_GPIO_Port, LD6_Pin);
|
||||||
BinLeds discoveryLeds((GPIO_Pin*[]){&ledOrange, &ledGreen, &ledRed, &ledBlue}, 4);
|
BinLeds discoveryLeds((GPIO_Pin*[]){&ledOrange, &ledGreen, &ledRed, &ledBlue}, 4);
|
||||||
|
|
||||||
SPI_Peripheral_STM32 spiRadio(&hspi2, 1000);
|
SPI_Peripheral_STM32 spiRadio(&hspi1, 1000);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_nss(SX1280_A_NSS_GPIO_Port, SX1280_A_NSS_Pin);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_rxen(SX1280_A_RXEN_GPIO_Port, SX1280_A_RXEN_Pin);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_txen(SX1280_A_TXEN_GPIO_Port, SX1280_A_TXEN_Pin);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_rst(SX1280_A_RST_GPIO_Port, SX1280_A_RST_Pin);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_busy(SX1280_A_BUSY_GPIO_Port, SX1280_A_BUSY_Pin);
|
||||||
|
GPIO_Pin_STM32 sx1280_a_irq(SX1280_A_IRQ_GPIO_Port, SX1280_A_IRQ_Pin);
|
||||||
|
|
||||||
|
SX1280Hal pRadio(&spiRadio, &sx1280_a_nss, &sx1280_a_busy, &sx1280_a_irq, &sx1280_a_rst, nullptr);
|
||||||
|
|
||||||
GPIO_Pin_STM32 blueButton(B1_GPIO_Port, B1_Pin);
|
GPIO_Pin_STM32 blueButton(B1_GPIO_Port, B1_Pin);
|
||||||
SSL_Comms radio0(&blueButton);
|
SSL_Comms radio0(&blueButton);
|
||||||
|
|
||||||
void start(){
|
void start(){
|
||||||
|
discoveryLeds.set(15);
|
||||||
spiRadio.init();
|
spiRadio.init();
|
||||||
radio0.init();
|
radio0.init();
|
||||||
|
pRadio.Init();
|
||||||
|
uint16_t firmwareVersion = pRadio.GetFirmwareVersion();
|
||||||
|
printf("Radio firmware version: %u\n", firmwareVersion);
|
||||||
|
int8_t rssiInst = pRadio.GetRssiInst();
|
||||||
|
printf("Radio RSSI: %d\n", rssiInst);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ void MX_DMA_Init(void)
|
|||||||
|
|
||||||
/* DMA controller clock enable */
|
/* DMA controller clock enable */
|
||||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* DMA interrupt init */
|
||||||
/* DMA1_Stream3_IRQn interrupt configuration */
|
/* DMA1_Stream3_IRQn interrupt configuration */
|
||||||
@@ -49,6 +50,12 @@ void MX_DMA_Init(void)
|
|||||||
/* DMA1_Stream4_IRQn interrupt configuration */
|
/* DMA1_Stream4_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
|
||||||
|
/* DMA2_Stream0_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);
|
||||||
|
/* DMA2_Stream3_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,10 +40,6 @@
|
|||||||
* EXTI
|
* EXTI
|
||||||
PC3 ------> I2S2_SD
|
PC3 ------> I2S2_SD
|
||||||
PB10 ------> I2S2_CK
|
PB10 ------> I2S2_CK
|
||||||
PA9 ------> USB_OTG_FS_VBUS
|
|
||||||
PA10 ------> USB_OTG_FS_ID
|
|
||||||
PA11 ------> USB_OTG_FS_DM
|
|
||||||
PA12 ------> USB_OTG_FS_DP
|
|
||||||
*/
|
*/
|
||||||
void MX_GPIO_Init(void)
|
void MX_GPIO_Init(void)
|
||||||
{
|
{
|
||||||
@@ -59,31 +55,48 @@ void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(CS_I2C_SPI_GPIO_Port, CS_I2C_SPI_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOE, CS_I2C_SPI_Pin|SX1280_A_TXEN_Pin|SX1280_B_RST_Pin|SX1280_B_TXEN_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET);
|
HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOB, RADIO_TXEN_Pin|RADIO_NSS_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOB, SX1280_A_NSS_Pin|NRF24_A_NSS_Pin|LCD_NSS_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOD, RADIO_RST_Pin|RADIO_RXEN_Pin|LD4_Pin|LD3_Pin
|
HAL_GPIO_WritePin(GPIOB, SX1280_A_RST_Pin|NRF24_A_CE_Pin|LCD_RST_Pin|LCD_DR_Pin, GPIO_PIN_RESET);
|
||||||
|LD5_Pin|LD6_Pin|Audio_RST_Pin, GPIO_PIN_RESET);
|
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin Output Level */
|
||||||
GPIO_InitStruct.Pin = CS_I2C_SPI_Pin;
|
HAL_GPIO_WritePin(GPIOE, SX1280_A_RXEN_Pin|SX1280_B_NSS_Pin|SX1280_B_RXEN_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(GPIOD, ESP8266_RST_Pin|LD4_Pin|LD3_Pin|LD5_Pin
|
||||||
|
|LD6_Pin|Audio_RST_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(NRF24_B_CE_GPIO_Port, NRF24_B_CE_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(GPIOA, NRF24_B_NSS_Pin|SPI2_NSS_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(TOUCH_NSS_GPIO_Port, TOUCH_NSS_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
|
/*Configure GPIO pins : PEPin PEPin PEPin PEPin
|
||||||
|
PEPin PEPin PEPin */
|
||||||
|
GPIO_InitStruct.Pin = CS_I2C_SPI_Pin|SX1280_A_RXEN_Pin|SX1280_A_TXEN_Pin|SX1280_B_NSS_Pin
|
||||||
|
|SX1280_B_RST_Pin|SX1280_B_RXEN_Pin|SX1280_B_TXEN_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(CS_I2C_SPI_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pins : PCPin PCPin */
|
||||||
GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin;
|
GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin|NRF24_B_CE_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = PDM_OUT_Pin;
|
GPIO_InitStruct.Pin = PDM_OUT_Pin;
|
||||||
@@ -99,12 +112,33 @@ void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pins : PCPin PCPin PCPin */
|
||||||
|
GPIO_InitStruct.Pin = SX1280_A_BUSY_Pin|SX1280_A_IRQ_Pin|NRF24_B_IRQ_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
|
||||||
|
PBPin PBPin PBPin */
|
||||||
|
GPIO_InitStruct.Pin = SX1280_A_NSS_Pin|SX1280_A_RST_Pin|NRF24_A_NSS_Pin|NRF24_A_CE_Pin
|
||||||
|
|LCD_NSS_Pin|LCD_RST_Pin|LCD_DR_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = BOOT1_Pin;
|
GPIO_InitStruct.Pin = BOOT1_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pins : PEPin PEPin PEPin */
|
||||||
|
GPIO_InitStruct.Pin = SX1280_B_BUSY_Pin|SX1280_B_IRQ_Pin|NRF24_A_IRQ_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = CLK_IN_Pin;
|
GPIO_InitStruct.Pin = CLK_IN_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
@@ -113,40 +147,26 @@ void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
||||||
HAL_GPIO_Init(CLK_IN_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(CLK_IN_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PBPin PBPin */
|
|
||||||
GPIO_InitStruct.Pin = RADIO_TXEN_Pin|RADIO_NSS_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/*Configure GPIO pins : PDPin PDPin */
|
/*Configure GPIO pins : PDPin PDPin */
|
||||||
GPIO_InitStruct.Pin = RADIO_BUSY_Pin|RADIO_IRQ_Pin;
|
GPIO_InitStruct.Pin = ESP8266_IRQ_Pin|TOUCH_IRQ_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PDPin PDPin PDPin PDPin
|
/*Configure GPIO pins : PDPin PDPin PDPin PDPin
|
||||||
PDPin PDPin PDPin */
|
PDPin PDPin PDPin */
|
||||||
GPIO_InitStruct.Pin = RADIO_RST_Pin|RADIO_RXEN_Pin|LD4_Pin|LD3_Pin
|
GPIO_InitStruct.Pin = ESP8266_RST_Pin|LD4_Pin|LD3_Pin|LD5_Pin
|
||||||
|LD5_Pin|LD6_Pin|Audio_RST_Pin;
|
|LD6_Pin|Audio_RST_Pin|TOUCH_NSS_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pins : PAPin PAPin */
|
||||||
GPIO_InitStruct.Pin = VBUS_FS_Pin;
|
GPIO_InitStruct.Pin = NRF24_B_NSS_Pin|SPI2_NSS_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
HAL_GPIO_Init(VBUS_FS_GPIO_Port, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/*Configure GPIO pins : PAPin PAPin PAPin */
|
|
||||||
GPIO_InitStruct.Pin = OTG_FS_ID_Pin|OTG_FS_DM_Pin|OTG_FS_DP_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
@@ -158,16 +178,22 @@ void MX_GPIO_Init(void)
|
|||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = MEMS_INT2_Pin;
|
GPIO_InitStruct.Pin = MEMS_INT2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
|
GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
HAL_GPIO_Init(MEMS_INT2_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(MEMS_INT2_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* EXTI interrupt init*/
|
/* EXTI interrupt init*/
|
||||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
||||||
|
|
||||||
|
HAL_NVIC_SetPriority(EXTI4_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(EXTI4_IRQn);
|
||||||
|
|
||||||
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||||
|
|
||||||
|
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
#include "i2s.h"
|
#include "i2s.h"
|
||||||
#include "spi.h"
|
#include "spi.h"
|
||||||
|
#include "tim.h"
|
||||||
|
#include "usart.h"
|
||||||
|
#include "usb_otg.h"
|
||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
@@ -96,6 +99,9 @@ int main(void)
|
|||||||
MX_I2S3_Init();
|
MX_I2S3_Init();
|
||||||
MX_SPI1_Init();
|
MX_SPI1_Init();
|
||||||
MX_SPI2_Init();
|
MX_SPI2_Init();
|
||||||
|
MX_TIM10_Init();
|
||||||
|
MX_USART2_UART_Init();
|
||||||
|
MX_USB_OTG_FS_PCD_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
|
|
||||||
SPI_HandleTypeDef hspi1;
|
SPI_HandleTypeDef hspi1;
|
||||||
SPI_HandleTypeDef hspi2;
|
SPI_HandleTypeDef hspi2;
|
||||||
|
DMA_HandleTypeDef hdma_spi1_rx;
|
||||||
|
DMA_HandleTypeDef hdma_spi1_tx;
|
||||||
DMA_HandleTypeDef hdma_spi2_rx;
|
DMA_HandleTypeDef hdma_spi2_rx;
|
||||||
DMA_HandleTypeDef hdma_spi2_tx;
|
DMA_HandleTypeDef hdma_spi2_tx;
|
||||||
|
|
||||||
@@ -47,7 +49,7 @@ void MX_SPI1_Init(void)
|
|||||||
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||||
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||||
hspi1.Init.NSS = SPI_NSS_SOFT;
|
hspi1.Init.NSS = SPI_NSS_SOFT;
|
||||||
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
|
||||||
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||||
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||||
@@ -119,6 +121,43 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
|||||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* SPI1 DMA Init */
|
||||||
|
/* SPI1_RX Init */
|
||||||
|
hdma_spi1_rx.Instance = DMA2_Stream0;
|
||||||
|
hdma_spi1_rx.Init.Channel = DMA_CHANNEL_3;
|
||||||
|
hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||||
|
hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||||
|
hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||||
|
hdma_spi1_rx.Init.Mode = DMA_NORMAL;
|
||||||
|
hdma_spi1_rx.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
hdma_spi1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||||
|
if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(spiHandle,hdmarx,hdma_spi1_rx);
|
||||||
|
|
||||||
|
/* SPI1_TX Init */
|
||||||
|
hdma_spi1_tx.Instance = DMA2_Stream3;
|
||||||
|
hdma_spi1_tx.Init.Channel = DMA_CHANNEL_3;
|
||||||
|
hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||||
|
hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||||
|
hdma_spi1_tx.Init.Mode = DMA_NORMAL;
|
||||||
|
hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
hdma_spi1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||||
|
if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(spiHandle,hdmatx,hdma_spi1_tx);
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspInit 1 */
|
/* USER CODE END SPI1_MspInit 1 */
|
||||||
@@ -205,6 +244,9 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
|||||||
*/
|
*/
|
||||||
HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin);
|
HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin);
|
||||||
|
|
||||||
|
/* SPI1 DMA DeInit */
|
||||||
|
HAL_DMA_DeInit(spiHandle->hdmarx);
|
||||||
|
HAL_DMA_DeInit(spiHandle->hdmatx);
|
||||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspDeInit 1 */
|
/* USER CODE END SPI1_MspDeInit 1 */
|
||||||
|
|||||||
@@ -55,6 +55,8 @@
|
|||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
/* External variables --------------------------------------------------------*/
|
/* External variables --------------------------------------------------------*/
|
||||||
|
extern DMA_HandleTypeDef hdma_spi1_rx;
|
||||||
|
extern DMA_HandleTypeDef hdma_spi1_tx;
|
||||||
extern DMA_HandleTypeDef hdma_spi2_rx;
|
extern DMA_HandleTypeDef hdma_spi2_rx;
|
||||||
extern DMA_HandleTypeDef hdma_spi2_tx;
|
extern DMA_HandleTypeDef hdma_spi2_tx;
|
||||||
extern TIM_HandleTypeDef htim7;
|
extern TIM_HandleTypeDef htim7;
|
||||||
@@ -175,6 +177,20 @@ void EXTI0_IRQHandler(void)
|
|||||||
/* USER CODE END EXTI0_IRQn 1 */
|
/* USER CODE END EXTI0_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles EXTI line4 interrupt.
|
||||||
|
*/
|
||||||
|
void EXTI4_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN EXTI4_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI4_IRQn 0 */
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(SX1280_A_BUSY_Pin);
|
||||||
|
/* USER CODE BEGIN EXTI4_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI4_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles DMA1 stream3 global interrupt.
|
* @brief This function handles DMA1 stream3 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -211,13 +227,31 @@ void EXTI9_5_IRQHandler(void)
|
|||||||
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI9_5_IRQn 0 */
|
/* USER CODE END EXTI9_5_IRQn 0 */
|
||||||
HAL_GPIO_EXTI_IRQHandler(RADIO_BUSY_Pin);
|
HAL_GPIO_EXTI_IRQHandler(SX1280_A_IRQ_Pin);
|
||||||
HAL_GPIO_EXTI_IRQHandler(RADIO_IRQ_Pin);
|
HAL_GPIO_EXTI_IRQHandler(NRF24_B_IRQ_Pin);
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(TOUCH_IRQ_Pin);
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(ESP8266_IRQ_Pin);
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(SX1280_B_BUSY_Pin);
|
||||||
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
|
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END EXTI9_5_IRQn 1 */
|
/* USER CODE END EXTI9_5_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles EXTI line[15:10] interrupts.
|
||||||
|
*/
|
||||||
|
void EXTI15_10_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN EXTI15_10_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI15_10_IRQn 0 */
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(SX1280_B_IRQ_Pin);
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(NRF24_A_IRQ_Pin);
|
||||||
|
/* USER CODE BEGIN EXTI15_10_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI15_10_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM7 global interrupt.
|
* @brief This function handles TIM7 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -232,6 +266,34 @@ void TIM7_IRQHandler(void)
|
|||||||
/* USER CODE END TIM7_IRQn 1 */
|
/* USER CODE END TIM7_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA2 stream0 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA2_Stream0_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Stream0_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_spi1_rx);
|
||||||
|
/* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Stream0_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA2 stream3 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA2_Stream3_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Stream3_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
||||||
|
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Stream3_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|||||||
132
Core/Src/tim.c
Normal file
132
Core/Src/tim.c
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file tim.c
|
||||||
|
* @brief This file provides code for the configuration
|
||||||
|
* of the TIM instances.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "tim.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
TIM_HandleTypeDef htim10;
|
||||||
|
|
||||||
|
/* TIM10 init function */
|
||||||
|
void MX_TIM10_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM10_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_Init 0 */
|
||||||
|
|
||||||
|
TIM_OC_InitTypeDef sConfigOC = {0};
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM10_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_Init 1 */
|
||||||
|
htim10.Instance = TIM10;
|
||||||
|
htim10.Init.Prescaler = 0;
|
||||||
|
htim10.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
htim10.Init.Period = 65535;
|
||||||
|
htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
htim10.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
|
if (HAL_TIM_Base_Init(&htim10) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_TIM_PWM_Init(&htim10) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
|
sConfigOC.Pulse = 0;
|
||||||
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
if (HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN TIM10_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_Init 2 */
|
||||||
|
HAL_TIM_MspPostInit(&htim10);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(tim_baseHandle->Instance==TIM10)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM10_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspInit 0 */
|
||||||
|
/* TIM10 clock enable */
|
||||||
|
__HAL_RCC_TIM10_CLK_ENABLE();
|
||||||
|
/* USER CODE BEGIN TIM10_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
if(timHandle->Instance==TIM10)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM10_MspPostInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspPostInit 0 */
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
|
/**TIM10 GPIO Configuration
|
||||||
|
PB8 ------> TIM10_CH1
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = LCD_LED_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
|
||||||
|
HAL_GPIO_Init(LCD_LED_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM10_MspPostInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspPostInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(tim_baseHandle->Instance==TIM10)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM10_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_TIM10_CLK_DISABLE();
|
||||||
|
/* USER CODE BEGIN TIM10_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM10_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
114
Core/Src/usart.c
Normal file
114
Core/Src/usart.c
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file usart.c
|
||||||
|
* @brief This file provides code for the configuration
|
||||||
|
* of the USART instances.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "usart.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
UART_HandleTypeDef huart2;
|
||||||
|
|
||||||
|
/* USART2 init function */
|
||||||
|
|
||||||
|
void MX_USART2_UART_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART2_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART2_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_Init 1 */
|
||||||
|
huart2.Instance = USART2;
|
||||||
|
huart2.Init.BaudRate = 115200;
|
||||||
|
huart2.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
|
huart2.Init.StopBits = UART_STOPBITS_1;
|
||||||
|
huart2.Init.Parity = UART_PARITY_NONE;
|
||||||
|
huart2.Init.Mode = UART_MODE_TX_RX;
|
||||||
|
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
if (HAL_UART_Init(&huart2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN USART2_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
if(uartHandle->Instance==USART2)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USART2_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_MspInit 0 */
|
||||||
|
/* USART2 clock enable */
|
||||||
|
__HAL_RCC_USART2_CLK_ENABLE();
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
/**USART2 GPIO Configuration
|
||||||
|
PA2 ------> USART2_TX
|
||||||
|
PA3 ------> USART2_RX
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = USART2_TX_Pin|USART2_RX_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART2_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_MspInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(uartHandle->Instance==USART2)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USART2_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_USART2_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**USART2 GPIO Configuration
|
||||||
|
PA2 ------> USART2_TX
|
||||||
|
PA3 ------> USART2_RX
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOA, USART2_TX_Pin|USART2_RX_Pin);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART2_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART2_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
125
Core/Src/usb_otg.c
Normal file
125
Core/Src/usb_otg.c
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file usb_otg.c
|
||||||
|
* @brief This file provides code for the configuration
|
||||||
|
* of the USB_OTG instances.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2024 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "usb_otg.h"
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
PCD_HandleTypeDef hpcd_USB_OTG_FS;
|
||||||
|
|
||||||
|
/* USB_OTG_FS init function */
|
||||||
|
|
||||||
|
void MX_USB_OTG_FS_PCD_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_Init 1 */
|
||||||
|
hpcd_USB_OTG_FS.Instance = USB_OTG_FS;
|
||||||
|
hpcd_USB_OTG_FS.Init.dev_endpoints = 4;
|
||||||
|
hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL;
|
||||||
|
hpcd_USB_OTG_FS.Init.dma_enable = DISABLE;
|
||||||
|
hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED;
|
||||||
|
hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE;
|
||||||
|
hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE;
|
||||||
|
hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE;
|
||||||
|
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
|
||||||
|
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
|
||||||
|
if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
if(pcdHandle->Instance==USB_OTG_FS)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_MspInit 0 */
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
/**USB_OTG_FS GPIO Configuration
|
||||||
|
PA9 ------> USB_OTG_FS_VBUS
|
||||||
|
PA10 ------> USB_OTG_FS_ID
|
||||||
|
PA11 ------> USB_OTG_FS_DM
|
||||||
|
PA12 ------> USB_OTG_FS_DP
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = VBUS_FS_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(VBUS_FS_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = OTG_FS_ID_Pin|OTG_FS_DM_Pin|OTG_FS_DP_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USB_OTG_FS clock enable */
|
||||||
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_MspInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(pcdHandle->Instance==USB_OTG_FS)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_USB_OTG_FS_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**USB_OTG_FS GPIO Configuration
|
||||||
|
PA9 ------> USB_OTG_FS_VBUS
|
||||||
|
PA10 ------> USB_OTG_FS_ID
|
||||||
|
PA11 ------> USB_OTG_FS_DM
|
||||||
|
PA12 ------> USB_OTG_FS_DP
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOA, VBUS_FS_Pin|OTG_FS_ID_Pin|OTG_FS_DM_Pin|OTG_FS_DP_Pin);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USB_OTG_FS_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
|
/* USER CODE END 1 */
|
||||||
461
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h
Normal file
461
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h
Normal file
@@ -0,0 +1,461 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_hal_pcd.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief Header file of PCD HAL module.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef STM32F4xx_HAL_PCD_H
|
||||||
|
#define STM32F4xx_HAL_PCD_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stm32f4xx_ll_usb.h"
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
|
||||||
|
/** @addtogroup STM32F4xx_HAL_Driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup PCD
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/** @defgroup PCD_Exported_Types PCD Exported Types
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief PCD State structure definition
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HAL_PCD_STATE_RESET = 0x00,
|
||||||
|
HAL_PCD_STATE_READY = 0x01,
|
||||||
|
HAL_PCD_STATE_ERROR = 0x02,
|
||||||
|
HAL_PCD_STATE_BUSY = 0x03,
|
||||||
|
HAL_PCD_STATE_TIMEOUT = 0x04
|
||||||
|
} PCD_StateTypeDef;
|
||||||
|
|
||||||
|
/* Device LPM suspend state */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
LPM_L0 = 0x00, /* on */
|
||||||
|
LPM_L1 = 0x01, /* LPM L1 sleep */
|
||||||
|
LPM_L2 = 0x02, /* suspend */
|
||||||
|
LPM_L3 = 0x03, /* off */
|
||||||
|
} PCD_LPM_StateTypeDef;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
PCD_LPM_L0_ACTIVE = 0x00, /* on */
|
||||||
|
PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */
|
||||||
|
} PCD_LPM_MsgTypeDef;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
PCD_BCD_ERROR = 0xFF,
|
||||||
|
PCD_BCD_CONTACT_DETECTION = 0xFE,
|
||||||
|
PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD,
|
||||||
|
PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC,
|
||||||
|
PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB,
|
||||||
|
PCD_BCD_DISCOVERY_COMPLETED = 0x00,
|
||||||
|
|
||||||
|
} PCD_BCD_MsgTypeDef;
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
typedef USB_OTG_GlobalTypeDef PCD_TypeDef;
|
||||||
|
typedef USB_OTG_CfgTypeDef PCD_InitTypeDef;
|
||||||
|
typedef USB_OTG_EPTypeDef PCD_EPTypeDef;
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief PCD Handle Structure definition
|
||||||
|
*/
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
typedef struct __PCD_HandleTypeDef
|
||||||
|
#else
|
||||||
|
typedef struct
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
{
|
||||||
|
PCD_TypeDef *Instance; /*!< Register base address */
|
||||||
|
PCD_InitTypeDef Init; /*!< PCD required parameters */
|
||||||
|
__IO uint8_t USB_Address; /*!< USB Address */
|
||||||
|
PCD_EPTypeDef IN_ep[16]; /*!< IN endpoint parameters */
|
||||||
|
PCD_EPTypeDef OUT_ep[16]; /*!< OUT endpoint parameters */
|
||||||
|
HAL_LockTypeDef Lock; /*!< PCD peripheral status */
|
||||||
|
__IO PCD_StateTypeDef State; /*!< PCD communication state */
|
||||||
|
__IO uint32_t ErrorCode; /*!< PCD Error code */
|
||||||
|
uint32_t Setup[12]; /*!< Setup packet buffer */
|
||||||
|
PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */
|
||||||
|
uint32_t BESL;
|
||||||
|
uint32_t FrameNumber; /*!< Store Current Frame number */
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t lpm_active; /*!< Enable or disable the Link Power Management .
|
||||||
|
This parameter can be set to ENABLE or DISABLE */
|
||||||
|
|
||||||
|
uint32_t battery_charging_active; /*!< Enable or disable Battery charging.
|
||||||
|
This parameter can be set to ENABLE or DISABLE */
|
||||||
|
void *pData; /*!< Pointer to upper stack Handler */
|
||||||
|
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD SOF callback */
|
||||||
|
void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Setup Stage callback */
|
||||||
|
void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Reset callback */
|
||||||
|
void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Suspend callback */
|
||||||
|
void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Resume callback */
|
||||||
|
void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Connect callback */
|
||||||
|
void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Disconnect callback */
|
||||||
|
|
||||||
|
void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data OUT Stage callback */
|
||||||
|
void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data IN Stage callback */
|
||||||
|
void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO OUT Incomplete callback */
|
||||||
|
void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO IN Incomplete callback */
|
||||||
|
void (* BCDCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< USB OTG PCD BCD callback */
|
||||||
|
void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< USB OTG PCD LPM callback */
|
||||||
|
|
||||||
|
void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp Init callback */
|
||||||
|
void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp DeInit callback */
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
} PCD_HandleTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Include PCD HAL Extended module */
|
||||||
|
#include "stm32f4xx_hal_pcd_ex.h"
|
||||||
|
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/** @defgroup PCD_Exported_Constants PCD Exported Constants
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup PCD_Speed PCD Speed
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define PCD_SPEED_HIGH USBD_HS_SPEED
|
||||||
|
#define PCD_SPEED_HIGH_IN_FULL USBD_HSINFS_SPEED
|
||||||
|
#define PCD_SPEED_FULL USBD_FS_SPEED
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup PCD_PHY_Module PCD PHY Module
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define PCD_PHY_ULPI 1U
|
||||||
|
#define PCD_PHY_EMBEDDED 2U
|
||||||
|
#define PCD_PHY_UTMI 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup PCD_Error_Code_definition PCD Error Code definition
|
||||||
|
* @brief PCD Error Code definition
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
#define HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) /*!< Invalid Callback error */
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported macros -----------------------------------------------------------*/
|
||||||
|
/** @defgroup PCD_Exported_Macros PCD Exported Macros
|
||||||
|
* @brief macros to handle interrupts and specific clock configurations
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance)
|
||||||
|
#define __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance)
|
||||||
|
|
||||||
|
#define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) \
|
||||||
|
((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__))
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__))
|
||||||
|
#define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U)
|
||||||
|
|
||||||
|
#define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) \
|
||||||
|
*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK)
|
||||||
|
|
||||||
|
#define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) \
|
||||||
|
*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK
|
||||||
|
|
||||||
|
#define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) \
|
||||||
|
((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE)) & 0x10U)
|
||||||
|
|
||||||
|
#define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= (USB_OTG_HS_WAKEUP_EXTI_LINE)
|
||||||
|
#define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE)
|
||||||
|
#define __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_HS_WAKEUP_EXTI_LINE)
|
||||||
|
#define __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = (USB_OTG_HS_WAKEUP_EXTI_LINE)
|
||||||
|
|
||||||
|
#define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE() \
|
||||||
|
do { \
|
||||||
|
EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE); \
|
||||||
|
EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE; \
|
||||||
|
} while(0U)
|
||||||
|
#define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_OTG_FS_WAKEUP_EXTI_LINE
|
||||||
|
#define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE)
|
||||||
|
#define __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_FS_WAKEUP_EXTI_LINE)
|
||||||
|
#define __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = USB_OTG_FS_WAKEUP_EXTI_LINE
|
||||||
|
|
||||||
|
#define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE() \
|
||||||
|
do { \
|
||||||
|
EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE); \
|
||||||
|
EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE; \
|
||||||
|
} while(0U)
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported functions --------------------------------------------------------*/
|
||||||
|
/** @addtogroup PCD_Exported_Functions PCD Exported Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Initialization/de-initialization functions ********************************/
|
||||||
|
/** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
/** @defgroup HAL_PCD_Callback_ID_enumeration_definition HAL USB OTG PCD Callback ID enumeration definition
|
||||||
|
* @brief HAL USB OTG PCD Callback ID enumeration definition
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HAL_PCD_SOF_CB_ID = 0x01, /*!< USB PCD SOF callback ID */
|
||||||
|
HAL_PCD_SETUPSTAGE_CB_ID = 0x02, /*!< USB PCD Setup Stage callback ID */
|
||||||
|
HAL_PCD_RESET_CB_ID = 0x03, /*!< USB PCD Reset callback ID */
|
||||||
|
HAL_PCD_SUSPEND_CB_ID = 0x04, /*!< USB PCD Suspend callback ID */
|
||||||
|
HAL_PCD_RESUME_CB_ID = 0x05, /*!< USB PCD Resume callback ID */
|
||||||
|
HAL_PCD_CONNECT_CB_ID = 0x06, /*!< USB PCD Connect callback ID */
|
||||||
|
HAL_PCD_DISCONNECT_CB_ID = 0x07, /*!< USB PCD Disconnect callback ID */
|
||||||
|
|
||||||
|
HAL_PCD_MSPINIT_CB_ID = 0x08, /*!< USB PCD MspInit callback ID */
|
||||||
|
HAL_PCD_MSPDEINIT_CB_ID = 0x09 /*!< USB PCD MspDeInit callback ID */
|
||||||
|
|
||||||
|
} HAL_PCD_CallbackIDTypeDef;
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup HAL_PCD_Callback_pointer_definition HAL USB OTG PCD Callback pointer definition
|
||||||
|
* @brief HAL USB OTG PCD Callback pointer definition
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef void (*pPCD_CallbackTypeDef)(PCD_HandleTypeDef *hpcd); /*!< pointer to a common USB OTG PCD callback function */
|
||||||
|
typedef void (*pPCD_DataOutStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data OUT Stage callback */
|
||||||
|
typedef void (*pPCD_DataInStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data IN Stage callback */
|
||||||
|
typedef void (*pPCD_IsoOutIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO OUT Incomplete callback */
|
||||||
|
typedef void (*pPCD_IsoInIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO IN Incomplete callback */
|
||||||
|
typedef void (*pPCD_LpmCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< pointer to USB OTG PCD LPM callback */
|
||||||
|
typedef void (*pPCD_BcdCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< pointer to USB OTG PCD BCD callback */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID,
|
||||||
|
pPCD_CallbackTypeDef pCallback);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd,
|
||||||
|
pPCD_DataOutStageCallbackTypeDef pCallback);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd,
|
||||||
|
pPCD_DataInStageCallbackTypeDef pCallback);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd,
|
||||||
|
pPCD_IsoOutIncpltCallbackTypeDef pCallback);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd,
|
||||||
|
pPCD_IsoInIncpltCallbackTypeDef pCallback);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCallback);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* I/O operation functions ***************************************************/
|
||||||
|
/* Non-Blocking mode: Interrupt */
|
||||||
|
/** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);
|
||||||
|
|
||||||
|
void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
|
||||||
|
void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
|
||||||
|
void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
|
||||||
|
void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Peripheral Control functions **********************************************/
|
||||||
|
/** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
HAL_StatusTypeDef HAL_PCD_SetTestMode(const PCD_HandleTypeDef *hpcd, uint8_t testmode);
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr);
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Peripheral State functions ************************************************/
|
||||||
|
/** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd);
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Private constants ---------------------------------------------------------*/
|
||||||
|
/** @defgroup PCD_Private_Constants PCD Private Constants
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
#define USB_OTG_FS_WAKEUP_EXTI_LINE (0x1U << 18) /*!< USB FS EXTI Line WakeUp Interrupt */
|
||||||
|
#define USB_OTG_HS_WAKEUP_EXTI_LINE (0x1U << 20) /*!< USB HS EXTI Line WakeUp Interrupt */
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
#ifndef USB_OTG_DOEPINT_OTEPSPR
|
||||||
|
#define USB_OTG_DOEPINT_OTEPSPR (0x1UL << 5) /*!< Status Phase Received interrupt */
|
||||||
|
#endif /* defined USB_OTG_DOEPINT_OTEPSPR */
|
||||||
|
|
||||||
|
#ifndef USB_OTG_DOEPMSK_OTEPSPRM
|
||||||
|
#define USB_OTG_DOEPMSK_OTEPSPRM (0x1UL << 5) /*!< Setup Packet Received interrupt mask */
|
||||||
|
#endif /* defined USB_OTG_DOEPMSK_OTEPSPRM */
|
||||||
|
|
||||||
|
#ifndef USB_OTG_DOEPINT_NAK
|
||||||
|
#define USB_OTG_DOEPINT_NAK (0x1UL << 13) /*!< NAK interrupt */
|
||||||
|
#endif /* defined USB_OTG_DOEPINT_NAK */
|
||||||
|
|
||||||
|
#ifndef USB_OTG_DOEPMSK_NAKM
|
||||||
|
#define USB_OTG_DOEPMSK_NAKM (0x1UL << 13) /*!< OUT Packet NAK interrupt mask */
|
||||||
|
#endif /* defined USB_OTG_DOEPMSK_NAKM */
|
||||||
|
|
||||||
|
#ifndef USB_OTG_DOEPINT_STPKTRX
|
||||||
|
#define USB_OTG_DOEPINT_STPKTRX (0x1UL << 15) /*!< Setup Packet Received interrupt */
|
||||||
|
#endif /* defined USB_OTG_DOEPINT_STPKTRX */
|
||||||
|
|
||||||
|
#ifndef USB_OTG_DOEPMSK_NYETM
|
||||||
|
#define USB_OTG_DOEPMSK_NYETM (0x1UL << 14) /*!< Setup Packet Received interrupt mask */
|
||||||
|
#endif /* defined USB_OTG_DOEPMSK_NYETM */
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
/* Private macros ------------------------------------------------------------*/
|
||||||
|
/** @defgroup PCD_Private_Macros PCD Private Macros
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* STM32F4xx_HAL_PCD_H */
|
||||||
94
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h
Normal file
94
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_hal_pcd_ex.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief Header file of PCD HAL Extension module.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef STM32F4xx_HAL_PCD_EX_H
|
||||||
|
#define STM32F4xx_HAL_PCD_EX_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stm32f4xx_hal_def.h"
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/** @addtogroup STM32F4xx_HAL_Driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup PCDEx
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Exported macros -----------------------------------------------------------*/
|
||||||
|
/* Exported functions --------------------------------------------------------*/
|
||||||
|
/** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size);
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size);
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) \
|
||||||
|
|| defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) \
|
||||||
|
|| defined(STM32F423xx)
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
|
||||||
|
#endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||
|
||||||
|
defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) ||
|
||||||
|
defined(STM32F423xx) */
|
||||||
|
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) \
|
||||||
|
|| defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
|
||||||
|
void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
|
||||||
|
#endif /* defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) ||
|
||||||
|
defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) */
|
||||||
|
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
|
||||||
|
void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* STM32F4xx_HAL_PCD_EX_H */
|
||||||
909
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
Normal file
909
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
Normal file
@@ -0,0 +1,909 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_hal_uart.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief Header file of UART HAL module.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __STM32F4xx_HAL_UART_H
|
||||||
|
#define __STM32F4xx_HAL_UART_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stm32f4xx_hal_def.h"
|
||||||
|
|
||||||
|
/** @addtogroup STM32F4xx_HAL_Driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup UART
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Exported_Types UART Exported Types
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART Init Structure definition
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t BaudRate; /*!< This member configures the UART communication baud rate.
|
||||||
|
The baud rate is computed using the following formula:
|
||||||
|
- IntegerDivider = ((PCLKx) / (8 * (OVR8+1) * (huart->Init.BaudRate)))
|
||||||
|
- FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 8 * (OVR8+1)) + 0.5
|
||||||
|
Where OVR8 is the "oversampling by 8 mode" configuration bit in the CR1 register. */
|
||||||
|
|
||||||
|
uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
|
||||||
|
This parameter can be a value of @ref UART_Word_Length */
|
||||||
|
|
||||||
|
uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
|
||||||
|
This parameter can be a value of @ref UART_Stop_Bits */
|
||||||
|
|
||||||
|
uint32_t Parity; /*!< Specifies the parity mode.
|
||||||
|
This parameter can be a value of @ref UART_Parity
|
||||||
|
@note When parity is enabled, the computed parity is inserted
|
||||||
|
at the MSB position of the transmitted data (9th bit when
|
||||||
|
the word length is set to 9 data bits; 8th bit when the
|
||||||
|
word length is set to 8 data bits). */
|
||||||
|
|
||||||
|
uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
|
||||||
|
This parameter can be a value of @ref UART_Mode */
|
||||||
|
|
||||||
|
uint32_t HwFlowCtl; /*!< Specifies whether the hardware flow control mode is enabled or disabled.
|
||||||
|
This parameter can be a value of @ref UART_Hardware_Flow_Control */
|
||||||
|
|
||||||
|
uint32_t OverSampling; /*!< Specifies whether the Over sampling 8 is enabled or disabled, to achieve higher speed (up to fPCLK/8).
|
||||||
|
This parameter can be a value of @ref UART_Over_Sampling */
|
||||||
|
} UART_InitTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HAL UART State structures definition
|
||||||
|
* @note HAL UART State value is a combination of 2 different substates: gState and RxState.
|
||||||
|
* - gState contains UART state information related to global Handle management
|
||||||
|
* and also information related to Tx operations.
|
||||||
|
* gState value coding follow below described bitmap :
|
||||||
|
* b7-b6 Error information
|
||||||
|
* 00 : No Error
|
||||||
|
* 01 : (Not Used)
|
||||||
|
* 10 : Timeout
|
||||||
|
* 11 : Error
|
||||||
|
* b5 Peripheral initialization status
|
||||||
|
* 0 : Reset (Peripheral not initialized)
|
||||||
|
* 1 : Init done (Peripheral initialized. HAL UART Init function already called)
|
||||||
|
* b4-b3 (not used)
|
||||||
|
* xx : Should be set to 00
|
||||||
|
* b2 Intrinsic process state
|
||||||
|
* 0 : Ready
|
||||||
|
* 1 : Busy (Peripheral busy with some configuration or internal operations)
|
||||||
|
* b1 (not used)
|
||||||
|
* x : Should be set to 0
|
||||||
|
* b0 Tx state
|
||||||
|
* 0 : Ready (no Tx operation ongoing)
|
||||||
|
* 1 : Busy (Tx operation ongoing)
|
||||||
|
* - RxState contains information related to Rx operations.
|
||||||
|
* RxState value coding follow below described bitmap :
|
||||||
|
* b7-b6 (not used)
|
||||||
|
* xx : Should be set to 00
|
||||||
|
* b5 Peripheral initialization status
|
||||||
|
* 0 : Reset (Peripheral not initialized)
|
||||||
|
* 1 : Init done (Peripheral initialized)
|
||||||
|
* b4-b2 (not used)
|
||||||
|
* xxx : Should be set to 000
|
||||||
|
* b1 Rx state
|
||||||
|
* 0 : Ready (no Rx operation ongoing)
|
||||||
|
* 1 : Busy (Rx operation ongoing)
|
||||||
|
* b0 (not used)
|
||||||
|
* x : Should be set to 0.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HAL_UART_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized
|
||||||
|
Value is allowed for gState and RxState */
|
||||||
|
HAL_UART_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use
|
||||||
|
Value is allowed for gState and RxState */
|
||||||
|
HAL_UART_STATE_BUSY = 0x24U, /*!< an internal process is ongoing
|
||||||
|
Value is allowed for gState only */
|
||||||
|
HAL_UART_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing
|
||||||
|
Value is allowed for gState only */
|
||||||
|
HAL_UART_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing
|
||||||
|
Value is allowed for RxState only */
|
||||||
|
HAL_UART_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing
|
||||||
|
Not to be used for neither gState nor RxState.
|
||||||
|
Value is result of combination (Or) between gState and RxState values */
|
||||||
|
HAL_UART_STATE_TIMEOUT = 0xA0U, /*!< Timeout state
|
||||||
|
Value is allowed for gState only */
|
||||||
|
HAL_UART_STATE_ERROR = 0xE0U /*!< Error
|
||||||
|
Value is allowed for gState only */
|
||||||
|
} HAL_UART_StateTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HAL UART Reception type definition
|
||||||
|
* @note HAL UART Reception type value aims to identify which type of Reception is ongoing.
|
||||||
|
* This parameter can be a value of @ref UART_Reception_Type_Values :
|
||||||
|
* HAL_UART_RECEPTION_STANDARD = 0x00U,
|
||||||
|
* HAL_UART_RECEPTION_TOIDLE = 0x01U,
|
||||||
|
*/
|
||||||
|
typedef uint32_t HAL_UART_RxTypeTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HAL UART Rx Event type definition
|
||||||
|
* @note HAL UART Rx Event type value aims to identify which type of Event has occurred
|
||||||
|
* leading to call of the RxEvent callback.
|
||||||
|
* This parameter can be a value of @ref UART_RxEvent_Type_Values :
|
||||||
|
* HAL_UART_RXEVENT_TC = 0x00U,
|
||||||
|
* HAL_UART_RXEVENT_HT = 0x01U,
|
||||||
|
* HAL_UART_RXEVENT_IDLE = 0x02U,
|
||||||
|
*/
|
||||||
|
typedef uint32_t HAL_UART_RxEventTypeTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART handle Structure definition
|
||||||
|
*/
|
||||||
|
typedef struct __UART_HandleTypeDef
|
||||||
|
{
|
||||||
|
USART_TypeDef *Instance; /*!< UART registers base address */
|
||||||
|
|
||||||
|
UART_InitTypeDef Init; /*!< UART communication parameters */
|
||||||
|
|
||||||
|
const uint8_t *pTxBuffPtr; /*!< Pointer to UART Tx transfer Buffer */
|
||||||
|
|
||||||
|
uint16_t TxXferSize; /*!< UART Tx Transfer size */
|
||||||
|
|
||||||
|
__IO uint16_t TxXferCount; /*!< UART Tx Transfer Counter */
|
||||||
|
|
||||||
|
uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */
|
||||||
|
|
||||||
|
uint16_t RxXferSize; /*!< UART Rx Transfer size */
|
||||||
|
|
||||||
|
__IO uint16_t RxXferCount; /*!< UART Rx Transfer Counter */
|
||||||
|
|
||||||
|
__IO HAL_UART_RxTypeTypeDef ReceptionType; /*!< Type of ongoing reception */
|
||||||
|
|
||||||
|
__IO HAL_UART_RxEventTypeTypeDef RxEventType; /*!< Type of Rx Event */
|
||||||
|
|
||||||
|
DMA_HandleTypeDef *hdmatx; /*!< UART Tx DMA Handle parameters */
|
||||||
|
|
||||||
|
DMA_HandleTypeDef *hdmarx; /*!< UART Rx DMA Handle parameters */
|
||||||
|
|
||||||
|
HAL_LockTypeDef Lock; /*!< Locking object */
|
||||||
|
|
||||||
|
__IO HAL_UART_StateTypeDef gState; /*!< UART state information related to global Handle management
|
||||||
|
and also related to Tx operations.
|
||||||
|
This parameter can be a value of @ref HAL_UART_StateTypeDef */
|
||||||
|
|
||||||
|
__IO HAL_UART_StateTypeDef RxState; /*!< UART state information related to Rx operations.
|
||||||
|
This parameter can be a value of @ref HAL_UART_StateTypeDef */
|
||||||
|
|
||||||
|
__IO uint32_t ErrorCode; /*!< UART Error code */
|
||||||
|
|
||||||
|
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
|
||||||
|
void (* TxHalfCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Tx Half Complete Callback */
|
||||||
|
void (* TxCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Tx Complete Callback */
|
||||||
|
void (* RxHalfCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Rx Half Complete Callback */
|
||||||
|
void (* RxCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Rx Complete Callback */
|
||||||
|
void (* ErrorCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Error Callback */
|
||||||
|
void (* AbortCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Complete Callback */
|
||||||
|
void (* AbortTransmitCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Transmit Complete Callback */
|
||||||
|
void (* AbortReceiveCpltCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Abort Receive Complete Callback */
|
||||||
|
void (* WakeupCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Wakeup Callback */
|
||||||
|
void (* RxEventCallback)(struct __UART_HandleTypeDef *huart, uint16_t Pos); /*!< UART Reception Event Callback */
|
||||||
|
|
||||||
|
void (* MspInitCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Msp Init callback */
|
||||||
|
void (* MspDeInitCallback)(struct __UART_HandleTypeDef *huart); /*!< UART Msp DeInit callback */
|
||||||
|
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
|
||||||
|
|
||||||
|
} UART_HandleTypeDef;
|
||||||
|
|
||||||
|
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
|
||||||
|
/**
|
||||||
|
* @brief HAL UART Callback ID enumeration definition
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HAL_UART_TX_HALFCOMPLETE_CB_ID = 0x00U, /*!< UART Tx Half Complete Callback ID */
|
||||||
|
HAL_UART_TX_COMPLETE_CB_ID = 0x01U, /*!< UART Tx Complete Callback ID */
|
||||||
|
HAL_UART_RX_HALFCOMPLETE_CB_ID = 0x02U, /*!< UART Rx Half Complete Callback ID */
|
||||||
|
HAL_UART_RX_COMPLETE_CB_ID = 0x03U, /*!< UART Rx Complete Callback ID */
|
||||||
|
HAL_UART_ERROR_CB_ID = 0x04U, /*!< UART Error Callback ID */
|
||||||
|
HAL_UART_ABORT_COMPLETE_CB_ID = 0x05U, /*!< UART Abort Complete Callback ID */
|
||||||
|
HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U, /*!< UART Abort Transmit Complete Callback ID */
|
||||||
|
HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U, /*!< UART Abort Receive Complete Callback ID */
|
||||||
|
HAL_UART_WAKEUP_CB_ID = 0x08U, /*!< UART Wakeup Callback ID */
|
||||||
|
|
||||||
|
HAL_UART_MSPINIT_CB_ID = 0x0BU, /*!< UART MspInit callback ID */
|
||||||
|
HAL_UART_MSPDEINIT_CB_ID = 0x0CU /*!< UART MspDeInit callback ID */
|
||||||
|
|
||||||
|
} HAL_UART_CallbackIDTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HAL UART Callback pointer definition
|
||||||
|
*/
|
||||||
|
typedef void (*pUART_CallbackTypeDef)(UART_HandleTypeDef *huart); /*!< pointer to an UART callback function */
|
||||||
|
typedef void (*pUART_RxEventCallbackTypeDef)(struct __UART_HandleTypeDef *huart, uint16_t Pos); /*!< pointer to a UART Rx Event specific callback function */
|
||||||
|
|
||||||
|
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Exported_Constants UART Exported Constants
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Error_Code UART Error Code
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HAL_UART_ERROR_NONE 0x00000000U /*!< No error */
|
||||||
|
#define HAL_UART_ERROR_PE 0x00000001U /*!< Parity error */
|
||||||
|
#define HAL_UART_ERROR_NE 0x00000002U /*!< Noise error */
|
||||||
|
#define HAL_UART_ERROR_FE 0x00000004U /*!< Frame error */
|
||||||
|
#define HAL_UART_ERROR_ORE 0x00000008U /*!< Overrun error */
|
||||||
|
#define HAL_UART_ERROR_DMA 0x00000010U /*!< DMA transfer error */
|
||||||
|
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
|
||||||
|
#define HAL_UART_ERROR_INVALID_CALLBACK 0x00000020U /*!< Invalid Callback error */
|
||||||
|
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Word_Length UART Word Length
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_WORDLENGTH_8B 0x00000000U
|
||||||
|
#define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Stop_Bits UART Number of Stop Bits
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_STOPBITS_1 0x00000000U
|
||||||
|
#define UART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Parity UART Parity
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_PARITY_NONE 0x00000000U
|
||||||
|
#define UART_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
|
||||||
|
#define UART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Hardware_Flow_Control UART Hardware Flow Control
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_HWCONTROL_NONE 0x00000000U
|
||||||
|
#define UART_HWCONTROL_RTS ((uint32_t)USART_CR3_RTSE)
|
||||||
|
#define UART_HWCONTROL_CTS ((uint32_t)USART_CR3_CTSE)
|
||||||
|
#define UART_HWCONTROL_RTS_CTS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE))
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Mode UART Transfer Mode
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_MODE_RX ((uint32_t)USART_CR1_RE)
|
||||||
|
#define UART_MODE_TX ((uint32_t)USART_CR1_TE)
|
||||||
|
#define UART_MODE_TX_RX ((uint32_t)(USART_CR1_TE | USART_CR1_RE))
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_State UART State
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_STATE_DISABLE 0x00000000U
|
||||||
|
#define UART_STATE_ENABLE ((uint32_t)USART_CR1_UE)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Over_Sampling UART Over Sampling
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_OVERSAMPLING_16 0x00000000U
|
||||||
|
#define UART_OVERSAMPLING_8 ((uint32_t)USART_CR1_OVER8)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_LIN_Break_Detection_Length UART LIN Break Detection Length
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_LINBREAKDETECTLENGTH_10B 0x00000000U
|
||||||
|
#define UART_LINBREAKDETECTLENGTH_11B ((uint32_t)USART_CR2_LBDL)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_WakeUp_functions UART Wakeup Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_WAKEUPMETHOD_IDLELINE 0x00000000U
|
||||||
|
#define UART_WAKEUPMETHOD_ADDRESSMARK ((uint32_t)USART_CR1_WAKE)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Flags UART FLags
|
||||||
|
* Elements values convention: 0xXXXX
|
||||||
|
* - 0xXXXX : Flag mask in the SR register
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define UART_FLAG_CTS ((uint32_t)USART_SR_CTS)
|
||||||
|
#define UART_FLAG_LBD ((uint32_t)USART_SR_LBD)
|
||||||
|
#define UART_FLAG_TXE ((uint32_t)USART_SR_TXE)
|
||||||
|
#define UART_FLAG_TC ((uint32_t)USART_SR_TC)
|
||||||
|
#define UART_FLAG_RXNE ((uint32_t)USART_SR_RXNE)
|
||||||
|
#define UART_FLAG_IDLE ((uint32_t)USART_SR_IDLE)
|
||||||
|
#define UART_FLAG_ORE ((uint32_t)USART_SR_ORE)
|
||||||
|
#define UART_FLAG_NE ((uint32_t)USART_SR_NE)
|
||||||
|
#define UART_FLAG_FE ((uint32_t)USART_SR_FE)
|
||||||
|
#define UART_FLAG_PE ((uint32_t)USART_SR_PE)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Interrupt_definition UART Interrupt Definitions
|
||||||
|
* Elements values convention: 0xY000XXXX
|
||||||
|
* - XXXX : Interrupt mask (16 bits) in the Y register
|
||||||
|
* - Y : Interrupt source register (2bits)
|
||||||
|
* - 0001: CR1 register
|
||||||
|
* - 0010: CR2 register
|
||||||
|
* - 0011: CR3 register
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define UART_IT_PE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_PEIE))
|
||||||
|
#define UART_IT_TXE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_TXEIE))
|
||||||
|
#define UART_IT_TC ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_TCIE))
|
||||||
|
#define UART_IT_RXNE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE))
|
||||||
|
#define UART_IT_IDLE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE))
|
||||||
|
|
||||||
|
#define UART_IT_LBD ((uint32_t)(UART_CR2_REG_INDEX << 28U | USART_CR2_LBDIE))
|
||||||
|
|
||||||
|
#define UART_IT_CTS ((uint32_t)(UART_CR3_REG_INDEX << 28U | USART_CR3_CTSIE))
|
||||||
|
#define UART_IT_ERR ((uint32_t)(UART_CR3_REG_INDEX << 28U | USART_CR3_EIE))
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_Reception_Type_Values UART Reception type values
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HAL_UART_RECEPTION_STANDARD (0x00000000U) /*!< Standard reception */
|
||||||
|
#define HAL_UART_RECEPTION_TOIDLE (0x00000001U) /*!< Reception till completion or IDLE event */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup UART_RxEvent_Type_Values UART RxEvent type values
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HAL_UART_RXEVENT_TC (0x00000000U) /*!< RxEvent linked to Transfer Complete event */
|
||||||
|
#define HAL_UART_RXEVENT_HT (0x00000001U) /*!< RxEvent linked to Half Transfer event */
|
||||||
|
#define HAL_UART_RXEVENT_IDLE (0x00000002U)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Exported_Macros UART Exported Macros
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @brief Reset UART handle gstate & RxState
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
|
||||||
|
#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \
|
||||||
|
(__HANDLE__)->gState = HAL_UART_STATE_RESET; \
|
||||||
|
(__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
|
||||||
|
(__HANDLE__)->MspInitCallback = NULL; \
|
||||||
|
(__HANDLE__)->MspDeInitCallback = NULL; \
|
||||||
|
} while(0U)
|
||||||
|
#else
|
||||||
|
#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \
|
||||||
|
(__HANDLE__)->gState = HAL_UART_STATE_RESET; \
|
||||||
|
(__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
|
||||||
|
} while(0U)
|
||||||
|
#endif /*USE_HAL_UART_REGISTER_CALLBACKS */
|
||||||
|
|
||||||
|
/** @brief Flushes the UART DR register
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__) ((__HANDLE__)->Instance->DR)
|
||||||
|
|
||||||
|
/** @brief Checks whether the specified UART flag is set or not.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @param __FLAG__ specifies the flag to check.
|
||||||
|
* This parameter can be one of the following values:
|
||||||
|
* @arg UART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5)
|
||||||
|
* @arg UART_FLAG_LBD: LIN Break detection flag
|
||||||
|
* @arg UART_FLAG_TXE: Transmit data register empty flag
|
||||||
|
* @arg UART_FLAG_TC: Transmission Complete flag
|
||||||
|
* @arg UART_FLAG_RXNE: Receive data register not empty flag
|
||||||
|
* @arg UART_FLAG_IDLE: Idle Line detection flag
|
||||||
|
* @arg UART_FLAG_ORE: Overrun Error flag
|
||||||
|
* @arg UART_FLAG_NE: Noise Error flag
|
||||||
|
* @arg UART_FLAG_FE: Framing Error flag
|
||||||
|
* @arg UART_FLAG_PE: Parity Error flag
|
||||||
|
* @retval The new state of __FLAG__ (TRUE or FALSE).
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
|
||||||
|
|
||||||
|
/** @brief Clears the specified UART pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @param __FLAG__ specifies the flag to check.
|
||||||
|
* This parameter can be any combination of the following values:
|
||||||
|
* @arg UART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5).
|
||||||
|
* @arg UART_FLAG_LBD: LIN Break detection flag.
|
||||||
|
* @arg UART_FLAG_TC: Transmission Complete flag.
|
||||||
|
* @arg UART_FLAG_RXNE: Receive data register not empty flag.
|
||||||
|
*
|
||||||
|
* @note PE (Parity error), FE (Framing error), NE (Noise error), ORE (Overrun
|
||||||
|
* error) and IDLE (Idle line detected) flags are cleared by software
|
||||||
|
* sequence: a read operation to USART_SR register followed by a read
|
||||||
|
* operation to USART_DR register.
|
||||||
|
* @note RXNE flag can be also cleared by a read to the USART_DR register.
|
||||||
|
* @note TC flag can be also cleared by software sequence: a read operation to
|
||||||
|
* USART_SR register followed by a write operation to USART_DR register.
|
||||||
|
* @note TXE flag is cleared only by a write to the USART_DR register.
|
||||||
|
*
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
|
||||||
|
|
||||||
|
/** @brief Clears the UART PE pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) \
|
||||||
|
do{ \
|
||||||
|
__IO uint32_t tmpreg = 0x00U; \
|
||||||
|
tmpreg = (__HANDLE__)->Instance->SR; \
|
||||||
|
tmpreg = (__HANDLE__)->Instance->DR; \
|
||||||
|
UNUSED(tmpreg); \
|
||||||
|
} while(0U)
|
||||||
|
|
||||||
|
/** @brief Clears the UART FE pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_FEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
|
||||||
|
|
||||||
|
/** @brief Clears the UART NE pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_NEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
|
||||||
|
|
||||||
|
/** @brief Clears the UART ORE pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
|
||||||
|
|
||||||
|
/** @brief Clears the UART IDLE pending flag.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
|
||||||
|
|
||||||
|
/** @brief Enable the specified UART interrupt.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @param __INTERRUPT__ specifies the UART interrupt source to enable.
|
||||||
|
* This parameter can be one of the following values:
|
||||||
|
* @arg UART_IT_CTS: CTS change interrupt
|
||||||
|
* @arg UART_IT_LBD: LIN Break detection interrupt
|
||||||
|
* @arg UART_IT_TXE: Transmit Data Register empty interrupt
|
||||||
|
* @arg UART_IT_TC: Transmission complete interrupt
|
||||||
|
* @arg UART_IT_RXNE: Receive Data register not empty interrupt
|
||||||
|
* @arg UART_IT_IDLE: Idle line detection interrupt
|
||||||
|
* @arg UART_IT_PE: Parity Error interrupt
|
||||||
|
* @arg UART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & UART_IT_MASK)): \
|
||||||
|
(((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & UART_IT_MASK)): \
|
||||||
|
((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & UART_IT_MASK)))
|
||||||
|
|
||||||
|
/** @brief Disable the specified UART interrupt.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @param __INTERRUPT__ specifies the UART interrupt source to disable.
|
||||||
|
* This parameter can be one of the following values:
|
||||||
|
* @arg UART_IT_CTS: CTS change interrupt
|
||||||
|
* @arg UART_IT_LBD: LIN Break detection interrupt
|
||||||
|
* @arg UART_IT_TXE: Transmit Data Register empty interrupt
|
||||||
|
* @arg UART_IT_TC: Transmission complete interrupt
|
||||||
|
* @arg UART_IT_RXNE: Receive Data register not empty interrupt
|
||||||
|
* @arg UART_IT_IDLE: Idle line detection interrupt
|
||||||
|
* @arg UART_IT_PE: Parity Error interrupt
|
||||||
|
* @arg UART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
|
||||||
|
(((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
|
||||||
|
((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & UART_IT_MASK)))
|
||||||
|
|
||||||
|
/** @brief Checks whether the specified UART interrupt source is enabled or not.
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* UART Handle selects the USARTx or UARTy peripheral
|
||||||
|
* (USART,UART availability and x,y values depending on device).
|
||||||
|
* @param __IT__ specifies the UART interrupt source to check.
|
||||||
|
* This parameter can be one of the following values:
|
||||||
|
* @arg UART_IT_CTS: CTS change interrupt (not available for UART4 and UART5)
|
||||||
|
* @arg UART_IT_LBD: LIN Break detection interrupt
|
||||||
|
* @arg UART_IT_TXE: Transmit Data Register empty interrupt
|
||||||
|
* @arg UART_IT_TC: Transmission complete interrupt
|
||||||
|
* @arg UART_IT_RXNE: Receive Data register not empty interrupt
|
||||||
|
* @arg UART_IT_IDLE: Idle line detection interrupt
|
||||||
|
* @arg UART_IT_ERR: Error interrupt
|
||||||
|
* @retval The new state of __IT__ (TRUE or FALSE).
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == UART_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == UART_CR2_REG_INDEX)? \
|
||||||
|
(__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & UART_IT_MASK))
|
||||||
|
|
||||||
|
/** @brief Enable CTS flow control
|
||||||
|
* @note This macro allows to enable CTS hardware flow control for a given UART instance,
|
||||||
|
* without need to call HAL_UART_Init() function.
|
||||||
|
* As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
|
||||||
|
* @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
|
||||||
|
* for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
|
||||||
|
* - UART instance should have already been initialised (through call of HAL_UART_Init() )
|
||||||
|
* - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
|
||||||
|
* and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)).
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* The Handle Instance can be any USARTx (supporting the HW Flow control feature).
|
||||||
|
* It is used to select the USART peripheral (USART availability and x value depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__) \
|
||||||
|
do{ \
|
||||||
|
ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
|
||||||
|
(__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \
|
||||||
|
} while(0U)
|
||||||
|
|
||||||
|
/** @brief Disable CTS flow control
|
||||||
|
* @note This macro allows to disable CTS hardware flow control for a given UART instance,
|
||||||
|
* without need to call HAL_UART_Init() function.
|
||||||
|
* As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
|
||||||
|
* @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
|
||||||
|
* for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
|
||||||
|
* - UART instance should have already been initialised (through call of HAL_UART_Init() )
|
||||||
|
* - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
|
||||||
|
* and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)).
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* The Handle Instance can be any USARTx (supporting the HW Flow control feature).
|
||||||
|
* It is used to select the USART peripheral (USART availability and x value depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__) \
|
||||||
|
do{ \
|
||||||
|
ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
|
||||||
|
(__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \
|
||||||
|
} while(0U)
|
||||||
|
|
||||||
|
/** @brief Enable RTS flow control
|
||||||
|
* This macro allows to enable RTS hardware flow control for a given UART instance,
|
||||||
|
* without need to call HAL_UART_Init() function.
|
||||||
|
* As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
|
||||||
|
* @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
|
||||||
|
* for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
|
||||||
|
* - UART instance should have already been initialised (through call of HAL_UART_Init() )
|
||||||
|
* - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
|
||||||
|
* and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)).
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* The Handle Instance can be any USARTx (supporting the HW Flow control feature).
|
||||||
|
* It is used to select the USART peripheral (USART availability and x value depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__) \
|
||||||
|
do{ \
|
||||||
|
ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
|
||||||
|
(__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \
|
||||||
|
} while(0U)
|
||||||
|
|
||||||
|
/** @brief Disable RTS flow control
|
||||||
|
* This macro allows to disable RTS hardware flow control for a given UART instance,
|
||||||
|
* without need to call HAL_UART_Init() function.
|
||||||
|
* As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
|
||||||
|
* @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
|
||||||
|
* for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
|
||||||
|
* - UART instance should have already been initialised (through call of HAL_UART_Init() )
|
||||||
|
* - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
|
||||||
|
* and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)).
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* The Handle Instance can be any USARTx (supporting the HW Flow control feature).
|
||||||
|
* It is used to select the USART peripheral (USART availability and x value depending on device).
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__) \
|
||||||
|
do{ \
|
||||||
|
ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
|
||||||
|
(__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \
|
||||||
|
} while(0U)
|
||||||
|
|
||||||
|
/** @brief Macro to enable the UART's one bit sample method
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
|
||||||
|
|
||||||
|
/** @brief Macro to disable the UART's one bit sample method
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3\
|
||||||
|
&= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))
|
||||||
|
|
||||||
|
/** @brief Enable UART
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
|
||||||
|
|
||||||
|
/** @brief Disable UART
|
||||||
|
* @param __HANDLE__ specifies the UART Handle.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define __HAL_UART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported functions --------------------------------------------------------*/
|
||||||
|
/** @addtogroup UART_Exported_Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup UART_Exported_Functions_Group1 Initialization and de-initialization functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Initialization/de-initialization functions **********************************/
|
||||||
|
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
|
||||||
|
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
|
||||||
|
HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_MspInit(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart);
|
||||||
|
|
||||||
|
/* Callbacks Register/UnRegister functions ***********************************/
|
||||||
|
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
|
||||||
|
HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID,
|
||||||
|
pUART_CallbackTypeDef pCallback);
|
||||||
|
HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallbackTypeDef pCallback);
|
||||||
|
HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart);
|
||||||
|
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup UART_Exported_Functions_Group2 IO operation functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IO operation functions *******************************************************/
|
||||||
|
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen,
|
||||||
|
uint32_t Timeout);
|
||||||
|
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
|
||||||
|
HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart);
|
||||||
|
|
||||||
|
/* Transfer Abort functions */
|
||||||
|
HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart);
|
||||||
|
|
||||||
|
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart);
|
||||||
|
|
||||||
|
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup UART_Exported_Functions_Group3
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/* Peripheral Control functions ************************************************/
|
||||||
|
HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart);
|
||||||
|
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart);
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup UART_Exported_Functions_Group4
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/* Peripheral State functions **************************************************/
|
||||||
|
HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart);
|
||||||
|
uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart);
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
/* Private types -------------------------------------------------------------*/
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* Private constants ---------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Private_Constants UART Private Constants
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/** @brief UART interruptions flag mask
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define UART_IT_MASK 0x0000FFFFU
|
||||||
|
|
||||||
|
#define UART_CR1_REG_INDEX 1U
|
||||||
|
#define UART_CR2_REG_INDEX 2U
|
||||||
|
#define UART_CR3_REG_INDEX 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Private macros ------------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Private_Macros UART Private Macros
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B) || \
|
||||||
|
((LENGTH) == UART_WORDLENGTH_9B))
|
||||||
|
#define IS_UART_LIN_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B))
|
||||||
|
#define IS_UART_STOPBITS(STOPBITS) (((STOPBITS) == UART_STOPBITS_1) || \
|
||||||
|
((STOPBITS) == UART_STOPBITS_2))
|
||||||
|
#define IS_UART_PARITY(PARITY) (((PARITY) == UART_PARITY_NONE) || \
|
||||||
|
((PARITY) == UART_PARITY_EVEN) || \
|
||||||
|
((PARITY) == UART_PARITY_ODD))
|
||||||
|
#define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL)\
|
||||||
|
(((CONTROL) == UART_HWCONTROL_NONE) || \
|
||||||
|
((CONTROL) == UART_HWCONTROL_RTS) || \
|
||||||
|
((CONTROL) == UART_HWCONTROL_CTS) || \
|
||||||
|
((CONTROL) == UART_HWCONTROL_RTS_CTS))
|
||||||
|
#define IS_UART_MODE(MODE) ((((MODE) & 0x0000FFF3U) == 0x00U) && ((MODE) != 0x00U))
|
||||||
|
#define IS_UART_STATE(STATE) (((STATE) == UART_STATE_DISABLE) || \
|
||||||
|
((STATE) == UART_STATE_ENABLE))
|
||||||
|
#define IS_UART_OVERSAMPLING(SAMPLING) (((SAMPLING) == UART_OVERSAMPLING_16) || \
|
||||||
|
((SAMPLING) == UART_OVERSAMPLING_8))
|
||||||
|
#define IS_UART_LIN_OVERSAMPLING(SAMPLING) (((SAMPLING) == UART_OVERSAMPLING_16))
|
||||||
|
#define IS_UART_LIN_BREAK_DETECT_LENGTH(LENGTH) (((LENGTH) == UART_LINBREAKDETECTLENGTH_10B) || \
|
||||||
|
((LENGTH) == UART_LINBREAKDETECTLENGTH_11B))
|
||||||
|
#define IS_UART_WAKEUPMETHOD(WAKEUP) (((WAKEUP) == UART_WAKEUPMETHOD_IDLELINE) || \
|
||||||
|
((WAKEUP) == UART_WAKEUPMETHOD_ADDRESSMARK))
|
||||||
|
#define IS_UART_BAUDRATE(BAUDRATE) ((BAUDRATE) <= 10500000U)
|
||||||
|
#define IS_UART_ADDRESS(ADDRESS) ((ADDRESS) <= 0x0FU)
|
||||||
|
|
||||||
|
#define UART_DIV_SAMPLING16(_PCLK_, _BAUD_) ((uint32_t)((((uint64_t)(_PCLK_))*25U)/(4U*((uint64_t)(_BAUD_)))))
|
||||||
|
#define UART_DIVMANT_SAMPLING16(_PCLK_, _BAUD_) (UART_DIV_SAMPLING16((_PCLK_), (_BAUD_))/100U)
|
||||||
|
#define UART_DIVFRAQ_SAMPLING16(_PCLK_, _BAUD_) ((((UART_DIV_SAMPLING16((_PCLK_), (_BAUD_)) - (UART_DIVMANT_SAMPLING16((_PCLK_), (_BAUD_)) * 100U)) * 16U)\
|
||||||
|
+ 50U) / 100U)
|
||||||
|
/* UART BRR = mantissa + overflow + fraction
|
||||||
|
= (UART DIVMANT << 4) + (UART DIVFRAQ & 0xF0) + (UART DIVFRAQ & 0x0FU) */
|
||||||
|
#define UART_BRR_SAMPLING16(_PCLK_, _BAUD_) ((UART_DIVMANT_SAMPLING16((_PCLK_), (_BAUD_)) << 4U) + \
|
||||||
|
(UART_DIVFRAQ_SAMPLING16((_PCLK_), (_BAUD_)) & 0xF0U) + \
|
||||||
|
(UART_DIVFRAQ_SAMPLING16((_PCLK_), (_BAUD_)) & 0x0FU))
|
||||||
|
|
||||||
|
#define UART_DIV_SAMPLING8(_PCLK_, _BAUD_) ((uint32_t)((((uint64_t)(_PCLK_))*25U)/(2U*((uint64_t)(_BAUD_)))))
|
||||||
|
#define UART_DIVMANT_SAMPLING8(_PCLK_, _BAUD_) (UART_DIV_SAMPLING8((_PCLK_), (_BAUD_))/100U)
|
||||||
|
#define UART_DIVFRAQ_SAMPLING8(_PCLK_, _BAUD_) ((((UART_DIV_SAMPLING8((_PCLK_), (_BAUD_)) - (UART_DIVMANT_SAMPLING8((_PCLK_), (_BAUD_)) * 100U)) * 8U)\
|
||||||
|
+ 50U) / 100U)
|
||||||
|
/* UART BRR = mantissa + overflow + fraction
|
||||||
|
= (UART DIVMANT << 4) + ((UART DIVFRAQ & 0xF8) << 1) + (UART DIVFRAQ & 0x07U) */
|
||||||
|
#define UART_BRR_SAMPLING8(_PCLK_, _BAUD_) ((UART_DIVMANT_SAMPLING8((_PCLK_), (_BAUD_)) << 4U) + \
|
||||||
|
((UART_DIVFRAQ_SAMPLING8((_PCLK_), (_BAUD_)) & 0xF8U) << 1U) + \
|
||||||
|
(UART_DIVFRAQ_SAMPLING8((_PCLK_), (_BAUD_)) & 0x07U))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
/** @defgroup UART_Private_Functions UART Private Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __STM32F4xx_HAL_UART_H */
|
||||||
|
|
||||||
4096
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h
Normal file
4096
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h
Normal file
File diff suppressed because it is too large
Load Diff
2521
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h
Normal file
2521
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h
Normal file
File diff suppressed because it is too large
Load Diff
578
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h
Normal file
578
Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h
Normal file
@@ -0,0 +1,578 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_ll_usb.h
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief Header file of USB Low Layer HAL module.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef STM32F4xx_LL_USB_H
|
||||||
|
#define STM32F4xx_LL_USB_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stm32f4xx_hal_def.h"
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/** @addtogroup STM32F4xx_HAL_Driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @addtogroup USB_LL
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
#ifndef HAL_USB_TIMEOUT
|
||||||
|
#define HAL_USB_TIMEOUT 0xF000000U
|
||||||
|
#endif /* define HAL_USB_TIMEOUT */
|
||||||
|
|
||||||
|
#ifndef HAL_USB_CURRENT_MODE_MAX_DELAY_MS
|
||||||
|
#define HAL_USB_CURRENT_MODE_MAX_DELAY_MS 200U
|
||||||
|
#endif /* define HAL_USB_CURRENT_MODE_MAX_DELAY_MS */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief USB Mode definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
USB_DEVICE_MODE = 0,
|
||||||
|
USB_HOST_MODE = 1,
|
||||||
|
USB_DRD_MODE = 2
|
||||||
|
} USB_ModeTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief URB States definition
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
URB_IDLE = 0,
|
||||||
|
URB_DONE,
|
||||||
|
URB_NOTREADY,
|
||||||
|
URB_NYET,
|
||||||
|
URB_ERROR,
|
||||||
|
URB_STALL
|
||||||
|
} USB_URBStateTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Host channel States definition
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HC_IDLE = 0,
|
||||||
|
HC_XFRC,
|
||||||
|
HC_HALTED,
|
||||||
|
HC_ACK,
|
||||||
|
HC_NAK,
|
||||||
|
HC_NYET,
|
||||||
|
HC_STALL,
|
||||||
|
HC_XACTERR,
|
||||||
|
HC_BBLERR,
|
||||||
|
HC_DATATGLERR
|
||||||
|
} USB_HCStateTypeDef;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief USB Instance Initialization Structure definition
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t dev_endpoints; /*!< Device Endpoints number.
|
||||||
|
This parameter depends on the used USB core.
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint8_t Host_channels; /*!< Host Channels number.
|
||||||
|
This parameter Depends on the used USB core.
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint8_t dma_enable; /*!< USB DMA state.
|
||||||
|
If DMA is not supported this parameter shall be set by default to zero */
|
||||||
|
|
||||||
|
uint8_t speed; /*!< USB Core speed.
|
||||||
|
This parameter can be any value of @ref PCD_Speed/HCD_Speed
|
||||||
|
(HCD_SPEED_xxx, HCD_SPEED_xxx) */
|
||||||
|
|
||||||
|
uint8_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size. */
|
||||||
|
|
||||||
|
uint8_t phy_itface; /*!< Select the used PHY interface.
|
||||||
|
This parameter can be any value of @ref PCD_PHY_Module/HCD_PHY_Module */
|
||||||
|
|
||||||
|
uint8_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */
|
||||||
|
|
||||||
|
uint8_t low_power_enable; /*!< Enable or disable the low Power Mode. */
|
||||||
|
|
||||||
|
uint8_t lpm_enable; /*!< Enable or disable Link Power Management. */
|
||||||
|
|
||||||
|
uint8_t battery_charging_enable; /*!< Enable or disable Battery charging. */
|
||||||
|
|
||||||
|
uint8_t vbus_sensing_enable; /*!< Enable or disable the VBUS Sensing feature. */
|
||||||
|
|
||||||
|
uint8_t use_dedicated_ep1; /*!< Enable or disable the use of the dedicated EP1 interrupt. */
|
||||||
|
|
||||||
|
uint8_t use_external_vbus; /*!< Enable or disable the use of the external VBUS. */
|
||||||
|
|
||||||
|
} USB_CfgTypeDef;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t num; /*!< Endpoint number
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint8_t is_in; /*!< Endpoint direction
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t is_stall; /*!< Endpoint stall condition
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t is_iso_incomplete; /*!< Endpoint isoc condition
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t type; /*!< Endpoint type
|
||||||
|
This parameter can be any value of @ref USB_LL_EP_Type */
|
||||||
|
|
||||||
|
uint8_t data_pid_start; /*!< Initial data PID
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint32_t maxpacket; /*!< Endpoint Max packet size
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
|
||||||
|
|
||||||
|
uint8_t *xfer_buff; /*!< Pointer to transfer buffer */
|
||||||
|
|
||||||
|
uint32_t xfer_len; /*!< Current transfer length */
|
||||||
|
|
||||||
|
uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */
|
||||||
|
|
||||||
|
uint8_t even_odd_frame; /*!< IFrame parity
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint16_t tx_fifo_num; /*!< Transmission FIFO number
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address */
|
||||||
|
|
||||||
|
uint32_t xfer_size; /*!< requested transfer size */
|
||||||
|
} USB_EPTypeDef;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t dev_addr; /*!< USB device address.
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 255 */
|
||||||
|
|
||||||
|
uint8_t ch_num; /*!< Host channel number.
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint8_t ep_num; /*!< Endpoint number.
|
||||||
|
This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
|
||||||
|
|
||||||
|
uint8_t ep_is_in; /*!< Endpoint direction
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t speed; /*!< USB Host Channel speed.
|
||||||
|
This parameter can be any value of @ref HCD_Device_Speed:
|
||||||
|
(HCD_DEVICE_SPEED_xxx) */
|
||||||
|
|
||||||
|
uint8_t do_ping; /*!< Enable or disable the use of the PING protocol for HS mode. */
|
||||||
|
uint8_t do_ssplit; /*!< Enable start split transaction in HS mode. */
|
||||||
|
uint8_t do_csplit; /*!< Enable complete split transaction in HS mode. */
|
||||||
|
uint8_t ep_ss_schedule; /*!< Enable periodic endpoint start split schedule . */
|
||||||
|
uint32_t iso_splt_xactPos; /*!< iso split transfer transaction position. */
|
||||||
|
|
||||||
|
uint8_t hub_port_nbr; /*!< USB HUB port number */
|
||||||
|
uint8_t hub_addr; /*!< USB HUB address */
|
||||||
|
|
||||||
|
uint8_t ep_type; /*!< Endpoint Type.
|
||||||
|
This parameter can be any value of @ref USB_LL_EP_Type */
|
||||||
|
|
||||||
|
uint16_t max_packet; /*!< Endpoint Max packet size.
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
|
||||||
|
|
||||||
|
uint8_t data_pid; /*!< Initial data PID.
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t *xfer_buff; /*!< Pointer to transfer buffer. */
|
||||||
|
|
||||||
|
uint32_t XferSize; /*!< OTG Channel transfer size. */
|
||||||
|
|
||||||
|
uint32_t xfer_len; /*!< Current transfer length. */
|
||||||
|
|
||||||
|
uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer. */
|
||||||
|
|
||||||
|
uint8_t toggle_in; /*!< IN transfer current toggle flag.
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint8_t toggle_out; /*!< OUT transfer current toggle flag
|
||||||
|
This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
|
||||||
|
|
||||||
|
uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address. */
|
||||||
|
|
||||||
|
uint32_t ErrCnt; /*!< Host channel error count. */
|
||||||
|
uint32_t NyetErrCnt; /*!< Complete Split NYET Host channel error count. */
|
||||||
|
|
||||||
|
USB_URBStateTypeDef urb_state; /*!< URB state.
|
||||||
|
This parameter can be any value of @ref USB_URBStateTypeDef */
|
||||||
|
|
||||||
|
USB_HCStateTypeDef state; /*!< Host Channel state.
|
||||||
|
This parameter can be any value of @ref USB_HCStateTypeDef */
|
||||||
|
} USB_HCTypeDef;
|
||||||
|
|
||||||
|
typedef USB_ModeTypeDef USB_OTG_ModeTypeDef;
|
||||||
|
typedef USB_CfgTypeDef USB_OTG_CfgTypeDef;
|
||||||
|
typedef USB_EPTypeDef USB_OTG_EPTypeDef;
|
||||||
|
typedef USB_URBStateTypeDef USB_OTG_URBStateTypeDef;
|
||||||
|
typedef USB_HCStateTypeDef USB_OTG_HCStateTypeDef;
|
||||||
|
typedef USB_HCTypeDef USB_OTG_HCTypeDef;
|
||||||
|
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
|
||||||
|
/** @defgroup PCD_Exported_Constants PCD Exported Constants
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/** @defgroup USB_OTG_CORE VERSION ID
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USB_OTG_CORE_ID_300A 0x4F54300AU
|
||||||
|
#define USB_OTG_CORE_ID_310A 0x4F54310AU
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_Core_Mode_ USB Core Mode
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USB_OTG_MODE_DEVICE 0U
|
||||||
|
#define USB_OTG_MODE_HOST 1U
|
||||||
|
#define USB_OTG_MODE_DRD 2U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_Core_Speed USB Low Layer Core Speed
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USB_OTG_SPEED_HIGH 0U
|
||||||
|
#define USB_OTG_SPEED_HIGH_IN_FULL 1U
|
||||||
|
#define USB_OTG_SPEED_FULL 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_Core_PHY USB Low Layer Core PHY
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USB_OTG_ULPI_PHY 1U
|
||||||
|
#define USB_OTG_EMBEDDED_PHY 2U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_Turnaround_Timeout Turnaround Timeout Value
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#ifndef USBD_HS_TRDT_VALUE
|
||||||
|
#define USBD_HS_TRDT_VALUE 9U
|
||||||
|
#endif /* USBD_HS_TRDT_VALUE */
|
||||||
|
#ifndef USBD_FS_TRDT_VALUE
|
||||||
|
#define USBD_FS_TRDT_VALUE 5U
|
||||||
|
#define USBD_DEFAULT_TRDT_VALUE 9U
|
||||||
|
#endif /* USBD_HS_TRDT_VALUE */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_Core_MPS USB Low Layer Core MPS
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USB_OTG_HS_MAX_PACKET_SIZE 512U
|
||||||
|
#define USB_OTG_FS_MAX_PACKET_SIZE 64U
|
||||||
|
#define USB_OTG_MAX_EP0_SIZE 64U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_Core_PHY_Frequency USB Low Layer Core PHY Frequency
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ (0U << 1)
|
||||||
|
#define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ (1U << 1)
|
||||||
|
#define DSTS_ENUMSPD_FS_PHY_48MHZ (3U << 1)
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_CORE_Frame_Interval USB Low Layer Core Frame Interval
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define DCFG_FRAME_INTERVAL_80 0U
|
||||||
|
#define DCFG_FRAME_INTERVAL_85 1U
|
||||||
|
#define DCFG_FRAME_INTERVAL_90 2U
|
||||||
|
#define DCFG_FRAME_INTERVAL_95 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
/** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define EP_MPS_64 0U
|
||||||
|
#define EP_MPS_32 1U
|
||||||
|
#define EP_MPS_16 2U
|
||||||
|
#define EP_MPS_8 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_EP_Type USB Low Layer EP Type
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define EP_TYPE_CTRL 0U
|
||||||
|
#define EP_TYPE_ISOC 1U
|
||||||
|
#define EP_TYPE_BULK 2U
|
||||||
|
#define EP_TYPE_INTR 3U
|
||||||
|
#define EP_TYPE_MSK 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_EP_Speed USB Low Layer EP Speed
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define EP_SPEED_LOW 0U
|
||||||
|
#define EP_SPEED_FULL 1U
|
||||||
|
#define EP_SPEED_HIGH 2U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_CH_PID_Type USB Low Layer Channel PID Type
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HC_PID_DATA0 0U
|
||||||
|
#define HC_PID_DATA2 1U
|
||||||
|
#define HC_PID_DATA1 2U
|
||||||
|
#define HC_PID_SETUP 3U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL Device Speed
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define USBD_HS_SPEED 0U
|
||||||
|
#define USBD_HSINFS_SPEED 1U
|
||||||
|
#define USBH_HS_SPEED 0U
|
||||||
|
#define USBD_FS_SPEED 2U
|
||||||
|
#define USBH_FSLS_SPEED 1U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/** @defgroup USB_LL_STS_Defines USB Low Layer STS Defines
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define STS_GOUT_NAK 1U
|
||||||
|
#define STS_DATA_UPDT 2U
|
||||||
|
#define STS_XFER_COMP 3U
|
||||||
|
#define STS_SETUP_COMP 4U
|
||||||
|
#define STS_SETUP_UPDT 6U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_HCFG_SPEED_Defines USB Low Layer HCFG Speed Defines
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HCFG_30_60_MHZ 0U
|
||||||
|
#define HCFG_48_MHZ 1U
|
||||||
|
#define HCFG_6_MHZ 2U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_HFIR_Defines USB Low Layer frame interval Defines
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HFIR_6_MHZ 6000U
|
||||||
|
#define HFIR_60_MHZ 60000U
|
||||||
|
#define HFIR_48_MHZ 48000U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup USB_LL_HPRT0_PRTSPD_SPEED_Defines USB Low Layer HPRT0 PRTSPD Speed Defines
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define HPRT0_PRTSPD_HIGH_SPEED 0U
|
||||||
|
#define HPRT0_PRTSPD_FULL_SPEED 1U
|
||||||
|
#define HPRT0_PRTSPD_LOW_SPEED 2U
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HCCHAR_CTRL 0U
|
||||||
|
#define HCCHAR_ISOC 1U
|
||||||
|
#define HCCHAR_BULK 2U
|
||||||
|
#define HCCHAR_INTR 3U
|
||||||
|
|
||||||
|
#define GRXSTS_PKTSTS_IN 2U
|
||||||
|
#define GRXSTS_PKTSTS_IN_XFER_COMP 3U
|
||||||
|
#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5U
|
||||||
|
#define GRXSTS_PKTSTS_CH_HALTED 7U
|
||||||
|
|
||||||
|
#define CLEAR_INTERRUPT_MASK 0xFFFFFFFFU
|
||||||
|
|
||||||
|
#define HC_MAX_PKT_CNT 256U
|
||||||
|
#define ISO_SPLT_MPS 188U
|
||||||
|
|
||||||
|
#define HCSPLT_BEGIN 1U
|
||||||
|
#define HCSPLT_MIDDLE 2U
|
||||||
|
#define HCSPLT_END 3U
|
||||||
|
#define HCSPLT_FULL 4U
|
||||||
|
|
||||||
|
#define TEST_J 1U
|
||||||
|
#define TEST_K 2U
|
||||||
|
#define TEST_SE0_NAK 3U
|
||||||
|
#define TEST_PACKET 4U
|
||||||
|
#define TEST_FORCE_EN 5U
|
||||||
|
|
||||||
|
#define USBx_PCGCCTL *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_PCGCCTL_BASE)
|
||||||
|
#define USBx_HPRT0 *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_HOST_PORT_BASE)
|
||||||
|
|
||||||
|
#define USBx_DEVICE ((USB_OTG_DeviceTypeDef *)(USBx_BASE + USB_OTG_DEVICE_BASE))
|
||||||
|
#define USBx_INEP(i) ((USB_OTG_INEndpointTypeDef *)(USBx_BASE\
|
||||||
|
+ USB_OTG_IN_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
|
||||||
|
|
||||||
|
#define USBx_OUTEP(i) ((USB_OTG_OUTEndpointTypeDef *)(USBx_BASE\
|
||||||
|
+ USB_OTG_OUT_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
|
||||||
|
|
||||||
|
#define USBx_DFIFO(i) *(__IO uint32_t *)(USBx_BASE + USB_OTG_FIFO_BASE + ((i) * USB_OTG_FIFO_SIZE))
|
||||||
|
|
||||||
|
#define USBx_HOST ((USB_OTG_HostTypeDef *)(USBx_BASE + USB_OTG_HOST_BASE))
|
||||||
|
#define USBx_HC(i) ((USB_OTG_HostChannelTypeDef *)(USBx_BASE\
|
||||||
|
+ USB_OTG_HOST_CHANNEL_BASE\
|
||||||
|
+ ((i) * USB_OTG_HOST_CHANNEL_SIZE)))
|
||||||
|
|
||||||
|
|
||||||
|
#define EP_ADDR_MSK 0xFU
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
/** @defgroup USB_LL_Exported_Macros USB Low Layer Exported Macros
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
#define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__))
|
||||||
|
#define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__))
|
||||||
|
|
||||||
|
#define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__))
|
||||||
|
#define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Exported functions --------------------------------------------------------*/
|
||||||
|
/** @addtogroup USB_LL_Exported_Functions USB Low Layer Exported Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
|
||||||
|
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
|
||||||
|
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, uint32_t hclk, uint8_t speed);
|
||||||
|
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode);
|
||||||
|
HAL_StatusTypeDef USB_SetDevSpeed(const USB_OTG_GlobalTypeDef *USBx, uint8_t speed);
|
||||||
|
HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num);
|
||||||
|
HAL_StatusTypeDef USB_ActivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_DeactivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma);
|
||||||
|
HAL_StatusTypeDef USB_WritePacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *src,
|
||||||
|
uint8_t ch_ep_num, uint16_t len, uint8_t dma);
|
||||||
|
|
||||||
|
void *USB_ReadPacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
|
||||||
|
HAL_StatusTypeDef USB_EPSetStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_EPClearStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_EPStopXfer(const USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
|
||||||
|
HAL_StatusTypeDef USB_SetDevAddress(const USB_OTG_GlobalTypeDef *USBx, uint8_t address);
|
||||||
|
HAL_StatusTypeDef USB_DevConnect(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_DevDisconnect(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_ActivateSetup(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_EP0_OutStart(const USB_OTG_GlobalTypeDef *USBx, uint8_t dma, const uint8_t *psetup);
|
||||||
|
uint8_t USB_GetDevSpeed(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
uint32_t USB_GetMode(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
uint32_t USB_ReadInterrupts(USB_OTG_GlobalTypeDef const *USBx);
|
||||||
|
uint32_t USB_ReadChInterrupts(const USB_OTG_GlobalTypeDef *USBx, uint8_t chnum);
|
||||||
|
uint32_t USB_ReadDevAllOutEpInterrupt(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
uint32_t USB_ReadDevOutEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
|
||||||
|
uint32_t USB_ReadDevAllInEpInterrupt(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
uint32_t USB_ReadDevInEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
|
||||||
|
void USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
|
||||||
|
|
||||||
|
HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
|
||||||
|
HAL_StatusTypeDef USB_InitFSLSPClkSel(const USB_OTG_GlobalTypeDef *USBx, uint8_t freq);
|
||||||
|
HAL_StatusTypeDef USB_ResetPort(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_DriveVbus(const USB_OTG_GlobalTypeDef *USBx, uint8_t state);
|
||||||
|
uint32_t USB_GetHostSpeed(USB_OTG_GlobalTypeDef const *USBx);
|
||||||
|
uint32_t USB_GetCurrentFrame(USB_OTG_GlobalTypeDef const *USBx);
|
||||||
|
HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num,
|
||||||
|
uint8_t epnum, uint8_t dev_address, uint8_t speed,
|
||||||
|
uint8_t ep_type, uint16_t mps);
|
||||||
|
HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx,
|
||||||
|
USB_OTG_HCTypeDef *hc, uint8_t dma);
|
||||||
|
|
||||||
|
uint32_t USB_HC_ReadInterrupt(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_HC_Halt(const USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num);
|
||||||
|
HAL_StatusTypeDef USB_DoPing(const USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num);
|
||||||
|
HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_ActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
HAL_StatusTypeDef USB_DeActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx);
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* STM32F4xx_LL_USB_H */
|
||||||
2395
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c
Normal file
2395
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c
Normal file
File diff suppressed because it is too large
Load Diff
347
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c
Normal file
347
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file stm32f4xx_hal_pcd_ex.c
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @brief PCD Extended HAL module driver.
|
||||||
|
* This file provides firmware functions to manage the following
|
||||||
|
* functionalities of the USB Peripheral Controller:
|
||||||
|
* + Extended features functions
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
|
/** @addtogroup STM32F4xx_HAL_Driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup PCDEx PCDEx
|
||||||
|
* @brief PCD Extended HAL module driver
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAL_PCD_MODULE_ENABLED
|
||||||
|
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/* Private types -------------------------------------------------------------*/
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* Private constants ---------------------------------------------------------*/
|
||||||
|
/* Private macros ------------------------------------------------------------*/
|
||||||
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
/* Exported functions --------------------------------------------------------*/
|
||||||
|
|
||||||
|
/** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @defgroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
|
||||||
|
* @brief PCDEx control functions
|
||||||
|
*
|
||||||
|
@verbatim
|
||||||
|
===============================================================================
|
||||||
|
##### Extended features functions #####
|
||||||
|
===============================================================================
|
||||||
|
[..] This section provides functions allowing to:
|
||||||
|
(+) Update FIFO configuration
|
||||||
|
|
||||||
|
@endverbatim
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
|
||||||
|
/**
|
||||||
|
* @brief Set Tx FIFO
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @param fifo The number of Tx fifo
|
||||||
|
* @param size Fifo size
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size)
|
||||||
|
{
|
||||||
|
uint8_t i;
|
||||||
|
uint32_t Tx_Offset;
|
||||||
|
|
||||||
|
/* TXn min size = 16 words. (n : Transmit FIFO index)
|
||||||
|
When a TxFIFO is not used, the Configuration should be as follows:
|
||||||
|
case 1 : n > m and Txn is not used (n,m : Transmit FIFO indexes)
|
||||||
|
--> Txm can use the space allocated for Txn.
|
||||||
|
case2 : n < m and Txn is not used (n,m : Transmit FIFO indexes)
|
||||||
|
--> Txn should be configured with the minimum space of 16 words
|
||||||
|
The FIFO is used optimally when used TxFIFOs are allocated in the top
|
||||||
|
of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones.
|
||||||
|
When DMA is used 3n * FIFO locations should be reserved for internal DMA registers */
|
||||||
|
|
||||||
|
Tx_Offset = hpcd->Instance->GRXFSIZ;
|
||||||
|
|
||||||
|
if (fifo == 0U)
|
||||||
|
{
|
||||||
|
hpcd->Instance->DIEPTXF0_HNPTXFSIZ = ((uint32_t)size << 16) | Tx_Offset;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Tx_Offset += (hpcd->Instance->DIEPTXF0_HNPTXFSIZ) >> 16;
|
||||||
|
for (i = 0U; i < (fifo - 1U); i++)
|
||||||
|
{
|
||||||
|
Tx_Offset += (hpcd->Instance->DIEPTXF[i] >> 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Multiply Tx_Size by 2 to get higher performance */
|
||||||
|
hpcd->Instance->DIEPTXF[fifo - 1U] = ((uint32_t)size << 16) | Tx_Offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set Rx FIFO
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @param size Size of Rx fifo
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size)
|
||||||
|
{
|
||||||
|
hpcd->Instance->GRXFSIZ = size;
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) \
|
||||||
|
|| defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) \
|
||||||
|
|| defined(STM32F423xx)
|
||||||
|
/**
|
||||||
|
* @brief Activate LPM feature.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd)
|
||||||
|
{
|
||||||
|
USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
|
||||||
|
|
||||||
|
hpcd->lpm_active = 1U;
|
||||||
|
hpcd->LPM_State = LPM_L0;
|
||||||
|
USBx->GINTMSK |= USB_OTG_GINTMSK_LPMINTM;
|
||||||
|
USBx->GLPMCFG |= (USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL);
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deactivate LPM feature.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd)
|
||||||
|
{
|
||||||
|
USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
|
||||||
|
|
||||||
|
hpcd->lpm_active = 0U;
|
||||||
|
USBx->GINTMSK &= ~USB_OTG_GINTMSK_LPMINTM;
|
||||||
|
USBx->GLPMCFG &= ~(USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL);
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
#endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||
|
||||||
|
defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) ||
|
||||||
|
defined(STM32F423xx) */
|
||||||
|
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) \
|
||||||
|
|| defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
|
||||||
|
/**
|
||||||
|
* @brief Handle BatteryCharging Process.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd)
|
||||||
|
{
|
||||||
|
USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
|
||||||
|
uint32_t tickstart = HAL_GetTick();
|
||||||
|
|
||||||
|
/* Enable DCD : Data Contact Detect */
|
||||||
|
USBx->GCCFG |= USB_OTG_GCCFG_DCDEN;
|
||||||
|
|
||||||
|
/* Wait for Min DCD Timeout */
|
||||||
|
HAL_Delay(300U);
|
||||||
|
|
||||||
|
/* Check Detect flag */
|
||||||
|
if ((USBx->GCCFG & USB_OTG_GCCFG_DCDET) == USB_OTG_GCCFG_DCDET)
|
||||||
|
{
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_CONTACT_DETECTION);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CONTACT_DETECTION);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Primary detection: checks if connected to Standard Downstream Port
|
||||||
|
(without charging capability) */
|
||||||
|
USBx->GCCFG &= ~USB_OTG_GCCFG_DCDEN;
|
||||||
|
HAL_Delay(50U);
|
||||||
|
USBx->GCCFG |= USB_OTG_GCCFG_PDEN;
|
||||||
|
HAL_Delay(50U);
|
||||||
|
|
||||||
|
if ((USBx->GCCFG & USB_OTG_GCCFG_PDET) == 0U)
|
||||||
|
{
|
||||||
|
/* Case of Standard Downstream Port */
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* start secondary detection to check connection to Charging Downstream
|
||||||
|
Port or Dedicated Charging Port */
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
|
||||||
|
HAL_Delay(50U);
|
||||||
|
USBx->GCCFG |= USB_OTG_GCCFG_SDEN;
|
||||||
|
HAL_Delay(50U);
|
||||||
|
|
||||||
|
if ((USBx->GCCFG & USB_OTG_GCCFG_SDET) == USB_OTG_GCCFG_SDET)
|
||||||
|
{
|
||||||
|
/* case Dedicated Charging Port */
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* case Charging Downstream Port */
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Battery Charging capability discovery finished */
|
||||||
|
(void)HAL_PCDEx_DeActivateBCD(hpcd);
|
||||||
|
|
||||||
|
/* Check for the Timeout, else start USB Device */
|
||||||
|
if ((HAL_GetTick() - tickstart) > 1000U)
|
||||||
|
{
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_ERROR);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
|
hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
|
||||||
|
#else
|
||||||
|
HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
|
||||||
|
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Activate BatteryCharging feature.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd)
|
||||||
|
{
|
||||||
|
USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
|
||||||
|
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN);
|
||||||
|
|
||||||
|
/* Power Down USB transceiver */
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN);
|
||||||
|
|
||||||
|
/* Enable Battery charging */
|
||||||
|
USBx->GCCFG |= USB_OTG_GCCFG_BCDEN;
|
||||||
|
|
||||||
|
hpcd->battery_charging_active = 1U;
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deactivate BatteryCharging feature.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd)
|
||||||
|
{
|
||||||
|
USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
|
||||||
|
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN);
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
|
||||||
|
|
||||||
|
/* Disable Battery charging */
|
||||||
|
USBx->GCCFG &= ~(USB_OTG_GCCFG_BCDEN);
|
||||||
|
|
||||||
|
hpcd->battery_charging_active = 0U;
|
||||||
|
|
||||||
|
return HAL_OK;
|
||||||
|
}
|
||||||
|
#endif /* defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) ||
|
||||||
|
defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) */
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Send LPM message to user layer callback.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @param msg LPM message
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
__weak void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
||||||
|
{
|
||||||
|
/* Prevent unused argument(s) compilation warning */
|
||||||
|
UNUSED(hpcd);
|
||||||
|
UNUSED(msg);
|
||||||
|
|
||||||
|
/* NOTE : This function should not be modified, when the callback is needed,
|
||||||
|
the HAL_PCDEx_LPM_Callback could be implemented in the user file
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Send BatteryCharging message to user layer callback.
|
||||||
|
* @param hpcd PCD handle
|
||||||
|
* @param msg LPM message
|
||||||
|
* @retval HAL status
|
||||||
|
*/
|
||||||
|
__weak void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg)
|
||||||
|
{
|
||||||
|
/* Prevent unused argument(s) compilation warning */
|
||||||
|
UNUSED(hpcd);
|
||||||
|
UNUSED(msg);
|
||||||
|
|
||||||
|
/* NOTE : This function should not be modified, when the callback is needed,
|
||||||
|
the HAL_PCDEx_BCD_Callback could be implemented in the user file
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
|
||||||
|
#endif /* HAL_PCD_MODULE_ENABLED */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
3771
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
Normal file
3771
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
Normal file
File diff suppressed because it is too large
Load Diff
2316
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c
Normal file
2316
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -20,6 +20,7 @@
|
|||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
|
||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
|
||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
|
||||||
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_config_enabled" value="true"/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="168000000"/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="168000000"/>
|
||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
|
||||||
@@ -40,7 +41,16 @@
|
|||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
|
||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="true"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="true"/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{"fVersion":1,"fItems":[{"fDisplayName":"Reset","fIsSuppressible":false,"fResetAttribute":"Software system reset","fResetStrategies":[{"fDisplayName":"Software system reset","fLaunchAttribute":"system_reset","fGdbCommands":["monitor reset\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Hardware reset","fLaunchAttribute":"hardware_reset","fGdbCommands":["monitor reset hardware\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"Core reset","fLaunchAttribute":"core_reset","fGdbCommands":["monitor reset core\r\n"],"fCmdOptions":["-g"]},{"fDisplayName":"None","fLaunchAttribute":"no_reset","fGdbCommands":[],"fCmdOptions":["-g"]}],"fGdbCommandGroup":{"name":"Additional commands","commands":[]},"fStartApplication":true}]}"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.datatrace_0" value="Enabled=false:Address=0x0:Access=Read/Write:Size=Word:Function=Data Value"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.datatrace_1" value="Enabled=false:Address=0x0:Access=Read/Write:Size=Word:Function=Data Value"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.datatrace_2" value="Enabled=false:Address=0x0:Access=Read/Write:Size=Word:Function=Data Value"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.datatrace_3" value="Enabled=false:Address=0x0:Access=Read/Write:Size=Word:Function=Data Value"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.itmports" value="1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.itmports_priv" value="0:0:0:0"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.pc_sample" value="0:16384"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.timestamps" value="1:1"/>
|
||||||
|
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.swv.trace_events" value="Cpi=0:Exc=0:Sleep=0:Lsu=0:Fold=0:Exetrc=0"/>
|
||||||
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="true"/>
|
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="true"/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
|
||||||
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="freertos"/>
|
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="freertos"/>
|
||||||
|
|||||||
@@ -4,7 +4,29 @@ CAD.pinconfig=
|
|||||||
CAD.provider=
|
CAD.provider=
|
||||||
Dma.Request0=SPI2_RX
|
Dma.Request0=SPI2_RX
|
||||||
Dma.Request1=SPI2_TX
|
Dma.Request1=SPI2_TX
|
||||||
Dma.RequestsNb=2
|
Dma.Request2=SPI1_RX
|
||||||
|
Dma.Request3=SPI1_TX
|
||||||
|
Dma.RequestsNb=4
|
||||||
|
Dma.SPI1_RX.2.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
|
Dma.SPI1_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||||
|
Dma.SPI1_RX.2.Instance=DMA2_Stream0
|
||||||
|
Dma.SPI1_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||||
|
Dma.SPI1_RX.2.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.SPI1_RX.2.Mode=DMA_NORMAL
|
||||||
|
Dma.SPI1_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||||
|
Dma.SPI1_RX.2.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.SPI1_RX.2.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.SPI1_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
|
||||||
|
Dma.SPI1_TX.3.Direction=DMA_MEMORY_TO_PERIPH
|
||||||
|
Dma.SPI1_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||||
|
Dma.SPI1_TX.3.Instance=DMA2_Stream3
|
||||||
|
Dma.SPI1_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||||
|
Dma.SPI1_TX.3.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.SPI1_TX.3.Mode=DMA_NORMAL
|
||||||
|
Dma.SPI1_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||||
|
Dma.SPI1_TX.3.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.SPI1_TX.3.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.SPI1_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
|
||||||
Dma.SPI2_RX.0.Direction=DMA_PERIPH_TO_MEMORY
|
Dma.SPI2_RX.0.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
Dma.SPI2_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
|
Dma.SPI2_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||||
Dma.SPI2_RX.0.Instance=DMA1_Stream3
|
Dma.SPI2_RX.0.Instance=DMA1_Stream3
|
||||||
@@ -44,6 +66,8 @@ Mcu.CPN=STM32F407VGT6
|
|||||||
Mcu.Family=STM32F4
|
Mcu.Family=STM32F4
|
||||||
Mcu.IP0=DMA
|
Mcu.IP0=DMA
|
||||||
Mcu.IP1=FREERTOS
|
Mcu.IP1=FREERTOS
|
||||||
|
Mcu.IP10=USART2
|
||||||
|
Mcu.IP11=USB_OTG_FS
|
||||||
Mcu.IP2=I2C1
|
Mcu.IP2=I2C1
|
||||||
Mcu.IP3=I2S3
|
Mcu.IP3=I2S3
|
||||||
Mcu.IP4=NVIC
|
Mcu.IP4=NVIC
|
||||||
@@ -51,54 +75,79 @@ Mcu.IP5=RCC
|
|||||||
Mcu.IP6=SPI1
|
Mcu.IP6=SPI1
|
||||||
Mcu.IP7=SPI2
|
Mcu.IP7=SPI2
|
||||||
Mcu.IP8=SYS
|
Mcu.IP8=SYS
|
||||||
Mcu.IPNb=9
|
Mcu.IP9=TIM10
|
||||||
|
Mcu.IPNb=12
|
||||||
Mcu.Name=STM32F407V(E-G)Tx
|
Mcu.Name=STM32F407V(E-G)Tx
|
||||||
Mcu.Package=LQFP100
|
Mcu.Package=LQFP100
|
||||||
Mcu.Pin0=PE3
|
Mcu.Pin0=PE3
|
||||||
Mcu.Pin1=PC14-OSC32_IN
|
Mcu.Pin1=PC14-OSC32_IN
|
||||||
Mcu.Pin10=PA6
|
Mcu.Pin10=PA4
|
||||||
Mcu.Pin11=PA7
|
Mcu.Pin11=PA5
|
||||||
Mcu.Pin12=PB2
|
Mcu.Pin12=PA6
|
||||||
Mcu.Pin13=PB10
|
Mcu.Pin13=PA7
|
||||||
Mcu.Pin14=PB11
|
Mcu.Pin14=PC4
|
||||||
Mcu.Pin15=PB12
|
Mcu.Pin15=PC5
|
||||||
Mcu.Pin16=PB13
|
Mcu.Pin16=PB0
|
||||||
Mcu.Pin17=PB14
|
Mcu.Pin17=PB1
|
||||||
Mcu.Pin18=PB15
|
Mcu.Pin18=PB2
|
||||||
Mcu.Pin19=PD8
|
Mcu.Pin19=PE7
|
||||||
Mcu.Pin2=PC15-OSC32_OUT
|
Mcu.Pin2=PC15-OSC32_OUT
|
||||||
Mcu.Pin20=PD9
|
Mcu.Pin20=PE8
|
||||||
Mcu.Pin21=PD10
|
Mcu.Pin21=PE9
|
||||||
Mcu.Pin22=PD11
|
Mcu.Pin22=PE10
|
||||||
Mcu.Pin23=PD12
|
Mcu.Pin23=PE11
|
||||||
Mcu.Pin24=PD13
|
Mcu.Pin24=PE12
|
||||||
Mcu.Pin25=PD14
|
Mcu.Pin25=PE13
|
||||||
Mcu.Pin26=PD15
|
Mcu.Pin26=PE14
|
||||||
Mcu.Pin27=PC7
|
Mcu.Pin27=PE15
|
||||||
Mcu.Pin28=PA9
|
Mcu.Pin28=PB10
|
||||||
Mcu.Pin29=PA10
|
Mcu.Pin29=PB11
|
||||||
Mcu.Pin3=PH0-OSC_IN
|
Mcu.Pin3=PH0-OSC_IN
|
||||||
Mcu.Pin30=PA11
|
Mcu.Pin30=PB12
|
||||||
Mcu.Pin31=PA12
|
Mcu.Pin31=PB13
|
||||||
Mcu.Pin32=PA13
|
Mcu.Pin32=PB14
|
||||||
Mcu.Pin33=PA14
|
Mcu.Pin33=PB15
|
||||||
Mcu.Pin34=PC10
|
Mcu.Pin34=PD8
|
||||||
Mcu.Pin35=PC12
|
Mcu.Pin35=PD9
|
||||||
Mcu.Pin36=PD4
|
Mcu.Pin36=PD12
|
||||||
Mcu.Pin37=PD5
|
Mcu.Pin37=PD13
|
||||||
Mcu.Pin38=PB3
|
Mcu.Pin38=PD14
|
||||||
Mcu.Pin39=PB6
|
Mcu.Pin39=PD15
|
||||||
Mcu.Pin4=PH1-OSC_OUT
|
Mcu.Pin4=PH1-OSC_OUT
|
||||||
Mcu.Pin40=PB9
|
Mcu.Pin40=PC6
|
||||||
Mcu.Pin41=PE1
|
Mcu.Pin41=PC7
|
||||||
Mcu.Pin42=VP_FREERTOS_VS_CMSIS_V2
|
Mcu.Pin42=PC9
|
||||||
Mcu.Pin43=VP_SYS_VS_tim7
|
Mcu.Pin43=PA8
|
||||||
|
Mcu.Pin44=PA9
|
||||||
|
Mcu.Pin45=PA10
|
||||||
|
Mcu.Pin46=PA11
|
||||||
|
Mcu.Pin47=PA12
|
||||||
|
Mcu.Pin48=PA13
|
||||||
|
Mcu.Pin49=PA14
|
||||||
Mcu.Pin5=PC0
|
Mcu.Pin5=PC0
|
||||||
|
Mcu.Pin50=PA15
|
||||||
|
Mcu.Pin51=PC10
|
||||||
|
Mcu.Pin52=PC12
|
||||||
|
Mcu.Pin53=PD4
|
||||||
|
Mcu.Pin54=PD5
|
||||||
|
Mcu.Pin55=PD6
|
||||||
|
Mcu.Pin56=PD7
|
||||||
|
Mcu.Pin57=PB3
|
||||||
|
Mcu.Pin58=PB4
|
||||||
|
Mcu.Pin59=PB5
|
||||||
Mcu.Pin6=PC3
|
Mcu.Pin6=PC3
|
||||||
|
Mcu.Pin60=PB6
|
||||||
|
Mcu.Pin61=PB7
|
||||||
|
Mcu.Pin62=PB8
|
||||||
|
Mcu.Pin63=PB9
|
||||||
|
Mcu.Pin64=PE1
|
||||||
|
Mcu.Pin65=VP_FREERTOS_VS_CMSIS_V2
|
||||||
|
Mcu.Pin66=VP_SYS_VS_tim7
|
||||||
|
Mcu.Pin67=VP_TIM10_VS_ClockSourceINT
|
||||||
Mcu.Pin7=PA0-WKUP
|
Mcu.Pin7=PA0-WKUP
|
||||||
Mcu.Pin8=PA4
|
Mcu.Pin8=PA2
|
||||||
Mcu.Pin9=PA5
|
Mcu.Pin9=PA3
|
||||||
Mcu.PinsNb=44
|
Mcu.PinsNb=68
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F407VGTx
|
Mcu.UserName=STM32F407VGTx
|
||||||
@@ -107,8 +156,12 @@ MxDb.Version=DB.6.0.100
|
|||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
||||||
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA1_Stream4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA1_Stream4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
|
NVIC.DMA2_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
|
NVIC.DMA2_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
||||||
NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
|
NVIC.EXTI15_10_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
|
NVIC.EXTI4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
|
||||||
@@ -144,6 +197,7 @@ PA11.GPIO_Mode=GPIO_MODE_AF_PP
|
|||||||
PA11.GPIO_PuPd=GPIO_NOPULL
|
PA11.GPIO_PuPd=GPIO_NOPULL
|
||||||
PA11.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
PA11.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
PA11.Locked=true
|
PA11.Locked=true
|
||||||
|
PA11.Mode=Device_Only
|
||||||
PA11.Signal=USB_OTG_FS_DM
|
PA11.Signal=USB_OTG_FS_DM
|
||||||
PA12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
PA12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
PA12.GPIO_Label=OTG_FS_DP
|
PA12.GPIO_Label=OTG_FS_DP
|
||||||
@@ -151,6 +205,7 @@ PA12.GPIO_Mode=GPIO_MODE_AF_PP
|
|||||||
PA12.GPIO_PuPd=GPIO_NOPULL
|
PA12.GPIO_PuPd=GPIO_NOPULL
|
||||||
PA12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
PA12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
PA12.Locked=true
|
PA12.Locked=true
|
||||||
|
PA12.Mode=Device_Only
|
||||||
PA12.Signal=USB_OTG_FS_DP
|
PA12.Signal=USB_OTG_FS_DP
|
||||||
PA13.GPIOParameters=GPIO_Label
|
PA13.GPIOParameters=GPIO_Label
|
||||||
PA13.GPIO_Label=SWDIO
|
PA13.GPIO_Label=SWDIO
|
||||||
@@ -162,6 +217,19 @@ PA14.GPIO_Label=SWCLK
|
|||||||
PA14.Locked=true
|
PA14.Locked=true
|
||||||
PA14.Mode=Trace_Asynchronous_SW
|
PA14.Mode=Trace_Asynchronous_SW
|
||||||
PA14.Signal=SYS_JTCK-SWCLK
|
PA14.Signal=SYS_JTCK-SWCLK
|
||||||
|
PA15.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PA15.GPIO_Label=SPI2_NSS
|
||||||
|
PA15.Locked=true
|
||||||
|
PA15.PinState=GPIO_PIN_SET
|
||||||
|
PA15.Signal=GPIO_Output
|
||||||
|
PA2.GPIOParameters=GPIO_Label
|
||||||
|
PA2.GPIO_Label=USART2_TX
|
||||||
|
PA2.Mode=Asynchronous
|
||||||
|
PA2.Signal=USART2_TX
|
||||||
|
PA3.GPIOParameters=GPIO_Label
|
||||||
|
PA3.GPIO_Label=USART2_RX
|
||||||
|
PA3.Mode=Asynchronous
|
||||||
|
PA3.Signal=USART2_RX
|
||||||
PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK]
|
PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK]
|
||||||
PA4.GPIO_Mode=GPIO_MODE_AF_PP
|
PA4.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
@@ -194,12 +262,26 @@ PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
|||||||
PA7.Locked=true
|
PA7.Locked=true
|
||||||
PA7.Mode=Full_Duplex_Master
|
PA7.Mode=Full_Duplex_Master
|
||||||
PA7.Signal=SPI1_MOSI
|
PA7.Signal=SPI1_MOSI
|
||||||
|
PA8.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PA8.GPIO_Label=NRF24_B_NSS
|
||||||
|
PA8.Locked=true
|
||||||
|
PA8.PinState=GPIO_PIN_SET
|
||||||
|
PA8.Signal=GPIO_Output
|
||||||
PA9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
|
PA9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
PA9.GPIO_Label=VBUS_FS
|
PA9.GPIO_Label=VBUS_FS
|
||||||
PA9.GPIO_Mode=GPIO_MODE_INPUT
|
PA9.GPIO_Mode=GPIO_MODE_INPUT
|
||||||
PA9.GPIO_PuPd=GPIO_NOPULL
|
PA9.GPIO_PuPd=GPIO_NOPULL
|
||||||
PA9.Locked=true
|
PA9.Locked=true
|
||||||
PA9.Signal=USB_OTG_FS_VBUS
|
PA9.Signal=USB_OTG_FS_VBUS
|
||||||
|
PB0.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PB0.GPIO_Label=SX1280_A_NSS
|
||||||
|
PB0.Locked=true
|
||||||
|
PB0.PinState=GPIO_PIN_SET
|
||||||
|
PB0.Signal=GPIO_Output
|
||||||
|
PB1.GPIOParameters=GPIO_Label
|
||||||
|
PB1.GPIO_Label=SX1280_A_RST
|
||||||
|
PB1.Locked=true
|
||||||
|
PB1.Signal=GPIO_Output
|
||||||
PB10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
PB10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
PB10.GPIO_Label=CLK_IN [MP45DT02_CLK]
|
PB10.GPIO_Label=CLK_IN [MP45DT02_CLK]
|
||||||
PB10.GPIO_Mode=GPIO_MODE_AF_PP
|
PB10.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
@@ -207,12 +289,13 @@ PB10.GPIO_PuPd=GPIO_NOPULL
|
|||||||
PB10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
PB10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
PB10.Locked=true
|
PB10.Locked=true
|
||||||
PB10.Signal=I2S2_CK
|
PB10.Signal=I2S2_CK
|
||||||
PB11.GPIOParameters=GPIO_Label
|
PB11.GPIOParameters=PinState,GPIO_Label
|
||||||
PB11.GPIO_Label=RADIO_TXEN
|
PB11.GPIO_Label=NRF24_A_NSS
|
||||||
PB11.Locked=true
|
PB11.Locked=true
|
||||||
|
PB11.PinState=GPIO_PIN_SET
|
||||||
PB11.Signal=GPIO_Output
|
PB11.Signal=GPIO_Output
|
||||||
PB12.GPIOParameters=GPIO_Label
|
PB12.GPIOParameters=GPIO_Label
|
||||||
PB12.GPIO_Label=RADIO_NSS
|
PB12.GPIO_Label=NRF24_A_CE
|
||||||
PB12.Locked=true
|
PB12.Locked=true
|
||||||
PB12.Signal=GPIO_Output
|
PB12.Signal=GPIO_Output
|
||||||
PB13.Locked=true
|
PB13.Locked=true
|
||||||
@@ -235,6 +318,15 @@ PB3.GPIO_Label=SWO
|
|||||||
PB3.Locked=true
|
PB3.Locked=true
|
||||||
PB3.Mode=Trace_Asynchronous_SW
|
PB3.Mode=Trace_Asynchronous_SW
|
||||||
PB3.Signal=SYS_JTDO-SWO
|
PB3.Signal=SYS_JTDO-SWO
|
||||||
|
PB4.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PB4.GPIO_Label=LCD_NSS
|
||||||
|
PB4.Locked=true
|
||||||
|
PB4.PinState=GPIO_PIN_SET
|
||||||
|
PB4.Signal=GPIO_Output
|
||||||
|
PB5.GPIOParameters=GPIO_Label
|
||||||
|
PB5.GPIO_Label=LCD_RST
|
||||||
|
PB5.Locked=true
|
||||||
|
PB5.Signal=GPIO_Output
|
||||||
PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Pu,GPIO_Mode
|
PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Pu,GPIO_Mode
|
||||||
PB6.GPIO_Label=Audio_SCL [CS43L22_SCL]
|
PB6.GPIO_Label=Audio_SCL [CS43L22_SCL]
|
||||||
PB6.GPIO_Mode=GPIO_MODE_AF_OD
|
PB6.GPIO_Mode=GPIO_MODE_AF_OD
|
||||||
@@ -244,6 +336,14 @@ PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
|||||||
PB6.Locked=true
|
PB6.Locked=true
|
||||||
PB6.Mode=I2C
|
PB6.Mode=I2C
|
||||||
PB6.Signal=I2C1_SCL
|
PB6.Signal=I2C1_SCL
|
||||||
|
PB7.GPIOParameters=GPIO_Label
|
||||||
|
PB7.GPIO_Label=LCD_DR
|
||||||
|
PB7.Locked=true
|
||||||
|
PB7.Signal=GPIO_Output
|
||||||
|
PB8.GPIOParameters=GPIO_Label
|
||||||
|
PB8.GPIO_Label=LCD_LED
|
||||||
|
PB8.Locked=true
|
||||||
|
PB8.Signal=S_TIM10_CH1
|
||||||
PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Pu,GPIO_Mode
|
PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Pu,GPIO_Mode
|
||||||
PB9.GPIO_Label=Audio_SDA [CS43L22_SDA]
|
PB9.GPIO_Label=Audio_SDA [CS43L22_SDA]
|
||||||
PB9.GPIO_Mode=GPIO_MODE_AF_OD
|
PB9.GPIO_Mode=GPIO_MODE_AF_OD
|
||||||
@@ -293,6 +393,21 @@ PC3.GPIO_PuPd=GPIO_NOPULL
|
|||||||
PC3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
PC3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
PC3.Locked=true
|
PC3.Locked=true
|
||||||
PC3.Signal=I2S2_SD
|
PC3.Signal=I2S2_SD
|
||||||
|
PC4.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PC4.GPIO_Label=SX1280_A_BUSY
|
||||||
|
PC4.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PC4.Locked=true
|
||||||
|
PC4.Signal=GPXTI4
|
||||||
|
PC5.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PC5.GPIO_Label=SX1280_A_IRQ
|
||||||
|
PC5.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PC5.Locked=true
|
||||||
|
PC5.Signal=GPXTI5
|
||||||
|
PC6.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PC6.GPIO_Label=NRF24_B_IRQ
|
||||||
|
PC6.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PC6.Locked=true
|
||||||
|
PC6.Signal=GPXTI6
|
||||||
PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
|
||||||
PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK]
|
PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK]
|
||||||
PC7.GPIO_Mode=GPIO_MODE_AF_PP
|
PC7.GPIO_Mode=GPIO_MODE_AF_PP
|
||||||
@@ -301,14 +416,10 @@ PC7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
|||||||
PC7.Locked=true
|
PC7.Locked=true
|
||||||
PC7.Mode=Master_Clock_Activated
|
PC7.Mode=Master_Clock_Activated
|
||||||
PC7.Signal=I2S3_MCK
|
PC7.Signal=I2S3_MCK
|
||||||
PD10.GPIOParameters=GPIO_Label
|
PC9.GPIOParameters=GPIO_Label
|
||||||
PD10.GPIO_Label=RADIO_RST
|
PC9.GPIO_Label=NRF24_B_CE
|
||||||
PD10.Locked=true
|
PC9.Locked=true
|
||||||
PD10.Signal=GPIO_Output
|
PC9.Signal=GPIO_Output
|
||||||
PD11.GPIOParameters=GPIO_Label
|
|
||||||
PD11.GPIO_Label=RADIO_RXEN
|
|
||||||
PD11.Locked=true
|
|
||||||
PD11.Signal=GPIO_Output
|
|
||||||
PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
PD12.GPIO_Label=LD4 [Green Led]
|
PD12.GPIO_Label=LD4 [Green Led]
|
||||||
PD12.GPIO_PuPd=GPIO_NOPULL
|
PD12.GPIO_PuPd=GPIO_NOPULL
|
||||||
@@ -345,28 +456,79 @@ PD5.GPIO_Mode=GPIO_MODE_INPUT
|
|||||||
PD5.GPIO_PuPd=GPIO_NOPULL
|
PD5.GPIO_PuPd=GPIO_NOPULL
|
||||||
PD5.Locked=true
|
PD5.Locked=true
|
||||||
PD5.Signal=GPIO_Input
|
PD5.Signal=GPIO_Input
|
||||||
|
PD6.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PD6.GPIO_Label=TOUCH_NSS
|
||||||
|
PD6.Locked=true
|
||||||
|
PD6.PinState=GPIO_PIN_SET
|
||||||
|
PD6.Signal=GPIO_Output
|
||||||
|
PD7.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PD7.GPIO_Label=TOUCH_IRQ
|
||||||
|
PD7.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PD7.Locked=true
|
||||||
|
PD7.Signal=GPXTI7
|
||||||
PD8.GPIOParameters=GPIO_PuPd,GPIO_Label
|
PD8.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
PD8.GPIO_Label=RADIO_BUSY
|
PD8.GPIO_Label=ESP8266_IRQ
|
||||||
PD8.GPIO_PuPd=GPIO_PULLDOWN
|
PD8.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
PD8.Locked=true
|
PD8.Locked=true
|
||||||
PD8.Signal=GPXTI8
|
PD8.Signal=GPXTI8
|
||||||
PD9.GPIOParameters=GPIO_PuPd,GPIO_Label
|
PD9.GPIOParameters=GPIO_Label
|
||||||
PD9.GPIO_Label=RADIO_IRQ
|
PD9.GPIO_Label=ESP8266_RST
|
||||||
PD9.GPIO_PuPd=GPIO_PULLDOWN
|
|
||||||
PD9.Locked=true
|
PD9.Locked=true
|
||||||
PD9.Signal=GPXTI9
|
PD9.Signal=GPIO_Output
|
||||||
PE1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
PE1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||||
PE1.GPIO_Label=MEMS_INT2 [LIS302DL_INT2]
|
PE1.GPIO_Label=MEMS_INT2 [LIS302DL_INT2]
|
||||||
PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
|
PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
|
||||||
PE1.GPIO_PuPd=GPIO_NOPULL
|
PE1.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
PE1.Locked=true
|
PE1.Locked=true
|
||||||
PE1.Signal=GPXTI1
|
PE1.Signal=GPXTI1
|
||||||
|
PE10.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PE10.GPIO_Label=SX1280_B_IRQ
|
||||||
|
PE10.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PE10.Locked=true
|
||||||
|
PE10.Signal=GPXTI10
|
||||||
|
PE11.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PE11.GPIO_Label=SX1280_B_NSS
|
||||||
|
PE11.Locked=true
|
||||||
|
PE11.PinState=GPIO_PIN_SET
|
||||||
|
PE11.Signal=GPIO_Output
|
||||||
|
PE12.GPIOParameters=GPIO_Label
|
||||||
|
PE12.GPIO_Label=SX1280_B_RST
|
||||||
|
PE12.Locked=true
|
||||||
|
PE12.Signal=GPIO_Output
|
||||||
|
PE13.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PE13.GPIO_Label=SX1280_B_RXEN
|
||||||
|
PE13.Locked=true
|
||||||
|
PE13.PinState=GPIO_PIN_SET
|
||||||
|
PE13.Signal=GPIO_Output
|
||||||
|
PE14.GPIOParameters=GPIO_Label
|
||||||
|
PE14.GPIO_Label=SX1280_B_TXEN
|
||||||
|
PE14.Locked=true
|
||||||
|
PE14.Signal=GPIO_Output
|
||||||
|
PE15.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PE15.GPIO_Label=NRF24_A_IRQ
|
||||||
|
PE15.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PE15.Locked=true
|
||||||
|
PE15.Signal=GPXTI15
|
||||||
PE3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
PE3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
|
||||||
PE3.GPIO_Label=CS_I2C/SPI [LIS302DL_CS_I2C/SPI]
|
PE3.GPIO_Label=CS_I2C/SPI [LIS302DL_CS_I2C/SPI]
|
||||||
PE3.GPIO_PuPd=GPIO_NOPULL
|
PE3.GPIO_PuPd=GPIO_NOPULL
|
||||||
PE3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
PE3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
|
||||||
PE3.Locked=true
|
PE3.Locked=true
|
||||||
PE3.Signal=GPIO_Output
|
PE3.Signal=GPIO_Output
|
||||||
|
PE7.GPIOParameters=PinState,GPIO_Label
|
||||||
|
PE7.GPIO_Label=SX1280_A_RXEN
|
||||||
|
PE7.Locked=true
|
||||||
|
PE7.PinState=GPIO_PIN_SET
|
||||||
|
PE7.Signal=GPIO_Output
|
||||||
|
PE8.GPIOParameters=GPIO_Label
|
||||||
|
PE8.GPIO_Label=SX1280_A_TXEN
|
||||||
|
PE8.Locked=true
|
||||||
|
PE8.Signal=GPIO_Output
|
||||||
|
PE9.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||||
|
PE9.GPIO_Label=SX1280_B_BUSY
|
||||||
|
PE9.GPIO_PuPd=GPIO_PULLDOWN
|
||||||
|
PE9.Locked=true
|
||||||
|
PE9.Signal=GPXTI9
|
||||||
PH0-OSC_IN.GPIOParameters=GPIO_Label
|
PH0-OSC_IN.GPIOParameters=GPIO_Label
|
||||||
PH0-OSC_IN.GPIO_Label=PH0-OSC_IN
|
PH0-OSC_IN.GPIO_Label=PH0-OSC_IN
|
||||||
PH0-OSC_IN.Locked=true
|
PH0-OSC_IN.Locked=true
|
||||||
@@ -408,7 +570,7 @@ ProjectManager.ToolChainLocation=
|
|||||||
ProjectManager.UAScriptAfterPath=
|
ProjectManager.UAScriptAfterPath=
|
||||||
ProjectManager.UAScriptBeforePath=
|
ProjectManager.UAScriptBeforePath=
|
||||||
ProjectManager.UnderRoot=true
|
ProjectManager.UnderRoot=true
|
||||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_I2S3_Init-I2S3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_SPI2_Init-SPI2-false-HAL-true
|
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_I2S3_Init-I2S3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_SPI2_Init-SPI2-false-HAL-true,8-MX_TIM10_Init-TIM10-false-HAL-true,9-MX_USART2_UART_Init-USART2-false-HAL-true,10-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true
|
||||||
RCC.48MHZClocksFreq_Value=48000000
|
RCC.48MHZClocksFreq_Value=48000000
|
||||||
RCC.AHBFreq_Value=168000000
|
RCC.AHBFreq_Value=168000000
|
||||||
RCC.APB1CLKDivider=RCC_HCLK_DIV4
|
RCC.APB1CLKDivider=RCC_HCLK_DIV4
|
||||||
@@ -425,7 +587,7 @@ RCC.HCLKFreq_Value=168000000
|
|||||||
RCC.HSE_VALUE=8000000
|
RCC.HSE_VALUE=8000000
|
||||||
RCC.HSI_VALUE=16000000
|
RCC.HSI_VALUE=16000000
|
||||||
RCC.I2SClocksFreq_Value=96000000
|
RCC.I2SClocksFreq_Value=96000000
|
||||||
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
|
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
|
||||||
RCC.LSI_VALUE=32000
|
RCC.LSI_VALUE=32000
|
||||||
RCC.MCO2PinFreq_Value=168000000
|
RCC.MCO2PinFreq_Value=168000000
|
||||||
RCC.PLLCLKFreq_Value=168000000
|
RCC.PLLCLKFreq_Value=168000000
|
||||||
@@ -433,7 +595,6 @@ RCC.PLLM=8
|
|||||||
RCC.PLLN=336
|
RCC.PLLN=336
|
||||||
RCC.PLLQ=7
|
RCC.PLLQ=7
|
||||||
RCC.PLLQCLKFreq_Value=48000000
|
RCC.PLLQCLKFreq_Value=48000000
|
||||||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
|
||||||
RCC.RTCFreq_Value=32000
|
RCC.RTCFreq_Value=32000
|
||||||
RCC.RTCHSEDivFreq_Value=4000000
|
RCC.RTCHSEDivFreq_Value=4000000
|
||||||
RCC.SYSCLKFreq_VALUE=168000000
|
RCC.SYSCLKFreq_VALUE=168000000
|
||||||
@@ -446,14 +607,30 @@ SH.GPXTI0.0=GPIO_EXTI0
|
|||||||
SH.GPXTI0.ConfNb=1
|
SH.GPXTI0.ConfNb=1
|
||||||
SH.GPXTI1.0=GPIO_EXTI1
|
SH.GPXTI1.0=GPIO_EXTI1
|
||||||
SH.GPXTI1.ConfNb=1
|
SH.GPXTI1.ConfNb=1
|
||||||
|
SH.GPXTI10.0=GPIO_EXTI10
|
||||||
|
SH.GPXTI10.ConfNb=1
|
||||||
|
SH.GPXTI15.0=GPIO_EXTI15
|
||||||
|
SH.GPXTI15.ConfNb=1
|
||||||
|
SH.GPXTI4.0=GPIO_EXTI4
|
||||||
|
SH.GPXTI4.ConfNb=1
|
||||||
|
SH.GPXTI5.0=GPIO_EXTI5
|
||||||
|
SH.GPXTI5.ConfNb=1
|
||||||
|
SH.GPXTI6.0=GPIO_EXTI6
|
||||||
|
SH.GPXTI6.ConfNb=1
|
||||||
|
SH.GPXTI7.0=GPIO_EXTI7
|
||||||
|
SH.GPXTI7.ConfNb=1
|
||||||
SH.GPXTI8.0=GPIO_EXTI8
|
SH.GPXTI8.0=GPIO_EXTI8
|
||||||
SH.GPXTI8.ConfNb=1
|
SH.GPXTI8.ConfNb=1
|
||||||
SH.GPXTI9.0=GPIO_EXTI9
|
SH.GPXTI9.0=GPIO_EXTI9
|
||||||
SH.GPXTI9.ConfNb=1
|
SH.GPXTI9.ConfNb=1
|
||||||
|
SH.S_TIM10_CH1.0=TIM10_CH1,PWM Generation1 CH1
|
||||||
|
SH.S_TIM10_CH1.ConfNb=1
|
||||||
|
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256
|
||||||
SPI1.BaudRatePrescaler-Full_Duplex_Master=SPI_BAUDRATEPRESCALER_2
|
SPI1.BaudRatePrescaler-Full_Duplex_Master=SPI_BAUDRATEPRESCALER_2
|
||||||
|
SPI1.CalculateBaudRate=328.125 KBits/s
|
||||||
SPI1.CalculateBaudRate-Full_Duplex_Master=42.0 MBits/s
|
SPI1.CalculateBaudRate-Full_Duplex_Master=42.0 MBits/s
|
||||||
SPI1.Direction=SPI_DIRECTION_2LINES
|
SPI1.Direction=SPI_DIRECTION_2LINES
|
||||||
SPI1.IPParameters=CalculateBaudRate-Full_Duplex_Master,BaudRatePrescaler-Full_Duplex_Master,Mode-Full_Duplex_Master,Mode,VirtualType,Direction
|
SPI1.IPParameters=CalculateBaudRate-Full_Duplex_Master,BaudRatePrescaler-Full_Duplex_Master,Mode-Full_Duplex_Master,Mode,VirtualType,Direction,BaudRatePrescaler,CalculateBaudRate
|
||||||
SPI1.Mode=SPI_MODE_MASTER
|
SPI1.Mode=SPI_MODE_MASTER
|
||||||
SPI1.Mode-Full_Duplex_Master=SPI_MODE_MASTER
|
SPI1.Mode-Full_Duplex_Master=SPI_MODE_MASTER
|
||||||
SPI1.VirtualType=VM_MASTER
|
SPI1.VirtualType=VM_MASTER
|
||||||
@@ -463,10 +640,18 @@ SPI2.Direction=SPI_DIRECTION_2LINES
|
|||||||
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
|
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
|
||||||
SPI2.Mode=SPI_MODE_MASTER
|
SPI2.Mode=SPI_MODE_MASTER
|
||||||
SPI2.VirtualType=VM_MASTER
|
SPI2.VirtualType=VM_MASTER
|
||||||
|
TIM10.Channel=TIM_CHANNEL_1
|
||||||
|
TIM10.IPParameters=Channel
|
||||||
|
USART2.IPParameters=VirtualMode
|
||||||
|
USART2.VirtualMode=VM_ASYNC
|
||||||
|
USB_OTG_FS.IPParameters=VirtualMode
|
||||||
|
USB_OTG_FS.VirtualMode=Device_Only
|
||||||
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
||||||
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
||||||
VP_SYS_VS_tim7.Mode=TIM7
|
VP_SYS_VS_tim7.Mode=TIM7
|
||||||
VP_SYS_VS_tim7.Signal=SYS_VS_tim7
|
VP_SYS_VS_tim7.Signal=SYS_VS_tim7
|
||||||
|
VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer
|
||||||
|
VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT
|
||||||
board=STM32F407G-DISC1
|
board=STM32F407G-DISC1
|
||||||
boardIOC=true
|
boardIOC=true
|
||||||
rtos.0.ip=FREERTOS
|
rtos.0.ip=FREERTOS
|
||||||
|
|||||||
Reference in New Issue
Block a user