You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
4.5 KiB
119 lines
4.5 KiB
#include "apphal.hpp"
|
|
using namespace iflytop;
|
|
|
|
void AppHal::MX_TIM6_Init(void) {
|
|
__HAL_RCC_TIM6_CLK_ENABLE();
|
|
|
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
|
htim6.Instance = TIM6;
|
|
htim6.Init.Prescaler = 71;
|
|
htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
htim6.Init.Period = 65535;
|
|
htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
|
if (HAL_TIM_Base_Init(&htim6) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
|
|
/* TIM6 interrupt Init */
|
|
HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0);
|
|
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
|
|
}
|
|
/* TIM7 init function */
|
|
void AppHal::MX_TIM7_Init(void) {
|
|
__HAL_RCC_TIM7_CLK_ENABLE();
|
|
|
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
|
htim7.Instance = TIM7;
|
|
htim7.Init.Prescaler = 81;
|
|
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
htim7.Init.Period = 65535;
|
|
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
|
if (HAL_TIM_Base_Init(&htim7) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
|
|
/* TIM7 interrupt Init */
|
|
HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0);
|
|
HAL_NVIC_EnableIRQ(TIM7_IRQn);
|
|
}
|
|
|
|
#define EARLY_ASSERT(exptr) \
|
|
if (!exptr) { \
|
|
while (true) { \
|
|
} \
|
|
}
|
|
|
|
void AppHal::DEBUG_UART_INIT(Pin_t tx, Pin_t rx, int32_t baudrate) {
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
|
EARLY_ASSERT(PA9 == tx);
|
|
EARLY_ASSERT(PA10 == rx);
|
|
|
|
/***********************************************************************************************************************
|
|
* IO初始化 *
|
|
***********************************************************************************************************************/
|
|
__HAL_RCC_USART1_CLK_ENABLE();
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
huart1.Instance = USART1;
|
|
huart1.Init.BaudRate = baudrate;
|
|
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
|
huart1.Init.StopBits = UART_STOPBITS_1;
|
|
huart1.Init.Parity = UART_PARITY_NONE;
|
|
huart1.Init.Mode = UART_MODE_TX_RX;
|
|
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
|
if (HAL_UART_Init(&huart1) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
|
|
/***********************************************************************************************************************
|
|
* DMA初始化 *
|
|
***********************************************************************************************************************/
|
|
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
|
|
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
|
|
hdma2_stream2.Instance = DMA2_Stream2;
|
|
hdma2_stream2.Init.Channel = DMA_CHANNEL_4;
|
|
hdma2_stream2.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
|
hdma2_stream2.Init.PeriphInc = DMA_PINC_DISABLE;
|
|
hdma2_stream2.Init.MemInc = DMA_MINC_ENABLE;
|
|
hdma2_stream2.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
|
hdma2_stream2.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
|
hdma2_stream2.Init.Mode = DMA_NORMAL;
|
|
hdma2_stream2.Init.Priority = DMA_PRIORITY_LOW;
|
|
hdma2_stream2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
|
if (HAL_DMA_Init(&hdma2_stream2) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
|
|
__HAL_LINKDMA(&huart1, hdmarx, hdma2_stream2);
|
|
HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);
|
|
HAL_NVIC_EnableIRQ(USART1_IRQn);
|
|
}
|
|
|
|
void AppHal::MX_IWDG_Init(void) {
|
|
hiwdg.Instance = IWDG;
|
|
hiwdg.Init.Prescaler = IWDG_PRESCALER_64;
|
|
hiwdg.Init.Reload = 4095;
|
|
if (HAL_IWDG_Init(&hiwdg) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
}
|