可以啊
This commit is contained in:
parent
88f306cdef
commit
51f899bada
@ -68,7 +68,7 @@
|
||||
#define configTICK_RATE_HZ ((TickType_t)1000)
|
||||
#define configMAX_PRIORITIES ( 56 )
|
||||
#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 configUSE_TRACE_FACILITY 1
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
|
||||
@ -69,6 +69,8 @@ void Error_Handler(void);
|
||||
#define GYRO_CS_GPIO_Port GPIOC
|
||||
#define DCMI_PWDN_Pin GPIO_PIN_5
|
||||
#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_GPIO_Port GPIOE
|
||||
#define ACCL_INT_EXTI_IRQn EXTI15_10_IRQn
|
||||
@ -83,6 +85,8 @@ void Error_Handler(void);
|
||||
#define LCD_RES_GPIO_Port GPIOB
|
||||
#define DCMI_REST_Pin GPIO_PIN_12
|
||||
#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_GPIO_Port GPIOD
|
||||
|
||||
|
||||
@ -36,15 +36,12 @@ extern SPI_HandleTypeDef hspi1;
|
||||
|
||||
extern SPI_HandleTypeDef hspi2;
|
||||
|
||||
extern SPI_HandleTypeDef hspi6;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_SPI1_Init(void);
|
||||
void MX_SPI2_Init(void);
|
||||
void MX_SPI6_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
|
||||
@ -55,6 +55,7 @@ void DebugMon_Handler(void);
|
||||
void DMA1_Stream0_IRQHandler(void);
|
||||
void DMA1_Stream1_IRQHandler(void);
|
||||
void DMA1_Stream2_IRQHandler(void);
|
||||
void DMA1_Stream3_IRQHandler(void);
|
||||
void FDCAN1_IT0_IRQHandler(void);
|
||||
void FDCAN2_IT0_IRQHandler(void);
|
||||
void FDCAN1_IT1_IRQHandler(void);
|
||||
@ -64,6 +65,7 @@ void USART1_IRQHandler(void);
|
||||
void USART2_IRQHandler(void);
|
||||
void USART3_IRQHandler(void);
|
||||
void EXTI15_10_IRQHandler(void);
|
||||
void UART5_IRQHandler(void);
|
||||
void UART7_IRQHandler(void);
|
||||
void USART10_IRQHandler(void);
|
||||
void FDCAN3_IT0_IRQHandler(void);
|
||||
|
||||
@ -32,6 +32,8 @@ extern "C" {
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern UART_HandleTypeDef huart5;
|
||||
|
||||
extern UART_HandleTypeDef huart7;
|
||||
|
||||
extern UART_HandleTypeDef huart1;
|
||||
@ -46,6 +48,7 @@ extern UART_HandleTypeDef huart10;
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_UART5_Init(void);
|
||||
void MX_UART7_Init(void);
|
||||
void MX_USART1_UART_Init(void);
|
||||
void MX_USART2_UART_Init(void);
|
||||
|
||||
@ -52,6 +52,9 @@ void MX_DMA_Init(void)
|
||||
/* DMA1_Stream2_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 5, 0);
|
||||
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.NominalPrescaler = 24;
|
||||
hfdcan1.Init.NominalSyncJumpWidth = 1;
|
||||
hfdcan1.Init.NominalTimeSeg1 = 2;
|
||||
hfdcan1.Init.NominalTimeSeg1 = 3;
|
||||
hfdcan1.Init.NominalTimeSeg2 = 1;
|
||||
hfdcan1.Init.DataPrescaler = 1;
|
||||
hfdcan1.Init.DataSyncJumpWidth = 1;
|
||||
@ -95,7 +95,7 @@ void MX_FDCAN2_Init(void)
|
||||
hfdcan2.Init.ProtocolException = DISABLE;
|
||||
hfdcan2.Init.NominalPrescaler = 24;
|
||||
hfdcan2.Init.NominalSyncJumpWidth = 1;
|
||||
hfdcan2.Init.NominalTimeSeg1 = 1;
|
||||
hfdcan2.Init.NominalTimeSeg1 = 3;
|
||||
hfdcan2.Init.NominalTimeSeg2 = 1;
|
||||
hfdcan2.Init.DataPrescaler = 1;
|
||||
hfdcan2.Init.DataSyncJumpWidth = 1;
|
||||
@ -143,7 +143,7 @@ void MX_FDCAN3_Init(void)
|
||||
hfdcan3.Init.ProtocolException = DISABLE;
|
||||
hfdcan3.Init.NominalPrescaler = 24;
|
||||
hfdcan3.Init.NominalSyncJumpWidth = 1;
|
||||
hfdcan3.Init.NominalTimeSeg1 = 1;
|
||||
hfdcan3.Init.NominalTimeSeg1 = 3;
|
||||
hfdcan3.Init.NominalTimeSeg2 = 1;
|
||||
hfdcan3.Init.DataPrescaler = 1;
|
||||
hfdcan3.Init.DataSyncJumpWidth = 1;
|
||||
|
||||
@ -98,7 +98,7 @@ void MX_FREERTOS_Init(void) {
|
||||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
osThreadNew(Task_Init, NULL, &attr_init); // 创建初始化任务
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
||||
/* USER CODE BEGIN RTOS_EVENTS */
|
||||
/* add events, ... */
|
||||
@ -117,7 +117,7 @@ void StartDefaultTask(void *argument)
|
||||
{
|
||||
/* USER CODE BEGIN StartDefaultTask */
|
||||
osThreadTerminate(osThreadGetId());
|
||||
/* USER CODE END StartDefaultTask */
|
||||
/* USER CODE END StartDefaultTask */
|
||||
}
|
||||
|
||||
/* Private application code --------------------------------------------------*/
|
||||
|
||||
@ -100,7 +100,6 @@ int main(void)
|
||||
MX_ADC1_Init();
|
||||
MX_TIM12_Init();
|
||||
MX_SPI1_Init();
|
||||
MX_SPI6_Init();
|
||||
MX_SPI2_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_USART1_UART_Init();
|
||||
@ -115,6 +114,7 @@ int main(void)
|
||||
MX_TIM2_Init();
|
||||
MX_OCTOSPI1_Init();
|
||||
MX_USB_OTG_HS_PCD_Init();
|
||||
MX_UART5_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
105
Core/Src/spi.c
105
Core/Src/spi.c
@ -26,7 +26,6 @@
|
||||
|
||||
SPI_HandleTypeDef hspi1;
|
||||
SPI_HandleTypeDef hspi2;
|
||||
SPI_HandleTypeDef hspi6;
|
||||
DMA_HandleTypeDef hdma_spi2_rx;
|
||||
DMA_HandleTypeDef hdma_spi2_tx;
|
||||
|
||||
@ -113,48 +112,6 @@ void MX_SPI2_Init(void)
|
||||
|
||||
/* 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)
|
||||
@ -287,48 +244,6 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||
|
||||
/* 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)
|
||||
@ -381,26 +296,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
||||
|
||||
/* 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 */
|
||||
|
||||
@ -62,6 +62,8 @@ extern FDCAN_HandleTypeDef hfdcan3;
|
||||
extern DMA_HandleTypeDef hdma_spi2_rx;
|
||||
extern DMA_HandleTypeDef hdma_spi2_tx;
|
||||
extern SPI_HandleTypeDef hspi2;
|
||||
extern DMA_HandleTypeDef hdma_uart5_rx;
|
||||
extern UART_HandleTypeDef huart5;
|
||||
extern UART_HandleTypeDef huart7;
|
||||
extern UART_HandleTypeDef huart1;
|
||||
extern UART_HandleTypeDef huart2;
|
||||
@ -213,6 +215,20 @@ void DMA1_Stream2_IRQHandler(void)
|
||||
/* 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.
|
||||
*/
|
||||
@ -340,6 +356,20 @@ void EXTI15_10_IRQHandler(void)
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
@ -340,12 +340,12 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||
/**TIM3 GPIO Configuration
|
||||
PB1 ------> TIM3_CH4
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
||||
GPIO_InitStruct.Pin = IMU_HEAT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
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 */
|
||||
|
||||
@ -361,12 +361,12 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||
/**TIM12 GPIO Configuration
|
||||
PB15 ------> TIM12_CH2
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_15;
|
||||
GPIO_InitStruct.Pin = BUZZER_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
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 */
|
||||
|
||||
|
||||
138
Core/Src/usart.c
138
Core/Src/usart.c
@ -24,12 +24,57 @@
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
UART_HandleTypeDef huart5;
|
||||
UART_HandleTypeDef huart7;
|
||||
UART_HandleTypeDef huart1;
|
||||
UART_HandleTypeDef huart2;
|
||||
UART_HandleTypeDef huart3;
|
||||
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 */
|
||||
void MX_UART7_Init(void)
|
||||
{
|
||||
@ -255,7 +300,71 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {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 */
|
||||
|
||||
@ -462,7 +571,32 @@ void HAL_UART_MspInit(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 */
|
||||
|
||||
|
||||
@ -50,7 +50,8 @@ Dma.ADC1.0.SyncSignalID=NONE
|
||||
Dma.Request0=ADC1
|
||||
Dma.Request1=SPI2_RX
|
||||
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.EventEnable=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.SyncRequestNumber=1
|
||||
Dma.SPI2_TX.2.SyncSignalID=NONE
|
||||
FDCAN1.CalculateBaudRateNominal=1250000
|
||||
FDCAN1.CalculateTimeBitNominal=800
|
||||
Dma.UART5_RX.3.Direction=DMA_PERIPH_TO_MEMORY
|
||||
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.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,StdFiltersNbr,NominalTimeSeg1
|
||||
FDCAN1.NominalPrescaler=24
|
||||
FDCAN1.NominalTimeSeg1=2
|
||||
FDCAN1.NominalTimeSeg1=3
|
||||
FDCAN1.RxFifo0ElmtsNbr=32
|
||||
FDCAN1.StdFiltersNbr=1
|
||||
FDCAN1.TxFifoQueueElmtsNbr=32
|
||||
FDCAN2.CalculateBaudRateNominal=1666666
|
||||
FDCAN2.CalculateTimeBitNominal=600
|
||||
FDCAN2.CalculateBaudRateNominal=1000000
|
||||
FDCAN2.CalculateTimeBitNominal=1000
|
||||
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.NominalPrescaler=24
|
||||
FDCAN2.NominalTimeSeg1=3
|
||||
FDCAN2.RxFifo0ElmtsNbr=32
|
||||
FDCAN2.StdFiltersNbr=1
|
||||
FDCAN2.TxFifoQueueElmtsNbr=32
|
||||
FDCAN3.CalculateBaudRateNominal=1666666
|
||||
FDCAN3.CalculateTimeBitNominal=600
|
||||
FDCAN3.CalculateBaudRateNominal=1000000
|
||||
FDCAN3.CalculateTimeBitNominal=1000
|
||||
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.NominalPrescaler=24
|
||||
FDCAN3.NominalTimeSeg1=3
|
||||
FDCAN3.RxFifo0ElmtsNbr=32
|
||||
FDCAN3.StdFiltersNbr=1
|
||||
FDCAN3.TxFifoQueueElmtsNbr=32
|
||||
FREERTOS.IPParameters=Tasks01
|
||||
FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE
|
||||
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.configTOTAL_HEAP_SIZE=0x10000
|
||||
File.Version=6
|
||||
GPIO.groupedBy=Group By Peripherals
|
||||
KeepUserPlacement=false
|
||||
@ -129,12 +151,12 @@ Mcu.IP10=OCTOSPI1
|
||||
Mcu.IP11=RCC
|
||||
Mcu.IP12=SPI1
|
||||
Mcu.IP13=SPI2
|
||||
Mcu.IP14=SPI6
|
||||
Mcu.IP15=SYS
|
||||
Mcu.IP16=TIM1
|
||||
Mcu.IP17=TIM2
|
||||
Mcu.IP18=TIM3
|
||||
Mcu.IP19=TIM12
|
||||
Mcu.IP14=SYS
|
||||
Mcu.IP15=TIM1
|
||||
Mcu.IP16=TIM2
|
||||
Mcu.IP17=TIM3
|
||||
Mcu.IP18=TIM12
|
||||
Mcu.IP19=UART5
|
||||
Mcu.IP2=DEBUG
|
||||
Mcu.IP20=UART7
|
||||
Mcu.IP21=USART1
|
||||
@ -160,47 +182,47 @@ Mcu.Pin12=PA1
|
||||
Mcu.Pin13=PA2
|
||||
Mcu.Pin14=PA3
|
||||
Mcu.Pin15=PA5
|
||||
Mcu.Pin16=PA7
|
||||
Mcu.Pin17=PC4
|
||||
Mcu.Pin18=PC5
|
||||
Mcu.Pin19=PB0
|
||||
Mcu.Pin16=PC4
|
||||
Mcu.Pin17=PC5
|
||||
Mcu.Pin18=PB0
|
||||
Mcu.Pin19=PB1
|
||||
Mcu.Pin2=PC13
|
||||
Mcu.Pin20=PB1
|
||||
Mcu.Pin21=PB2
|
||||
Mcu.Pin22=PE7
|
||||
Mcu.Pin23=PE8
|
||||
Mcu.Pin24=PE9
|
||||
Mcu.Pin25=PE10
|
||||
Mcu.Pin26=PE11
|
||||
Mcu.Pin27=PE12
|
||||
Mcu.Pin28=PE13
|
||||
Mcu.Pin29=PE15
|
||||
Mcu.Pin20=PB2
|
||||
Mcu.Pin21=PE7
|
||||
Mcu.Pin22=PE8
|
||||
Mcu.Pin23=PE9
|
||||
Mcu.Pin24=PE10
|
||||
Mcu.Pin25=PE11
|
||||
Mcu.Pin26=PE12
|
||||
Mcu.Pin27=PE13
|
||||
Mcu.Pin28=PE15
|
||||
Mcu.Pin29=PB10
|
||||
Mcu.Pin3=PC14-OSC32_IN
|
||||
Mcu.Pin30=PB10
|
||||
Mcu.Pin31=PB11
|
||||
Mcu.Pin32=PB12
|
||||
Mcu.Pin33=PB13
|
||||
Mcu.Pin34=PB14
|
||||
Mcu.Pin35=PB15
|
||||
Mcu.Pin36=PD8
|
||||
Mcu.Pin37=PD9
|
||||
Mcu.Pin38=PD10
|
||||
Mcu.Pin39=PD11
|
||||
Mcu.Pin30=PB11
|
||||
Mcu.Pin31=PB12
|
||||
Mcu.Pin32=PB13
|
||||
Mcu.Pin33=PB14
|
||||
Mcu.Pin34=PB15
|
||||
Mcu.Pin35=PD8
|
||||
Mcu.Pin36=PD9
|
||||
Mcu.Pin37=PD10
|
||||
Mcu.Pin38=PD11
|
||||
Mcu.Pin39=PD12
|
||||
Mcu.Pin4=PC15-OSC32_OUT
|
||||
Mcu.Pin40=PD12
|
||||
Mcu.Pin41=PD13
|
||||
Mcu.Pin42=PA8
|
||||
Mcu.Pin43=PA9
|
||||
Mcu.Pin44=PA10
|
||||
Mcu.Pin45=PA11
|
||||
Mcu.Pin46=PA12
|
||||
Mcu.Pin47=PA13(JTMS/SWDIO)
|
||||
Mcu.Pin48=PA14(JTCK/SWCLK)
|
||||
Mcu.Pin49=PA15(JTDI)
|
||||
Mcu.Pin40=PD13
|
||||
Mcu.Pin41=PA8
|
||||
Mcu.Pin42=PA9
|
||||
Mcu.Pin43=PA10
|
||||
Mcu.Pin44=PA11
|
||||
Mcu.Pin45=PA12
|
||||
Mcu.Pin46=PA13(JTMS/SWDIO)
|
||||
Mcu.Pin47=PA14(JTCK/SWCLK)
|
||||
Mcu.Pin48=PA15(JTDI)
|
||||
Mcu.Pin49=PC12
|
||||
Mcu.Pin5=PH0-OSC_IN
|
||||
Mcu.Pin50=PC12
|
||||
Mcu.Pin51=PD0
|
||||
Mcu.Pin52=PD1
|
||||
Mcu.Pin50=PD0
|
||||
Mcu.Pin51=PD1
|
||||
Mcu.Pin52=PD2
|
||||
Mcu.Pin53=PD4
|
||||
Mcu.Pin54=PD5
|
||||
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_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_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.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
|
||||
@ -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.TimeBase=TIM23_IRQn
|
||||
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.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
|
||||
@ -282,8 +306,6 @@ PA3.Mode=OCTOSPI1_IOL_Port1L
|
||||
PA3.Signal=OCTOSPIM_P1_IO2
|
||||
PA5.Locked=true
|
||||
PA5.Signal=ADCx_INP19
|
||||
PA7.Mode=TX_Only_Simplex_Unidirect_Master
|
||||
PA7.Signal=SPI6_MOSI
|
||||
PA8.Locked=true
|
||||
PA8.Mode=Clock-out-1
|
||||
PA8.Signal=RCC_MCO_1
|
||||
@ -293,6 +315,8 @@ PA9.Signal=USART1_TX
|
||||
PB0.Locked=true
|
||||
PB0.Mode=OCTOSPI1_IOL_Port1L
|
||||
PB0.Signal=OCTOSPIM_P1_IO1
|
||||
PB1.GPIOParameters=GPIO_Label
|
||||
PB1.GPIO_Label=IMU_HEAT
|
||||
PB1.Locked=true
|
||||
PB1.Signal=S_TIM3_CH4
|
||||
PB10.GPIOParameters=GPIO_Label
|
||||
@ -317,6 +341,8 @@ PB13.Mode=Full_Duplex_Master
|
||||
PB13.Signal=SPI2_SCK
|
||||
PB14.Mode=Hardware Flow Control (RS485)
|
||||
PB14.Signal=USART3_DE
|
||||
PB15.GPIOParameters=GPIO_Label
|
||||
PB15.GPIO_Label=BUZZER
|
||||
PB15.Locked=true
|
||||
PB15.Signal=S_TIM12_CH2
|
||||
PB2.Locked=true
|
||||
@ -342,8 +368,8 @@ PC1.GPIOParameters=GPIO_Speed
|
||||
PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PC1.Mode=Full_Duplex_Master
|
||||
PC1.Signal=SPI2_MOSI
|
||||
PC12.Mode=TX_Only_Simplex_Unidirect_Master
|
||||
PC12.Signal=SPI6_SCK
|
||||
PC12.Mode=Asynchronous
|
||||
PC12.Signal=UART5_TX
|
||||
PC13.GPIOParameters=PinState,GPIO_Label
|
||||
PC13.GPIO_Label=POWER_24V_2
|
||||
PC13.Locked=true
|
||||
@ -395,6 +421,8 @@ PD12.Signal=FDCAN3_RX
|
||||
PD13.Locked=true
|
||||
PD13.Mode=FDCAN_Activate
|
||||
PD13.Signal=FDCAN3_TX
|
||||
PD2.Mode=Asynchronous
|
||||
PD2.Signal=UART5_RX
|
||||
PD4.Locked=true
|
||||
PD4.Mode=Hardware Flow Control (RS485)
|
||||
PD4.Signal=USART2_DE
|
||||
@ -475,7 +503,7 @@ ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
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.AHB12Freq_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.Mode=SPI_MODE_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\ 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
|
||||
@ -631,6 +651,11 @@ TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||
TIM3.IPParameters=Channel-PWM Generation4 CH4,Prescaler,Period,AutoReloadPreload
|
||||
TIM3.Period=10000-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.IPParameters=BaudRate
|
||||
USART1.BaudRate=921600
|
||||
|
||||
@ -165,7 +165,7 @@ SECTIONS
|
||||
*(.RamFunc*) /* .RamFunc* sections */
|
||||
|
||||
. = ALIGN(4);
|
||||
} >DTCMRAM AT> FLASH
|
||||
} >RAM_D1 AT> FLASH
|
||||
|
||||
/* Initialized TLS data section */
|
||||
.tdata : ALIGN(4)
|
||||
@ -175,7 +175,7 @@ SECTIONS
|
||||
_edata = .; /* define a global symbol at data end */
|
||||
PROVIDE(__data_end = .);
|
||||
PROVIDE(__tdata_end = .);
|
||||
} >DTCMRAM AT> FLASH
|
||||
} >RAM_D1 AT> FLASH
|
||||
|
||||
PROVIDE( __tdata_start = ADDR(.tdata) );
|
||||
PROVIDE( __tdata_size = __tdata_end - __tdata_start );
|
||||
@ -199,7 +199,7 @@ SECTIONS
|
||||
*(.tbss .tbss.*)
|
||||
. = ALIGN(4);
|
||||
PROVIDE( __tbss_end = . );
|
||||
} >DTCMRAM
|
||||
} >RAM_D1
|
||||
|
||||
PROVIDE( __tbss_start = ADDR(.tbss) );
|
||||
PROVIDE( __tbss_size = __tbss_end - __tbss_start );
|
||||
@ -223,7 +223,7 @@ SECTIONS
|
||||
_ebss = .; /* define a global symbol at bss end */
|
||||
__bss_end__ = _ebss;
|
||||
PROVIDE( __bss_end = .);
|
||||
} >DTCMRAM
|
||||
} >RAM_D1
|
||||
PROVIDE( __non_tls_bss_start = ADDR(.bss) );
|
||||
|
||||
PROVIDE( __bss_start = __tbss_start );
|
||||
|
||||
@ -93,12 +93,12 @@ pwm:
|
||||
label: TIM2_CH3
|
||||
timer: TIM2
|
||||
- channel: TIM_CHANNEL_4
|
||||
custom_name: TIM3_CH4
|
||||
label: TIM3_CH4
|
||||
custom_name: IMU_HEAT
|
||||
label: IMU_HEAT
|
||||
timer: TIM3
|
||||
- channel: TIM_CHANNEL_2
|
||||
custom_name: TIM12_CH2
|
||||
label: TIM12_CH2
|
||||
custom_name: BUZZER
|
||||
label: BUZZER
|
||||
timer: TIM12
|
||||
- channel: TIM_CHANNEL_3
|
||||
custom_name: TIM1_CH3
|
||||
@ -118,6 +118,6 @@ time:
|
||||
enabled: true
|
||||
uart:
|
||||
devices:
|
||||
- instance: USART1
|
||||
- instance: UART5
|
||||
name: DR16
|
||||
enabled: true
|
||||
|
||||
@ -25,8 +25,8 @@ extern "C" {
|
||||
typedef enum {
|
||||
BSP_PWM_TIM2_CH1,
|
||||
BSP_PWM_TIM2_CH3,
|
||||
BSP_PWM_TIM3_CH4,
|
||||
BSP_PWM_TIM12_CH2,
|
||||
BSP_PWM_IMU_HEAT,
|
||||
BSP_PWM_BUZZER,
|
||||
BSP_PWM_TIM1_CH3,
|
||||
BSP_PWM_TIM1_CH1,
|
||||
BSP_PWM_NUM,
|
||||
|
||||
@ -23,7 +23,7 @@ static void (*UART_Callback[BSP_UART_NUM][BSP_UART_CB_NUM])(void);
|
||||
|
||||
/* Private function -------------------------------------------------------- */
|
||||
static BSP_UART_t UART_Get(UART_HandleTypeDef *huart) {
|
||||
if (huart->Instance == USART1)
|
||||
if (huart->Instance == UART5)
|
||||
return BSP_UART_DR16;
|
||||
else
|
||||
return BSP_UART_ERR;
|
||||
@ -114,7 +114,7 @@ void BSP_UART_IRQHandler(UART_HandleTypeDef *huart) {
|
||||
UART_HandleTypeDef *BSP_UART_GetHandle(BSP_UART_t uart) {
|
||||
switch (uart) {
|
||||
case BSP_UART_DR16:
|
||||
return &huart1;
|
||||
return &huart5;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ bmi088:
|
||||
enabled: true
|
||||
buzzer:
|
||||
bsp_config:
|
||||
BSP_PWM_BUZZER: BSP_PWM_TIM12_CH2
|
||||
BSP_PWM_BUZZER: BSP_PWM_TIM2_CH1
|
||||
enabled: true
|
||||
dr16:
|
||||
bsp_config:
|
||||
|
||||
@ -6,7 +6,13 @@
|
||||
/* Includes ----------------------------------------------------------------- */
|
||||
#include "task/user_task.h"
|
||||
/* 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 */
|
||||
|
||||
/* Private typedef ---------------------------------------------------------- */
|
||||
@ -14,6 +20,27 @@
|
||||
/* Private macro ------------------------------------------------------------ */
|
||||
/* Private variables -------------------------------------------------------- */
|
||||
/* 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 */
|
||||
|
||||
@ -22,17 +49,41 @@
|
||||
void Task_atti_esit(void *argument) {
|
||||
(void)argument; /* 未使用argument,消除警告 */
|
||||
|
||||
|
||||
osDelay(ATTI_ESIT_INIT_DELAY); /* 延时一段时间再开启任务 */
|
||||
|
||||
/* 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 */
|
||||
|
||||
while (1) {
|
||||
/* 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 */
|
||||
}
|
||||
|
||||
}
|
||||
@ -4,9 +4,10 @@
|
||||
*/
|
||||
|
||||
/* Includes ----------------------------------------------------------------- */
|
||||
#include "device/dr16.h"
|
||||
#include "task/user_task.h"
|
||||
/* USER INCLUDE BEGIN */
|
||||
|
||||
#include "device/dr16.h"
|
||||
/* USER INCLUDE END */
|
||||
|
||||
/* Private typedef ---------------------------------------------------------- */
|
||||
@ -14,7 +15,7 @@
|
||||
/* Private macro ------------------------------------------------------------ */
|
||||
/* Private variables -------------------------------------------------------- */
|
||||
/* USER STRUCT BEGIN */
|
||||
|
||||
DR16_t dr16;
|
||||
/* USER STRUCT END */
|
||||
|
||||
/* Private function --------------------------------------------------------- */
|
||||
@ -30,13 +31,18 @@ void Task_rc(void *argument) {
|
||||
|
||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
||||
/* USER CODE INIT BEGIN */
|
||||
|
||||
DR16_Init(&dr16);
|
||||
/* USER CODE INIT END */
|
||||
|
||||
while (1) {
|
||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||
/* USER CODE BEGIN */
|
||||
|
||||
DR16_StartDmaRecv(&dr16);
|
||||
if (DR16_WaitDmaCplt(20)) {
|
||||
DR16_ParseData(&dr16);
|
||||
} else {
|
||||
DR16_Offline(&dr16);
|
||||
}
|
||||
/* USER CODE END */
|
||||
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user