可以啊
This commit is contained in:
parent
88f306cdef
commit
51f899bada
@ -68,7 +68,7 @@
|
|||||||
#define configTICK_RATE_HZ ((TickType_t)1000)
|
#define configTICK_RATE_HZ ((TickType_t)1000)
|
||||||
#define configMAX_PRIORITIES ( 56 )
|
#define configMAX_PRIORITIES ( 56 )
|
||||||
#define configMINIMAL_STACK_SIZE ((uint16_t)128)
|
#define configMINIMAL_STACK_SIZE ((uint16_t)128)
|
||||||
#define configTOTAL_HEAP_SIZE ((size_t)15360)
|
#define configTOTAL_HEAP_SIZE ((size_t)0x10000)
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
|||||||
@ -69,6 +69,8 @@ void Error_Handler(void);
|
|||||||
#define GYRO_CS_GPIO_Port GPIOC
|
#define GYRO_CS_GPIO_Port GPIOC
|
||||||
#define DCMI_PWDN_Pin GPIO_PIN_5
|
#define DCMI_PWDN_Pin GPIO_PIN_5
|
||||||
#define DCMI_PWDN_GPIO_Port GPIOC
|
#define DCMI_PWDN_GPIO_Port GPIOC
|
||||||
|
#define IMU_HEAT_Pin GPIO_PIN_1
|
||||||
|
#define IMU_HEAT_GPIO_Port GPIOB
|
||||||
#define ACCL_INT_Pin GPIO_PIN_10
|
#define ACCL_INT_Pin GPIO_PIN_10
|
||||||
#define ACCL_INT_GPIO_Port GPIOE
|
#define ACCL_INT_GPIO_Port GPIOE
|
||||||
#define ACCL_INT_EXTI_IRQn EXTI15_10_IRQn
|
#define ACCL_INT_EXTI_IRQn EXTI15_10_IRQn
|
||||||
@ -83,6 +85,8 @@ void Error_Handler(void);
|
|||||||
#define LCD_RES_GPIO_Port GPIOB
|
#define LCD_RES_GPIO_Port GPIOB
|
||||||
#define DCMI_REST_Pin GPIO_PIN_12
|
#define DCMI_REST_Pin GPIO_PIN_12
|
||||||
#define DCMI_REST_GPIO_Port GPIOB
|
#define DCMI_REST_GPIO_Port GPIOB
|
||||||
|
#define BUZZER_Pin GPIO_PIN_15
|
||||||
|
#define BUZZER_GPIO_Port GPIOB
|
||||||
#define LCD_DC_Pin GPIO_PIN_10
|
#define LCD_DC_Pin GPIO_PIN_10
|
||||||
#define LCD_DC_GPIO_Port GPIOD
|
#define LCD_DC_GPIO_Port GPIOD
|
||||||
|
|
||||||
|
|||||||
@ -36,15 +36,12 @@ extern SPI_HandleTypeDef hspi1;
|
|||||||
|
|
||||||
extern SPI_HandleTypeDef hspi2;
|
extern SPI_HandleTypeDef hspi2;
|
||||||
|
|
||||||
extern SPI_HandleTypeDef hspi6;
|
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
void MX_SPI1_Init(void);
|
void MX_SPI1_Init(void);
|
||||||
void MX_SPI2_Init(void);
|
void MX_SPI2_Init(void);
|
||||||
void MX_SPI6_Init(void);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN Prototypes */
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,7 @@ void DebugMon_Handler(void);
|
|||||||
void DMA1_Stream0_IRQHandler(void);
|
void DMA1_Stream0_IRQHandler(void);
|
||||||
void DMA1_Stream1_IRQHandler(void);
|
void DMA1_Stream1_IRQHandler(void);
|
||||||
void DMA1_Stream2_IRQHandler(void);
|
void DMA1_Stream2_IRQHandler(void);
|
||||||
|
void DMA1_Stream3_IRQHandler(void);
|
||||||
void FDCAN1_IT0_IRQHandler(void);
|
void FDCAN1_IT0_IRQHandler(void);
|
||||||
void FDCAN2_IT0_IRQHandler(void);
|
void FDCAN2_IT0_IRQHandler(void);
|
||||||
void FDCAN1_IT1_IRQHandler(void);
|
void FDCAN1_IT1_IRQHandler(void);
|
||||||
@ -64,6 +65,7 @@ void USART1_IRQHandler(void);
|
|||||||
void USART2_IRQHandler(void);
|
void USART2_IRQHandler(void);
|
||||||
void USART3_IRQHandler(void);
|
void USART3_IRQHandler(void);
|
||||||
void EXTI15_10_IRQHandler(void);
|
void EXTI15_10_IRQHandler(void);
|
||||||
|
void UART5_IRQHandler(void);
|
||||||
void UART7_IRQHandler(void);
|
void UART7_IRQHandler(void);
|
||||||
void USART10_IRQHandler(void);
|
void USART10_IRQHandler(void);
|
||||||
void FDCAN3_IT0_IRQHandler(void);
|
void FDCAN3_IT0_IRQHandler(void);
|
||||||
|
|||||||
@ -32,6 +32,8 @@ extern "C" {
|
|||||||
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern UART_HandleTypeDef huart5;
|
||||||
|
|
||||||
extern UART_HandleTypeDef huart7;
|
extern UART_HandleTypeDef huart7;
|
||||||
|
|
||||||
extern UART_HandleTypeDef huart1;
|
extern UART_HandleTypeDef huart1;
|
||||||
@ -46,6 +48,7 @@ extern UART_HandleTypeDef huart10;
|
|||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
void MX_UART5_Init(void);
|
||||||
void MX_UART7_Init(void);
|
void MX_UART7_Init(void);
|
||||||
void MX_USART1_UART_Init(void);
|
void MX_USART1_UART_Init(void);
|
||||||
void MX_USART2_UART_Init(void);
|
void MX_USART2_UART_Init(void);
|
||||||
|
|||||||
@ -52,6 +52,9 @@ void MX_DMA_Init(void)
|
|||||||
/* DMA1_Stream2_IRQn interrupt configuration */
|
/* DMA1_Stream2_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
|
||||||
|
/* DMA1_Stream3_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -47,7 +47,7 @@ void MX_FDCAN1_Init(void)
|
|||||||
hfdcan1.Init.ProtocolException = DISABLE;
|
hfdcan1.Init.ProtocolException = DISABLE;
|
||||||
hfdcan1.Init.NominalPrescaler = 24;
|
hfdcan1.Init.NominalPrescaler = 24;
|
||||||
hfdcan1.Init.NominalSyncJumpWidth = 1;
|
hfdcan1.Init.NominalSyncJumpWidth = 1;
|
||||||
hfdcan1.Init.NominalTimeSeg1 = 2;
|
hfdcan1.Init.NominalTimeSeg1 = 3;
|
||||||
hfdcan1.Init.NominalTimeSeg2 = 1;
|
hfdcan1.Init.NominalTimeSeg2 = 1;
|
||||||
hfdcan1.Init.DataPrescaler = 1;
|
hfdcan1.Init.DataPrescaler = 1;
|
||||||
hfdcan1.Init.DataSyncJumpWidth = 1;
|
hfdcan1.Init.DataSyncJumpWidth = 1;
|
||||||
@ -95,7 +95,7 @@ void MX_FDCAN2_Init(void)
|
|||||||
hfdcan2.Init.ProtocolException = DISABLE;
|
hfdcan2.Init.ProtocolException = DISABLE;
|
||||||
hfdcan2.Init.NominalPrescaler = 24;
|
hfdcan2.Init.NominalPrescaler = 24;
|
||||||
hfdcan2.Init.NominalSyncJumpWidth = 1;
|
hfdcan2.Init.NominalSyncJumpWidth = 1;
|
||||||
hfdcan2.Init.NominalTimeSeg1 = 1;
|
hfdcan2.Init.NominalTimeSeg1 = 3;
|
||||||
hfdcan2.Init.NominalTimeSeg2 = 1;
|
hfdcan2.Init.NominalTimeSeg2 = 1;
|
||||||
hfdcan2.Init.DataPrescaler = 1;
|
hfdcan2.Init.DataPrescaler = 1;
|
||||||
hfdcan2.Init.DataSyncJumpWidth = 1;
|
hfdcan2.Init.DataSyncJumpWidth = 1;
|
||||||
@ -143,7 +143,7 @@ void MX_FDCAN3_Init(void)
|
|||||||
hfdcan3.Init.ProtocolException = DISABLE;
|
hfdcan3.Init.ProtocolException = DISABLE;
|
||||||
hfdcan3.Init.NominalPrescaler = 24;
|
hfdcan3.Init.NominalPrescaler = 24;
|
||||||
hfdcan3.Init.NominalSyncJumpWidth = 1;
|
hfdcan3.Init.NominalSyncJumpWidth = 1;
|
||||||
hfdcan3.Init.NominalTimeSeg1 = 1;
|
hfdcan3.Init.NominalTimeSeg1 = 3;
|
||||||
hfdcan3.Init.NominalTimeSeg2 = 1;
|
hfdcan3.Init.NominalTimeSeg2 = 1;
|
||||||
hfdcan3.Init.DataPrescaler = 1;
|
hfdcan3.Init.DataPrescaler = 1;
|
||||||
hfdcan3.Init.DataSyncJumpWidth = 1;
|
hfdcan3.Init.DataSyncJumpWidth = 1;
|
||||||
|
|||||||
@ -1,127 +1,127 @@
|
|||||||
/* USER CODE BEGIN Header */
|
/* USER CODE BEGIN Header */
|
||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* File Name : freertos.c
|
* File Name : freertos.c
|
||||||
* Description : Code for freertos applications
|
* Description : Code for freertos applications
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* Copyright (c) 2026 STMicroelectronics.
|
* Copyright (c) 2026 STMicroelectronics.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This software is licensed under terms that can be found in the LICENSE file
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
* in the root directory of this software component.
|
* in the root directory of this software component.
|
||||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
*
|
*
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header */
|
/* USER CODE END Header */
|
||||||
|
|
||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "cmsis_os.h"
|
#include "cmsis_os.h"
|
||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN PTD */
|
/* USER CODE BEGIN PTD */
|
||||||
|
|
||||||
/* USER CODE END PTD */
|
/* USER CODE END PTD */
|
||||||
|
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN PD */
|
/* USER CODE BEGIN PD */
|
||||||
|
|
||||||
/* USER CODE END PD */
|
/* USER CODE END PD */
|
||||||
|
|
||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN PM */
|
/* USER CODE BEGIN PM */
|
||||||
|
|
||||||
/* USER CODE END PM */
|
/* USER CODE END PM */
|
||||||
|
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Variables */
|
/* USER CODE BEGIN Variables */
|
||||||
|
|
||||||
/* USER CODE END Variables */
|
/* USER CODE END Variables */
|
||||||
/* Definitions for defaultTask */
|
/* Definitions for defaultTask */
|
||||||
osThreadId_t defaultTaskHandle;
|
osThreadId_t defaultTaskHandle;
|
||||||
const osThreadAttr_t defaultTask_attributes = {
|
const osThreadAttr_t defaultTask_attributes = {
|
||||||
.name = "defaultTask",
|
.name = "defaultTask",
|
||||||
.stack_size = 128 * 4,
|
.stack_size = 128 * 4,
|
||||||
.priority = (osPriority_t) osPriorityNormal,
|
.priority = (osPriority_t) osPriorityNormal,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
/* USER CODE BEGIN FunctionPrototypes */
|
/* USER CODE BEGIN FunctionPrototypes */
|
||||||
|
|
||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
void StartDefaultTask(void *argument);
|
void StartDefaultTask(void *argument);
|
||||||
|
|
||||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief FreeRTOS initialization
|
* @brief FreeRTOS initialization
|
||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MX_FREERTOS_Init(void) {
|
void MX_FREERTOS_Init(void) {
|
||||||
/* USER CODE BEGIN Init */
|
/* USER CODE BEGIN Init */
|
||||||
|
|
||||||
/* USER CODE END Init */
|
/* USER CODE END Init */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_MUTEX */
|
/* USER CODE BEGIN RTOS_MUTEX */
|
||||||
/* add mutexes, ... */
|
/* add mutexes, ... */
|
||||||
/* USER CODE END RTOS_MUTEX */
|
/* USER CODE END RTOS_MUTEX */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_SEMAPHORES */
|
/* USER CODE BEGIN RTOS_SEMAPHORES */
|
||||||
/* add semaphores, ... */
|
/* add semaphores, ... */
|
||||||
/* USER CODE END RTOS_SEMAPHORES */
|
/* USER CODE END RTOS_SEMAPHORES */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_TIMERS */
|
/* USER CODE BEGIN RTOS_TIMERS */
|
||||||
/* start timers, add new ones, ... */
|
/* start timers, add new ones, ... */
|
||||||
/* USER CODE END RTOS_TIMERS */
|
/* USER CODE END RTOS_TIMERS */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_QUEUES */
|
/* USER CODE BEGIN RTOS_QUEUES */
|
||||||
/* add queues, ... */
|
/* add queues, ... */
|
||||||
/* USER CODE END RTOS_QUEUES */
|
/* USER CODE END RTOS_QUEUES */
|
||||||
|
|
||||||
/* Create the thread(s) */
|
/* Create the thread(s) */
|
||||||
/* creation of defaultTask */
|
/* creation of defaultTask */
|
||||||
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
|
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_THREADS */
|
/* USER CODE BEGIN RTOS_THREADS */
|
||||||
/* add threads, ... */
|
/* add threads, ... */
|
||||||
osThreadNew(Task_Init, NULL, &attr_init); // 创建初始化任务
|
osThreadNew(Task_Init, NULL, &attr_init); // 创建初始化任务
|
||||||
/* USER CODE END RTOS_THREADS */
|
/* USER CODE END RTOS_THREADS */
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_EVENTS */
|
/* USER CODE BEGIN RTOS_EVENTS */
|
||||||
/* add events, ... */
|
/* add events, ... */
|
||||||
/* USER CODE END RTOS_EVENTS */
|
/* USER CODE END RTOS_EVENTS */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN Header_StartDefaultTask */
|
/* USER CODE BEGIN Header_StartDefaultTask */
|
||||||
/**
|
/**
|
||||||
* @brief Function implementing the defaultTask thread.
|
* @brief Function implementing the defaultTask thread.
|
||||||
* @param argument: Not used
|
* @param argument: Not used
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header_StartDefaultTask */
|
/* USER CODE END Header_StartDefaultTask */
|
||||||
void StartDefaultTask(void *argument)
|
void StartDefaultTask(void *argument)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN StartDefaultTask */
|
/* USER CODE BEGIN StartDefaultTask */
|
||||||
osThreadTerminate(osThreadGetId());
|
osThreadTerminate(osThreadGetId());
|
||||||
/* USER CODE END StartDefaultTask */
|
/* USER CODE END StartDefaultTask */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Private application code --------------------------------------------------*/
|
/* Private application code --------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Application */
|
/* USER CODE BEGIN Application */
|
||||||
|
|
||||||
/* USER CODE END Application */
|
/* USER CODE END Application */
|
||||||
|
|
||||||
|
|||||||
@ -100,7 +100,6 @@ int main(void)
|
|||||||
MX_ADC1_Init();
|
MX_ADC1_Init();
|
||||||
MX_TIM12_Init();
|
MX_TIM12_Init();
|
||||||
MX_SPI1_Init();
|
MX_SPI1_Init();
|
||||||
MX_SPI6_Init();
|
|
||||||
MX_SPI2_Init();
|
MX_SPI2_Init();
|
||||||
MX_TIM3_Init();
|
MX_TIM3_Init();
|
||||||
MX_USART1_UART_Init();
|
MX_USART1_UART_Init();
|
||||||
@ -115,6 +114,7 @@ int main(void)
|
|||||||
MX_TIM2_Init();
|
MX_TIM2_Init();
|
||||||
MX_OCTOSPI1_Init();
|
MX_OCTOSPI1_Init();
|
||||||
MX_USB_OTG_HS_PCD_Init();
|
MX_USB_OTG_HS_PCD_Init();
|
||||||
|
MX_UART5_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|||||||
105
Core/Src/spi.c
105
Core/Src/spi.c
@ -26,7 +26,6 @@
|
|||||||
|
|
||||||
SPI_HandleTypeDef hspi1;
|
SPI_HandleTypeDef hspi1;
|
||||||
SPI_HandleTypeDef hspi2;
|
SPI_HandleTypeDef hspi2;
|
||||||
SPI_HandleTypeDef hspi6;
|
|
||||||
DMA_HandleTypeDef hdma_spi2_rx;
|
DMA_HandleTypeDef hdma_spi2_rx;
|
||||||
DMA_HandleTypeDef hdma_spi2_tx;
|
DMA_HandleTypeDef hdma_spi2_tx;
|
||||||
|
|
||||||
@ -113,48 +112,6 @@ void MX_SPI2_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END SPI2_Init 2 */
|
/* USER CODE END SPI2_Init 2 */
|
||||||
|
|
||||||
}
|
|
||||||
/* SPI6 init function */
|
|
||||||
void MX_SPI6_Init(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI6_Init 0 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_Init 0 */
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI6_Init 1 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_Init 1 */
|
|
||||||
hspi6.Instance = SPI6;
|
|
||||||
hspi6.Init.Mode = SPI_MODE_MASTER;
|
|
||||||
hspi6.Init.Direction = SPI_DIRECTION_2LINES_TXONLY;
|
|
||||||
hspi6.Init.DataSize = SPI_DATASIZE_8BIT;
|
|
||||||
hspi6.Init.CLKPolarity = SPI_POLARITY_LOW;
|
|
||||||
hspi6.Init.CLKPhase = SPI_PHASE_2EDGE;
|
|
||||||
hspi6.Init.NSS = SPI_NSS_SOFT;
|
|
||||||
hspi6.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
|
|
||||||
hspi6.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
|
||||||
hspi6.Init.TIMode = SPI_TIMODE_DISABLE;
|
|
||||||
hspi6.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
|
||||||
hspi6.Init.CRCPolynomial = 0x0;
|
|
||||||
hspi6.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
|
||||||
hspi6.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
|
|
||||||
hspi6.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
|
|
||||||
hspi6.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
|
|
||||||
hspi6.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
|
|
||||||
hspi6.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
|
|
||||||
hspi6.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
|
|
||||||
hspi6.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
|
|
||||||
hspi6.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
|
|
||||||
hspi6.Init.IOSwap = SPI_IO_SWAP_DISABLE;
|
|
||||||
if (HAL_SPI_Init(&hspi6) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
/* USER CODE BEGIN SPI6_Init 2 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_Init 2 */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||||
@ -287,48 +244,6 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
|||||||
|
|
||||||
/* USER CODE END SPI2_MspInit 1 */
|
/* USER CODE END SPI2_MspInit 1 */
|
||||||
}
|
}
|
||||||
else if(spiHandle->Instance==SPI6)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI6_MspInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_MspInit 0 */
|
|
||||||
|
|
||||||
/** Initializes the peripherals clock
|
|
||||||
*/
|
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI6;
|
|
||||||
PeriphClkInitStruct.Spi6ClockSelection = RCC_SPI6CLKSOURCE_HSE;
|
|
||||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SPI6 clock enable */
|
|
||||||
__HAL_RCC_SPI6_CLK_ENABLE();
|
|
||||||
|
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
||||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
||||||
/**SPI6 GPIO Configuration
|
|
||||||
PA7 ------> SPI6_MOSI
|
|
||||||
PC12 ------> SPI6_SCK
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_7;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF8_SPI6;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_12;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI6;
|
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI6_MspInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_MspInit 1 */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
||||||
@ -381,26 +296,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
|||||||
|
|
||||||
/* USER CODE END SPI2_MspDeInit 1 */
|
/* USER CODE END SPI2_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
else if(spiHandle->Instance==SPI6)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI6_MspDeInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_MspDeInit 0 */
|
|
||||||
/* Peripheral clock disable */
|
|
||||||
__HAL_RCC_SPI6_CLK_DISABLE();
|
|
||||||
|
|
||||||
/**SPI6 GPIO Configuration
|
|
||||||
PA7 ------> SPI6_MOSI
|
|
||||||
PC12 ------> SPI6_SCK
|
|
||||||
*/
|
|
||||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_7);
|
|
||||||
|
|
||||||
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI6_MspDeInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END SPI6_MspDeInit 1 */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|||||||
@ -62,6 +62,8 @@ extern FDCAN_HandleTypeDef hfdcan3;
|
|||||||
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 SPI_HandleTypeDef hspi2;
|
extern SPI_HandleTypeDef hspi2;
|
||||||
|
extern DMA_HandleTypeDef hdma_uart5_rx;
|
||||||
|
extern UART_HandleTypeDef huart5;
|
||||||
extern UART_HandleTypeDef huart7;
|
extern UART_HandleTypeDef huart7;
|
||||||
extern UART_HandleTypeDef huart1;
|
extern UART_HandleTypeDef huart1;
|
||||||
extern UART_HandleTypeDef huart2;
|
extern UART_HandleTypeDef huart2;
|
||||||
@ -213,6 +215,20 @@ void DMA1_Stream2_IRQHandler(void)
|
|||||||
/* USER CODE END DMA1_Stream2_IRQn 1 */
|
/* USER CODE END DMA1_Stream2_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA1 stream3 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA1_Stream3_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Stream3_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_uart5_rx);
|
||||||
|
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Stream3_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles FDCAN1 interrupt 0.
|
* @brief This function handles FDCAN1 interrupt 0.
|
||||||
*/
|
*/
|
||||||
@ -340,6 +356,20 @@ void EXTI15_10_IRQHandler(void)
|
|||||||
/* USER CODE END EXTI15_10_IRQn 1 */
|
/* USER CODE END EXTI15_10_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles UART5 global interrupt.
|
||||||
|
*/
|
||||||
|
void UART5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN UART5_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_IRQn 0 */
|
||||||
|
HAL_UART_IRQHandler(&huart5);
|
||||||
|
/* USER CODE BEGIN UART5_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles UART7 global interrupt.
|
* @brief This function handles UART7 global interrupt.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -340,12 +340,12 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
|||||||
/**TIM3 GPIO Configuration
|
/**TIM3 GPIO Configuration
|
||||||
PB1 ------> TIM3_CH4
|
PB1 ------> TIM3_CH4
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
GPIO_InitStruct.Pin = IMU_HEAT_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
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_AF2_TIM3;
|
GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(IMU_HEAT_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 1 */
|
/* USER CODE BEGIN TIM3_MspPostInit 1 */
|
||||||
|
|
||||||
@ -361,12 +361,12 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
|||||||
/**TIM12 GPIO Configuration
|
/**TIM12 GPIO Configuration
|
||||||
PB15 ------> TIM12_CH2
|
PB15 ------> TIM12_CH2
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_15;
|
GPIO_InitStruct.Pin = BUZZER_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
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_AF2_TIM12;
|
GPIO_InitStruct.Alternate = GPIO_AF2_TIM12;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(BUZZER_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM12_MspPostInit 1 */
|
/* USER CODE BEGIN TIM12_MspPostInit 1 */
|
||||||
|
|
||||||
|
|||||||
138
Core/Src/usart.c
138
Core/Src/usart.c
@ -24,12 +24,57 @@
|
|||||||
|
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
UART_HandleTypeDef huart5;
|
||||||
UART_HandleTypeDef huart7;
|
UART_HandleTypeDef huart7;
|
||||||
UART_HandleTypeDef huart1;
|
UART_HandleTypeDef huart1;
|
||||||
UART_HandleTypeDef huart2;
|
UART_HandleTypeDef huart2;
|
||||||
UART_HandleTypeDef huart3;
|
UART_HandleTypeDef huart3;
|
||||||
UART_HandleTypeDef huart10;
|
UART_HandleTypeDef huart10;
|
||||||
|
DMA_HandleTypeDef hdma_uart5_rx;
|
||||||
|
|
||||||
|
/* UART5 init function */
|
||||||
|
void MX_UART5_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN UART5_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN UART5_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_Init 1 */
|
||||||
|
huart5.Instance = UART5;
|
||||||
|
huart5.Init.BaudRate = 100000;
|
||||||
|
huart5.Init.WordLength = UART_WORDLENGTH_9B;
|
||||||
|
huart5.Init.StopBits = UART_STOPBITS_1;
|
||||||
|
huart5.Init.Parity = UART_PARITY_EVEN;
|
||||||
|
huart5.Init.Mode = UART_MODE_RX;
|
||||||
|
huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
huart5.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
|
huart5.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||||||
|
huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||||
|
if (HAL_UART_Init(&huart5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart5, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart5, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_DisableFifoMode(&huart5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN UART5_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
/* UART7 init function */
|
/* UART7 init function */
|
||||||
void MX_UART7_Init(void)
|
void MX_UART7_Init(void)
|
||||||
{
|
{
|
||||||
@ -255,7 +300,71 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
|||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
if(uartHandle->Instance==UART7)
|
if(uartHandle->Instance==UART5)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN UART5_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_MspInit 0 */
|
||||||
|
|
||||||
|
/** Initializes the peripherals clock
|
||||||
|
*/
|
||||||
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_UART5;
|
||||||
|
PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
|
||||||
|
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* UART5 clock enable */
|
||||||
|
__HAL_RCC_UART5_CLK_ENABLE();
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||||
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
/**UART5 GPIO Configuration
|
||||||
|
PC12 ------> UART5_TX
|
||||||
|
PD2 ------> UART5_RX
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_12;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_2;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
|
||||||
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* UART5 DMA Init */
|
||||||
|
/* UART5_RX Init */
|
||||||
|
hdma_uart5_rx.Instance = DMA1_Stream3;
|
||||||
|
hdma_uart5_rx.Init.Request = DMA_REQUEST_UART5_RX;
|
||||||
|
hdma_uart5_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||||
|
hdma_uart5_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_uart5_rx.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_uart5_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||||
|
hdma_uart5_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||||
|
hdma_uart5_rx.Init.Mode = DMA_NORMAL;
|
||||||
|
hdma_uart5_rx.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
hdma_uart5_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||||
|
if (HAL_DMA_Init(&hdma_uart5_rx) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(uartHandle,hdmarx,hdma_uart5_rx);
|
||||||
|
|
||||||
|
/* UART5 interrupt Init */
|
||||||
|
HAL_NVIC_SetPriority(UART5_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(UART5_IRQn);
|
||||||
|
/* USER CODE BEGIN UART5_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_MspInit 1 */
|
||||||
|
}
|
||||||
|
else if(uartHandle->Instance==UART7)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN UART7_MspInit 0 */
|
/* USER CODE BEGIN UART7_MspInit 0 */
|
||||||
|
|
||||||
@ -462,7 +571,32 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
|||||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(uartHandle->Instance==UART7)
|
if(uartHandle->Instance==UART5)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN UART5_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_UART5_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**UART5 GPIO Configuration
|
||||||
|
PC12 ------> UART5_TX
|
||||||
|
PD2 ------> UART5_RX
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12);
|
||||||
|
|
||||||
|
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
|
||||||
|
|
||||||
|
/* UART5 DMA DeInit */
|
||||||
|
HAL_DMA_DeInit(uartHandle->hdmarx);
|
||||||
|
|
||||||
|
/* UART5 interrupt Deinit */
|
||||||
|
HAL_NVIC_DisableIRQ(UART5_IRQn);
|
||||||
|
/* USER CODE BEGIN UART5_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END UART5_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
else if(uartHandle->Instance==UART7)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN UART7_MspDeInit 0 */
|
/* USER CODE BEGIN UART7_MspDeInit 0 */
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,8 @@ Dma.ADC1.0.SyncSignalID=NONE
|
|||||||
Dma.Request0=ADC1
|
Dma.Request0=ADC1
|
||||||
Dma.Request1=SPI2_RX
|
Dma.Request1=SPI2_RX
|
||||||
Dma.Request2=SPI2_TX
|
Dma.Request2=SPI2_TX
|
||||||
Dma.RequestsNb=3
|
Dma.Request3=UART5_RX
|
||||||
|
Dma.RequestsNb=4
|
||||||
Dma.SPI2_RX.1.Direction=DMA_PERIPH_TO_MEMORY
|
Dma.SPI2_RX.1.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
Dma.SPI2_RX.1.EventEnable=DISABLE
|
Dma.SPI2_RX.1.EventEnable=DISABLE
|
||||||
Dma.SPI2_RX.1.FIFOMode=DMA_FIFOMODE_DISABLE
|
Dma.SPI2_RX.1.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||||
@ -87,35 +88,56 @@ Dma.SPI2_TX.2.SyncEnable=DISABLE
|
|||||||
Dma.SPI2_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
|
Dma.SPI2_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
|
||||||
Dma.SPI2_TX.2.SyncRequestNumber=1
|
Dma.SPI2_TX.2.SyncRequestNumber=1
|
||||||
Dma.SPI2_TX.2.SyncSignalID=NONE
|
Dma.SPI2_TX.2.SyncSignalID=NONE
|
||||||
FDCAN1.CalculateBaudRateNominal=1250000
|
Dma.UART5_RX.3.Direction=DMA_PERIPH_TO_MEMORY
|
||||||
FDCAN1.CalculateTimeBitNominal=800
|
Dma.UART5_RX.3.EventEnable=DISABLE
|
||||||
|
Dma.UART5_RX.3.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||||
|
Dma.UART5_RX.3.Instance=DMA1_Stream3
|
||||||
|
Dma.UART5_RX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||||
|
Dma.UART5_RX.3.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.UART5_RX.3.Mode=DMA_NORMAL
|
||||||
|
Dma.UART5_RX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||||
|
Dma.UART5_RX.3.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.UART5_RX.3.Polarity=HAL_DMAMUX_REQ_GEN_RISING
|
||||||
|
Dma.UART5_RX.3.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.UART5_RX.3.RequestNumber=1
|
||||||
|
Dma.UART5_RX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
|
||||||
|
Dma.UART5_RX.3.SignalID=NONE
|
||||||
|
Dma.UART5_RX.3.SyncEnable=DISABLE
|
||||||
|
Dma.UART5_RX.3.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
|
||||||
|
Dma.UART5_RX.3.SyncRequestNumber=1
|
||||||
|
Dma.UART5_RX.3.SyncSignalID=NONE
|
||||||
|
FDCAN1.CalculateBaudRateNominal=1000000
|
||||||
|
FDCAN1.CalculateTimeBitNominal=1000
|
||||||
FDCAN1.CalculateTimeQuantumNominal=200.0
|
FDCAN1.CalculateTimeQuantumNominal=200.0
|
||||||
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr,NominalTimeSeg1
|
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr,NominalTimeSeg1
|
||||||
FDCAN1.NominalPrescaler=24
|
FDCAN1.NominalPrescaler=24
|
||||||
FDCAN1.NominalTimeSeg1=2
|
FDCAN1.NominalTimeSeg1=3
|
||||||
FDCAN1.RxFifo0ElmtsNbr=32
|
FDCAN1.RxFifo0ElmtsNbr=32
|
||||||
FDCAN1.StdFiltersNbr=1
|
FDCAN1.StdFiltersNbr=1
|
||||||
FDCAN1.TxFifoQueueElmtsNbr=32
|
FDCAN1.TxFifoQueueElmtsNbr=32
|
||||||
FDCAN2.CalculateBaudRateNominal=1666666
|
FDCAN2.CalculateBaudRateNominal=1000000
|
||||||
FDCAN2.CalculateTimeBitNominal=600
|
FDCAN2.CalculateTimeBitNominal=1000
|
||||||
FDCAN2.CalculateTimeQuantumNominal=200.0
|
FDCAN2.CalculateTimeQuantumNominal=200.0
|
||||||
FDCAN2.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr
|
FDCAN2.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr,NominalTimeSeg1
|
||||||
FDCAN2.MessageRAMOffset=0x406
|
FDCAN2.MessageRAMOffset=0x406
|
||||||
FDCAN2.NominalPrescaler=24
|
FDCAN2.NominalPrescaler=24
|
||||||
|
FDCAN2.NominalTimeSeg1=3
|
||||||
FDCAN2.RxFifo0ElmtsNbr=32
|
FDCAN2.RxFifo0ElmtsNbr=32
|
||||||
FDCAN2.StdFiltersNbr=1
|
FDCAN2.StdFiltersNbr=1
|
||||||
FDCAN2.TxFifoQueueElmtsNbr=32
|
FDCAN2.TxFifoQueueElmtsNbr=32
|
||||||
FDCAN3.CalculateBaudRateNominal=1666666
|
FDCAN3.CalculateBaudRateNominal=1000000
|
||||||
FDCAN3.CalculateTimeBitNominal=600
|
FDCAN3.CalculateTimeBitNominal=1000
|
||||||
FDCAN3.CalculateTimeQuantumNominal=200.0
|
FDCAN3.CalculateTimeQuantumNominal=200.0
|
||||||
FDCAN3.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr
|
FDCAN3.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,MessageRAMOffset,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr,NominalTimeSeg1
|
||||||
FDCAN3.MessageRAMOffset=0x812
|
FDCAN3.MessageRAMOffset=0x812
|
||||||
FDCAN3.NominalPrescaler=24
|
FDCAN3.NominalPrescaler=24
|
||||||
|
FDCAN3.NominalTimeSeg1=3
|
||||||
FDCAN3.RxFifo0ElmtsNbr=32
|
FDCAN3.RxFifo0ElmtsNbr=32
|
||||||
FDCAN3.StdFiltersNbr=1
|
FDCAN3.StdFiltersNbr=1
|
||||||
FDCAN3.TxFifoQueueElmtsNbr=32
|
FDCAN3.TxFifoQueueElmtsNbr=32
|
||||||
FREERTOS.IPParameters=Tasks01
|
FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE
|
||||||
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
|
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
|
||||||
|
FREERTOS.configTOTAL_HEAP_SIZE=0x10000
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=Group By Peripherals
|
GPIO.groupedBy=Group By Peripherals
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
@ -129,12 +151,12 @@ Mcu.IP10=OCTOSPI1
|
|||||||
Mcu.IP11=RCC
|
Mcu.IP11=RCC
|
||||||
Mcu.IP12=SPI1
|
Mcu.IP12=SPI1
|
||||||
Mcu.IP13=SPI2
|
Mcu.IP13=SPI2
|
||||||
Mcu.IP14=SPI6
|
Mcu.IP14=SYS
|
||||||
Mcu.IP15=SYS
|
Mcu.IP15=TIM1
|
||||||
Mcu.IP16=TIM1
|
Mcu.IP16=TIM2
|
||||||
Mcu.IP17=TIM2
|
Mcu.IP17=TIM3
|
||||||
Mcu.IP18=TIM3
|
Mcu.IP18=TIM12
|
||||||
Mcu.IP19=TIM12
|
Mcu.IP19=UART5
|
||||||
Mcu.IP2=DEBUG
|
Mcu.IP2=DEBUG
|
||||||
Mcu.IP20=UART7
|
Mcu.IP20=UART7
|
||||||
Mcu.IP21=USART1
|
Mcu.IP21=USART1
|
||||||
@ -160,47 +182,47 @@ Mcu.Pin12=PA1
|
|||||||
Mcu.Pin13=PA2
|
Mcu.Pin13=PA2
|
||||||
Mcu.Pin14=PA3
|
Mcu.Pin14=PA3
|
||||||
Mcu.Pin15=PA5
|
Mcu.Pin15=PA5
|
||||||
Mcu.Pin16=PA7
|
Mcu.Pin16=PC4
|
||||||
Mcu.Pin17=PC4
|
Mcu.Pin17=PC5
|
||||||
Mcu.Pin18=PC5
|
Mcu.Pin18=PB0
|
||||||
Mcu.Pin19=PB0
|
Mcu.Pin19=PB1
|
||||||
Mcu.Pin2=PC13
|
Mcu.Pin2=PC13
|
||||||
Mcu.Pin20=PB1
|
Mcu.Pin20=PB2
|
||||||
Mcu.Pin21=PB2
|
Mcu.Pin21=PE7
|
||||||
Mcu.Pin22=PE7
|
Mcu.Pin22=PE8
|
||||||
Mcu.Pin23=PE8
|
Mcu.Pin23=PE9
|
||||||
Mcu.Pin24=PE9
|
Mcu.Pin24=PE10
|
||||||
Mcu.Pin25=PE10
|
Mcu.Pin25=PE11
|
||||||
Mcu.Pin26=PE11
|
Mcu.Pin26=PE12
|
||||||
Mcu.Pin27=PE12
|
Mcu.Pin27=PE13
|
||||||
Mcu.Pin28=PE13
|
Mcu.Pin28=PE15
|
||||||
Mcu.Pin29=PE15
|
Mcu.Pin29=PB10
|
||||||
Mcu.Pin3=PC14-OSC32_IN
|
Mcu.Pin3=PC14-OSC32_IN
|
||||||
Mcu.Pin30=PB10
|
Mcu.Pin30=PB11
|
||||||
Mcu.Pin31=PB11
|
Mcu.Pin31=PB12
|
||||||
Mcu.Pin32=PB12
|
Mcu.Pin32=PB13
|
||||||
Mcu.Pin33=PB13
|
Mcu.Pin33=PB14
|
||||||
Mcu.Pin34=PB14
|
Mcu.Pin34=PB15
|
||||||
Mcu.Pin35=PB15
|
Mcu.Pin35=PD8
|
||||||
Mcu.Pin36=PD8
|
Mcu.Pin36=PD9
|
||||||
Mcu.Pin37=PD9
|
Mcu.Pin37=PD10
|
||||||
Mcu.Pin38=PD10
|
Mcu.Pin38=PD11
|
||||||
Mcu.Pin39=PD11
|
Mcu.Pin39=PD12
|
||||||
Mcu.Pin4=PC15-OSC32_OUT
|
Mcu.Pin4=PC15-OSC32_OUT
|
||||||
Mcu.Pin40=PD12
|
Mcu.Pin40=PD13
|
||||||
Mcu.Pin41=PD13
|
Mcu.Pin41=PA8
|
||||||
Mcu.Pin42=PA8
|
Mcu.Pin42=PA9
|
||||||
Mcu.Pin43=PA9
|
Mcu.Pin43=PA10
|
||||||
Mcu.Pin44=PA10
|
Mcu.Pin44=PA11
|
||||||
Mcu.Pin45=PA11
|
Mcu.Pin45=PA12
|
||||||
Mcu.Pin46=PA12
|
Mcu.Pin46=PA13(JTMS/SWDIO)
|
||||||
Mcu.Pin47=PA13(JTMS/SWDIO)
|
Mcu.Pin47=PA14(JTCK/SWCLK)
|
||||||
Mcu.Pin48=PA14(JTCK/SWCLK)
|
Mcu.Pin48=PA15(JTDI)
|
||||||
Mcu.Pin49=PA15(JTDI)
|
Mcu.Pin49=PC12
|
||||||
Mcu.Pin5=PH0-OSC_IN
|
Mcu.Pin5=PH0-OSC_IN
|
||||||
Mcu.Pin50=PC12
|
Mcu.Pin50=PD0
|
||||||
Mcu.Pin51=PD0
|
Mcu.Pin51=PD1
|
||||||
Mcu.Pin52=PD1
|
Mcu.Pin52=PD2
|
||||||
Mcu.Pin53=PD4
|
Mcu.Pin53=PD4
|
||||||
Mcu.Pin54=PD5
|
Mcu.Pin54=PD5
|
||||||
Mcu.Pin55=PD6
|
Mcu.Pin55=PD6
|
||||||
@ -226,6 +248,7 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
|||||||
NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DMA1_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA1_Stream2_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.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.EXTI15_10_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.FDCAN1_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.FDCAN1_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
@ -249,6 +272,7 @@ NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
|
|||||||
NVIC.TIM23_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
|
NVIC.TIM23_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
|
||||||
NVIC.TimeBase=TIM23_IRQn
|
NVIC.TimeBase=TIM23_IRQn
|
||||||
NVIC.TimeBaseIP=TIM23
|
NVIC.TimeBaseIP=TIM23
|
||||||
|
NVIC.UART5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.UART7_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
NVIC.UART7_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.USART10_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
NVIC.USART10_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.USART1_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
NVIC.USART1_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true\:true
|
||||||
@ -282,8 +306,6 @@ PA3.Mode=OCTOSPI1_IOL_Port1L
|
|||||||
PA3.Signal=OCTOSPIM_P1_IO2
|
PA3.Signal=OCTOSPIM_P1_IO2
|
||||||
PA5.Locked=true
|
PA5.Locked=true
|
||||||
PA5.Signal=ADCx_INP19
|
PA5.Signal=ADCx_INP19
|
||||||
PA7.Mode=TX_Only_Simplex_Unidirect_Master
|
|
||||||
PA7.Signal=SPI6_MOSI
|
|
||||||
PA8.Locked=true
|
PA8.Locked=true
|
||||||
PA8.Mode=Clock-out-1
|
PA8.Mode=Clock-out-1
|
||||||
PA8.Signal=RCC_MCO_1
|
PA8.Signal=RCC_MCO_1
|
||||||
@ -293,6 +315,8 @@ PA9.Signal=USART1_TX
|
|||||||
PB0.Locked=true
|
PB0.Locked=true
|
||||||
PB0.Mode=OCTOSPI1_IOL_Port1L
|
PB0.Mode=OCTOSPI1_IOL_Port1L
|
||||||
PB0.Signal=OCTOSPIM_P1_IO1
|
PB0.Signal=OCTOSPIM_P1_IO1
|
||||||
|
PB1.GPIOParameters=GPIO_Label
|
||||||
|
PB1.GPIO_Label=IMU_HEAT
|
||||||
PB1.Locked=true
|
PB1.Locked=true
|
||||||
PB1.Signal=S_TIM3_CH4
|
PB1.Signal=S_TIM3_CH4
|
||||||
PB10.GPIOParameters=GPIO_Label
|
PB10.GPIOParameters=GPIO_Label
|
||||||
@ -317,6 +341,8 @@ PB13.Mode=Full_Duplex_Master
|
|||||||
PB13.Signal=SPI2_SCK
|
PB13.Signal=SPI2_SCK
|
||||||
PB14.Mode=Hardware Flow Control (RS485)
|
PB14.Mode=Hardware Flow Control (RS485)
|
||||||
PB14.Signal=USART3_DE
|
PB14.Signal=USART3_DE
|
||||||
|
PB15.GPIOParameters=GPIO_Label
|
||||||
|
PB15.GPIO_Label=BUZZER
|
||||||
PB15.Locked=true
|
PB15.Locked=true
|
||||||
PB15.Signal=S_TIM12_CH2
|
PB15.Signal=S_TIM12_CH2
|
||||||
PB2.Locked=true
|
PB2.Locked=true
|
||||||
@ -342,8 +368,8 @@ PC1.GPIOParameters=GPIO_Speed
|
|||||||
PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||||
PC1.Mode=Full_Duplex_Master
|
PC1.Mode=Full_Duplex_Master
|
||||||
PC1.Signal=SPI2_MOSI
|
PC1.Signal=SPI2_MOSI
|
||||||
PC12.Mode=TX_Only_Simplex_Unidirect_Master
|
PC12.Mode=Asynchronous
|
||||||
PC12.Signal=SPI6_SCK
|
PC12.Signal=UART5_TX
|
||||||
PC13.GPIOParameters=PinState,GPIO_Label
|
PC13.GPIOParameters=PinState,GPIO_Label
|
||||||
PC13.GPIO_Label=POWER_24V_2
|
PC13.GPIO_Label=POWER_24V_2
|
||||||
PC13.Locked=true
|
PC13.Locked=true
|
||||||
@ -395,6 +421,8 @@ PD12.Signal=FDCAN3_RX
|
|||||||
PD13.Locked=true
|
PD13.Locked=true
|
||||||
PD13.Mode=FDCAN_Activate
|
PD13.Mode=FDCAN_Activate
|
||||||
PD13.Signal=FDCAN3_TX
|
PD13.Signal=FDCAN3_TX
|
||||||
|
PD2.Mode=Asynchronous
|
||||||
|
PD2.Signal=UART5_RX
|
||||||
PD4.Locked=true
|
PD4.Locked=true
|
||||||
PD4.Mode=Hardware Flow Control (RS485)
|
PD4.Mode=Hardware Flow Control (RS485)
|
||||||
PD4.Signal=USART2_DE
|
PD4.Signal=USART2_DE
|
||||||
@ -475,7 +503,7 @@ ProjectManager.ToolChainLocation=
|
|||||||
ProjectManager.UAScriptAfterPath=
|
ProjectManager.UAScriptAfterPath=
|
||||||
ProjectManager.UAScriptBeforePath=
|
ProjectManager.UAScriptBeforePath=
|
||||||
ProjectManager.UnderRoot=false
|
ProjectManager.UnderRoot=false
|
||||||
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_ADC1_Init-ADC1-false-HAL-true,5-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,6-MX_TIM12_Init-TIM12-false-HAL-true,7-MX_SPI1_Init-SPI1-false-HAL-true,8-MX_SPI6_Init-SPI6-false-HAL-true,9-MX_SPI2_Init-SPI2-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART1_UART_Init-USART1-false-HAL-true,12-MX_USART2_UART_Init-USART2-false-HAL-true,13-MX_USART3_UART_Init-USART3-false-HAL-true,14-MX_UART7_Init-UART7-false-HAL-true,15-MX_USART10_UART_Init-USART10-false-HAL-true,16-MX_FDCAN1_Init-FDCAN1-false-HAL-true,17-MX_FDCAN2_Init-FDCAN2-false-HAL-true,18-MX_FDCAN3_Init-FDCAN3-false-HAL-true,19-MX_TIM1_Init-TIM1-false-HAL-true,20-MX_TIM2_Init-TIM2-false-HAL-true,21-MX_OCTOSPI1_Init-OCTOSPI1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-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_ADC1_Init-ADC1-false-HAL-true,5-MX_TIM12_Init-TIM12-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_SPI2_Init-SPI2-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_USART2_UART_Init-USART2-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_UART7_Init-UART7-false-HAL-true,13-MX_USART10_UART_Init-USART10-false-HAL-true,14-MX_FDCAN1_Init-FDCAN1-false-HAL-true,15-MX_FDCAN2_Init-FDCAN2-false-HAL-true,16-MX_FDCAN3_Init-FDCAN3-false-HAL-true,17-MX_TIM1_Init-TIM1-false-HAL-true,18-MX_TIM2_Init-TIM2-false-HAL-true,19-MX_OCTOSPI1_Init-OCTOSPI1-false-HAL-true,20-MX_USB_OTG_HS_PCD_Init-USB_OTG_HS-false-HAL-true,21-MX_UART5_Init-UART5-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||||
RCC.ADCFreq_Value=96000000
|
RCC.ADCFreq_Value=96000000
|
||||||
RCC.AHB12Freq_Value=240000000
|
RCC.AHB12Freq_Value=240000000
|
||||||
RCC.AHB4Freq_Value=240000000
|
RCC.AHB4Freq_Value=240000000
|
||||||
@ -600,14 +628,6 @@ SPI2.Direction=SPI_DIRECTION_2LINES
|
|||||||
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
|
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
|
||||||
SPI2.Mode=SPI_MODE_MASTER
|
SPI2.Mode=SPI_MODE_MASTER
|
||||||
SPI2.VirtualType=VM_MASTER
|
SPI2.VirtualType=VM_MASTER
|
||||||
SPI6.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_4
|
|
||||||
SPI6.CLKPhase=SPI_PHASE_2EDGE
|
|
||||||
SPI6.CalculateBaudRate=6.0 MBits/s
|
|
||||||
SPI6.DataSize=SPI_DATASIZE_8BIT
|
|
||||||
SPI6.Direction=SPI_DIRECTION_2LINES_TXONLY
|
|
||||||
SPI6.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPhase
|
|
||||||
SPI6.Mode=SPI_MODE_MASTER
|
|
||||||
SPI6.VirtualType=VM_MASTER
|
|
||||||
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||||
TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
||||||
TIM1.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation1 CH1,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation3 CH3,Prescaler
|
TIM1.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation1 CH1,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation3 CH3,Prescaler
|
||||||
@ -631,6 +651,11 @@ TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
|||||||
TIM3.IPParameters=Channel-PWM Generation4 CH4,Prescaler,Period,AutoReloadPreload
|
TIM3.IPParameters=Channel-PWM Generation4 CH4,Prescaler,Period,AutoReloadPreload
|
||||||
TIM3.Period=10000-1
|
TIM3.Period=10000-1
|
||||||
TIM3.Prescaler=24-1
|
TIM3.Prescaler=24-1
|
||||||
|
UART5.BaudRate=100000
|
||||||
|
UART5.IPParameters=Mode,WordLength,Parity,BaudRate
|
||||||
|
UART5.Mode=MODE_RX
|
||||||
|
UART5.Parity=PARITY_EVEN
|
||||||
|
UART5.WordLength=WORDLENGTH_9B
|
||||||
UART7.BaudRate=921600
|
UART7.BaudRate=921600
|
||||||
UART7.IPParameters=BaudRate
|
UART7.IPParameters=BaudRate
|
||||||
USART1.BaudRate=921600
|
USART1.BaudRate=921600
|
||||||
|
|||||||
@ -165,7 +165,7 @@ SECTIONS
|
|||||||
*(.RamFunc*) /* .RamFunc* sections */
|
*(.RamFunc*) /* .RamFunc* sections */
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
} >DTCMRAM AT> FLASH
|
} >RAM_D1 AT> FLASH
|
||||||
|
|
||||||
/* Initialized TLS data section */
|
/* Initialized TLS data section */
|
||||||
.tdata : ALIGN(4)
|
.tdata : ALIGN(4)
|
||||||
@ -175,7 +175,7 @@ SECTIONS
|
|||||||
_edata = .; /* define a global symbol at data end */
|
_edata = .; /* define a global symbol at data end */
|
||||||
PROVIDE(__data_end = .);
|
PROVIDE(__data_end = .);
|
||||||
PROVIDE(__tdata_end = .);
|
PROVIDE(__tdata_end = .);
|
||||||
} >DTCMRAM AT> FLASH
|
} >RAM_D1 AT> FLASH
|
||||||
|
|
||||||
PROVIDE( __tdata_start = ADDR(.tdata) );
|
PROVIDE( __tdata_start = ADDR(.tdata) );
|
||||||
PROVIDE( __tdata_size = __tdata_end - __tdata_start );
|
PROVIDE( __tdata_size = __tdata_end - __tdata_start );
|
||||||
@ -199,7 +199,7 @@ SECTIONS
|
|||||||
*(.tbss .tbss.*)
|
*(.tbss .tbss.*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
PROVIDE( __tbss_end = . );
|
PROVIDE( __tbss_end = . );
|
||||||
} >DTCMRAM
|
} >RAM_D1
|
||||||
|
|
||||||
PROVIDE( __tbss_start = ADDR(.tbss) );
|
PROVIDE( __tbss_start = ADDR(.tbss) );
|
||||||
PROVIDE( __tbss_size = __tbss_end - __tbss_start );
|
PROVIDE( __tbss_size = __tbss_end - __tbss_start );
|
||||||
@ -223,7 +223,7 @@ SECTIONS
|
|||||||
_ebss = .; /* define a global symbol at bss end */
|
_ebss = .; /* define a global symbol at bss end */
|
||||||
__bss_end__ = _ebss;
|
__bss_end__ = _ebss;
|
||||||
PROVIDE( __bss_end = .);
|
PROVIDE( __bss_end = .);
|
||||||
} >DTCMRAM
|
} >RAM_D1
|
||||||
PROVIDE( __non_tls_bss_start = ADDR(.bss) );
|
PROVIDE( __non_tls_bss_start = ADDR(.bss) );
|
||||||
|
|
||||||
PROVIDE( __bss_start = __tbss_start );
|
PROVIDE( __bss_start = __tbss_start );
|
||||||
|
|||||||
@ -93,12 +93,12 @@ pwm:
|
|||||||
label: TIM2_CH3
|
label: TIM2_CH3
|
||||||
timer: TIM2
|
timer: TIM2
|
||||||
- channel: TIM_CHANNEL_4
|
- channel: TIM_CHANNEL_4
|
||||||
custom_name: TIM3_CH4
|
custom_name: IMU_HEAT
|
||||||
label: TIM3_CH4
|
label: IMU_HEAT
|
||||||
timer: TIM3
|
timer: TIM3
|
||||||
- channel: TIM_CHANNEL_2
|
- channel: TIM_CHANNEL_2
|
||||||
custom_name: TIM12_CH2
|
custom_name: BUZZER
|
||||||
label: TIM12_CH2
|
label: BUZZER
|
||||||
timer: TIM12
|
timer: TIM12
|
||||||
- channel: TIM_CHANNEL_3
|
- channel: TIM_CHANNEL_3
|
||||||
custom_name: TIM1_CH3
|
custom_name: TIM1_CH3
|
||||||
@ -118,6 +118,6 @@ time:
|
|||||||
enabled: true
|
enabled: true
|
||||||
uart:
|
uart:
|
||||||
devices:
|
devices:
|
||||||
- instance: USART1
|
- instance: UART5
|
||||||
name: DR16
|
name: DR16
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@ -25,8 +25,8 @@ extern "C" {
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
BSP_PWM_TIM2_CH1,
|
BSP_PWM_TIM2_CH1,
|
||||||
BSP_PWM_TIM2_CH3,
|
BSP_PWM_TIM2_CH3,
|
||||||
BSP_PWM_TIM3_CH4,
|
BSP_PWM_IMU_HEAT,
|
||||||
BSP_PWM_TIM12_CH2,
|
BSP_PWM_BUZZER,
|
||||||
BSP_PWM_TIM1_CH3,
|
BSP_PWM_TIM1_CH3,
|
||||||
BSP_PWM_TIM1_CH1,
|
BSP_PWM_TIM1_CH1,
|
||||||
BSP_PWM_NUM,
|
BSP_PWM_NUM,
|
||||||
|
|||||||
@ -23,7 +23,7 @@ static void (*UART_Callback[BSP_UART_NUM][BSP_UART_CB_NUM])(void);
|
|||||||
|
|
||||||
/* Private function -------------------------------------------------------- */
|
/* Private function -------------------------------------------------------- */
|
||||||
static BSP_UART_t UART_Get(UART_HandleTypeDef *huart) {
|
static BSP_UART_t UART_Get(UART_HandleTypeDef *huart) {
|
||||||
if (huart->Instance == USART1)
|
if (huart->Instance == UART5)
|
||||||
return BSP_UART_DR16;
|
return BSP_UART_DR16;
|
||||||
else
|
else
|
||||||
return BSP_UART_ERR;
|
return BSP_UART_ERR;
|
||||||
@ -114,7 +114,7 @@ void BSP_UART_IRQHandler(UART_HandleTypeDef *huart) {
|
|||||||
UART_HandleTypeDef *BSP_UART_GetHandle(BSP_UART_t uart) {
|
UART_HandleTypeDef *BSP_UART_GetHandle(BSP_UART_t uart) {
|
||||||
switch (uart) {
|
switch (uart) {
|
||||||
case BSP_UART_DR16:
|
case BSP_UART_DR16:
|
||||||
return &huart1;
|
return &huart5;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@ bmi088:
|
|||||||
enabled: true
|
enabled: true
|
||||||
buzzer:
|
buzzer:
|
||||||
bsp_config:
|
bsp_config:
|
||||||
BSP_PWM_BUZZER: BSP_PWM_TIM12_CH2
|
BSP_PWM_BUZZER: BSP_PWM_TIM2_CH1
|
||||||
enabled: true
|
enabled: true
|
||||||
dr16:
|
dr16:
|
||||||
bsp_config:
|
bsp_config:
|
||||||
|
|||||||
@ -1,12 +1,18 @@
|
|||||||
/*
|
/*
|
||||||
atti_esit Task
|
atti_esit Task
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
|
#include "bsp/gpio.h"
|
||||||
|
#include "bsp/mm.h"
|
||||||
|
#include "bsp/pwm.h"
|
||||||
|
#include "component/ahrs.h"
|
||||||
|
#include "component/pid.h"
|
||||||
|
#include "device/bmi088.h"
|
||||||
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE END */
|
/* USER INCLUDE END */
|
||||||
|
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
@ -14,6 +20,27 @@
|
|||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
|
BMI088_t bmi088;
|
||||||
|
|
||||||
|
AHRS_t gimbal_ahrs;
|
||||||
|
AHRS_Magn_t magn;
|
||||||
|
AHRS_Eulr_t eulr_to_send;
|
||||||
|
|
||||||
|
KPID_t imu_temp_ctrl_pid;
|
||||||
|
|
||||||
|
/*默认校准参数*/
|
||||||
|
BMI088_Cali_t cali_bmi088 = {
|
||||||
|
.gyro_offset = {-0.00147764047f, -0.00273479894f, 0.00154074503f},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const KPID_Params_t imu_temp_ctrl_pid_param = {
|
||||||
|
.k = 0.1f,
|
||||||
|
.p = 0.15f,
|
||||||
|
.i = 0.01f,
|
||||||
|
.d = 0.02f,
|
||||||
|
.i_limit = 1.0f,
|
||||||
|
.out_limit = 1.0f,
|
||||||
|
};
|
||||||
|
|
||||||
/* USER STRUCT END */
|
/* USER STRUCT END */
|
||||||
|
|
||||||
@ -22,17 +49,41 @@
|
|||||||
void Task_atti_esit(void *argument) {
|
void Task_atti_esit(void *argument) {
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
|
|
||||||
|
|
||||||
osDelay(ATTI_ESIT_INIT_DELAY); /* 延时一段时间再开启任务 */
|
osDelay(ATTI_ESIT_INIT_DELAY); /* 延时一段时间再开启任务 */
|
||||||
|
|
||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
|
BMI088_Init(&bmi088, &cali_bmi088);
|
||||||
|
AHRS_Init(&gimbal_ahrs, &magn, BMI088_GetUpdateFreq(&bmi088));
|
||||||
|
PID_Init(&imu_temp_ctrl_pid, KPID_MODE_NO_D,
|
||||||
|
1.0f / BMI088_GetUpdateFreq(&bmi088), &imu_temp_ctrl_pid_param);
|
||||||
|
BSP_PWM_Start(BSP_PWM_IMU_HEAT);
|
||||||
/* USER CODE INIT END */
|
/* USER CODE INIT END */
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
|
BMI088_WaitNew();
|
||||||
|
BMI088_AcclStartDmaRecv();
|
||||||
|
BMI088_AcclWaitDmaCplt();
|
||||||
|
|
||||||
|
BMI088_GyroStartDmaRecv();
|
||||||
|
BMI088_GyroWaitDmaCplt();
|
||||||
|
|
||||||
|
/* 锁住RTOS内核防止数据解析过程中断,造成错误 */
|
||||||
|
osKernelLock();
|
||||||
|
/* 接收完所有数据后,把数据从原始字节加工成方便计算的数据 */
|
||||||
|
BMI088_ParseAccl(&bmi088);
|
||||||
|
BMI088_ParseGyro(&bmi088);
|
||||||
|
// IST8310_Parse(&ist8310);
|
||||||
|
|
||||||
|
/* 根据设备接收到的数据进行姿态解析 */
|
||||||
|
AHRS_Update(&gimbal_ahrs, &bmi088.accl, &bmi088.gyro, &magn);
|
||||||
|
|
||||||
|
/* 根据解析出来的四元数计算欧拉角 */
|
||||||
|
AHRS_GetEulr(&eulr_to_send, &gimbal_ahrs);
|
||||||
|
BSP_PWM_SetComp(BSP_PWM_IMU_HEAT, PID_Calc(&imu_temp_ctrl_pid, 40.5f,
|
||||||
|
bmi088.temp, 0.0f, 0.0f));
|
||||||
|
osKernelUnlock();
|
||||||
|
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -4,9 +4,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
|
#include "device/dr16.h"
|
||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
|
#include "device/dr16.h"
|
||||||
/* USER INCLUDE END */
|
/* USER INCLUDE END */
|
||||||
|
|
||||||
/* Private typedef ---------------------------------------------------------- */
|
/* Private typedef ---------------------------------------------------------- */
|
||||||
@ -14,7 +15,7 @@
|
|||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
|
DR16_t dr16;
|
||||||
/* USER STRUCT END */
|
/* USER STRUCT END */
|
||||||
|
|
||||||
/* Private function --------------------------------------------------------- */
|
/* Private function --------------------------------------------------------- */
|
||||||
@ -30,13 +31,18 @@ void Task_rc(void *argument) {
|
|||||||
|
|
||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
|
DR16_Init(&dr16);
|
||||||
/* USER CODE INIT END */
|
/* USER CODE INIT END */
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
|
DR16_StartDmaRecv(&dr16);
|
||||||
|
if (DR16_WaitDmaCplt(20)) {
|
||||||
|
DR16_ParseData(&dr16);
|
||||||
|
} else {
|
||||||
|
DR16_Offline(&dr16);
|
||||||
|
}
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user