162 lines
5.1 KiB
C
162 lines
5.1 KiB
C
|
#include "HD_COMM.h"
|
||
|
|
||
|
|
||
|
|
||
|
void HD_BAT485_Init(uint32_t BAT485_BaudRate)
|
||
|
{
|
||
|
/* BAT485初始化 */
|
||
|
huart3.Instance = USART3;
|
||
|
huart3.Init.BaudRate = BAT485_BaudRate;
|
||
|
huart3.Init.WordLength = UART_WORDLENGTH_8B;
|
||
|
huart3.Init.StopBits = UART_STOPBITS_1;
|
||
|
huart3.Init.Parity = UART_PARITY_NONE;
|
||
|
huart3.Init.Mode = UART_MODE_TX_RX;
|
||
|
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||
|
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
|
||
|
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||
|
huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||
|
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||
|
if (HAL_RS485Ex_Init(&huart3, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void HD_GW485_Init(uint32_t GW485_BaudRate)
|
||
|
{
|
||
|
/* GW485初始化 */
|
||
|
huart2.Instance = USART2;
|
||
|
huart2.Init.BaudRate = GW485_BaudRate;
|
||
|
huart2.Init.WordLength = UART_WORDLENGTH_8B;
|
||
|
huart2.Init.StopBits = UART_STOPBITS_1;
|
||
|
huart2.Init.Parity = UART_PARITY_NONE;
|
||
|
huart2.Init.Mode = UART_MODE_TX_RX;
|
||
|
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||
|
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
||
|
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||
|
huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||
|
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||
|
if (HAL_RS485Ex_Init(&huart2, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void HD_DEBUG_Uart_Init(uint32_t DEBUG_Uart_BaudRate)
|
||
|
{
|
||
|
huart4.Instance = UART4;
|
||
|
huart4.Init.BaudRate = DEBUG_Uart_BaudRate;
|
||
|
huart4.Init.WordLength = UART_WORDLENGTH_8B;
|
||
|
huart4.Init.StopBits = UART_STOPBITS_1;
|
||
|
huart4.Init.Parity = UART_PARITY_NONE;
|
||
|
huart4.Init.Mode = UART_MODE_TX_RX;
|
||
|
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||
|
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
|
||
|
huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||
|
huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||
|
huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||
|
if (HAL_UART_Init(&huart4) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart4, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart4, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_DisableFifoMode(&huart4) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void HD_COMM_Init(uint32_t GW485_BaudRate, uint32_t BAT485_BaudRate)
|
||
|
{
|
||
|
MX_UART4_Init();
|
||
|
|
||
|
/* GW485初始化 */
|
||
|
huart2.Instance = USART2;
|
||
|
huart2.Init.BaudRate = GW485_BaudRate;
|
||
|
huart2.Init.WordLength = UART_WORDLENGTH_8B;
|
||
|
huart2.Init.StopBits = UART_STOPBITS_1;
|
||
|
huart2.Init.Parity = UART_PARITY_NONE;
|
||
|
huart2.Init.Mode = UART_MODE_TX_RX;
|
||
|
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||
|
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
||
|
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||
|
huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||
|
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||
|
if (HAL_RS485Ex_Init(&huart2, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
|
||
|
/* BAT485初始化 */
|
||
|
huart3.Instance = USART3;
|
||
|
huart3.Init.BaudRate = BAT485_BaudRate;
|
||
|
huart3.Init.WordLength = UART_WORDLENGTH_8B;
|
||
|
huart3.Init.StopBits = UART_STOPBITS_1;
|
||
|
huart3.Init.Parity = UART_PARITY_NONE;
|
||
|
huart3.Init.Mode = UART_MODE_TX_RX;
|
||
|
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||
|
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
|
||
|
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||
|
huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||
|
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||
|
if (HAL_RS485Ex_Init(&huart3, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
|
||
|
{
|
||
|
Error_Handler();
|
||
|
}
|
||
|
}
|