diff --git a/uappbase/appcfg/appcfg.hpp b/uappbase/appcfg/appcfg.hpp index 391cc71..2887d1b 100644 --- a/uappbase/appcfg/appcfg.hpp +++ b/uappbase/appcfg/appcfg.hpp @@ -64,10 +64,21 @@ /*********************************************************************************************************************** * BLE_REMOTER * ***********************************************************************************************************************/ +#define BLE_UART_INS huart3 +#define BLE_CONNECTED_STATE_IO PB4 +#define BLE_UART_TX PD8 +#define BLE_UART_RX PD9 +#define BLE_UART_BAUDRATE 115200 -// PE6 +/*********************************************************************************************************************** + * TJC * + ***********************************************************************************************************************/ -#define BLE_CONNECTED_STATE_IO PB4 +#define TJC_UART_CH_SEL_PIN PB12 +#define TJC_UART_CH_EN_PIN PB13 +#define TJC_UART_TX PC10 +#define TJC_UART_RX PC11 +#define TJC_UART_INS huart4 /*********************************************************************************************************************** * MOTOR_CFG * @@ -86,13 +97,6 @@ #define PUMP_TEST_RPM 500 // 泵机测试时转速 /*********************************************************************************************************************** - * TJC * - ***********************************************************************************************************************/ - -#define TJC_UART_CH_SEL_PIN PC10 -#define TJC_UART_CH_EN_PIN PC11 - -/*********************************************************************************************************************** * 配置默认数值 * ***********************************************************************************************************************/ #define USER0_DEFAULT_NAME "管理员" diff --git a/uappbase/apphal/apphal.cpp b/uappbase/apphal/apphal.cpp index 24c9c1f..7aeb4a0 100644 --- a/uappbase/apphal/apphal.cpp +++ b/uappbase/apphal/apphal.cpp @@ -127,7 +127,7 @@ void AppHal::MX_IWDG_Init(void) { } } -void AppHal::UART3_Init() { +void AppHal::UART3_Init(Pin_t tx, Pin_t rx, int32_t baudrate) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_USART3_CLK_ENABLE(); @@ -135,7 +135,7 @@ void AppHal::UART3_Init() { __HAL_RCC_DMA1_CLK_ENABLE(); huart3.Instance = USART3; - huart3.Init.BaudRate = 115200; + huart3.Init.BaudRate = baudrate; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; @@ -146,12 +146,25 @@ void AppHal::UART3_Init() { Error_Handler(); } - GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; - 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_USART3; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + if (tx == PB10 && rx == PB11) { + __HAL_RCC_GPIOB_CLK_ENABLE(); + GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; + 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_USART3; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + } else if (tx == PD8 && rx == PD9) { + __HAL_RCC_GPIOD_CLK_ENABLE(); + GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9; + 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_USART3; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + } else { + ASSERT(false, "UART3 NOT SUPPORT PIN"); + } hdma1_stream1.Instance = DMA1_Stream1; hdma1_stream1.Init.Channel = DMA_CHANNEL_4; @@ -198,14 +211,14 @@ void AppHal::UART3_Init() { /** * @brief */ -void AppHal::UART4_Init() { +void AppHal::UART4_Init(Pin_t tx, Pin_t rx, int32_t baudrate) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_UART4_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); huart4.Instance = UART4; - huart4.Init.BaudRate = 256000; + huart4.Init.BaudRate = baudrate; // 256000 huart4.Init.WordLength = UART_WORDLENGTH_8B; huart4.Init.StopBits = UART_STOPBITS_1; huart4.Init.Parity = UART_PARITY_NONE; @@ -220,12 +233,16 @@ void AppHal::UART4_Init() { PC10 ------> UART4_TX PC11 ------> UART4_RX */ - GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_PULLDOWN; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF8_UART4; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + if (tx == PC10 && rx == PC11) { + GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF8_UART4; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + } else { + ASSERT(false, "UART4 NOT SUPPORT PIN"); + } /* UART4 interrupt Init */ HAL_NVIC_SetPriority(UART4_IRQn, 5, 0); diff --git a/uappbase/apphal/apphal.hpp b/uappbase/apphal/apphal.hpp index 7a1f1f6..3800e29 100644 --- a/uappbase/apphal/apphal.hpp +++ b/uappbase/apphal/apphal.hpp @@ -7,18 +7,18 @@ class AppHal { public: static void MX_TIM6_Init(void); static void MX_TIM7_Init(void); + static void DEBUG_UART_INIT(Pin_t tx, Pin_t rx, int32_t baudrate); - static void MX_IWDG_Init(void); + static void UART3_Init(Pin_t tx, Pin_t rx, int32_t baudrate); + static void UART4_Init(Pin_t tx, Pin_t rx, int32_t baudrate); - static void UART3_Init(); - static void UART4_Init(); + static void MX_IWDG_Init(void); - static void MX_I2C1_Init(void) ; + static void MX_I2C1_Init(void); static void tmc_spi_init(); static void rtc_init(); static void usb_init(); - }; } // namespace iflytop diff --git a/usrc/apphardware/apphardware.cpp b/usrc/apphardware/apphardware.cpp index f746091..8ecb8e3 100644 --- a/usrc/apphardware/apphardware.cpp +++ b/usrc/apphardware/apphardware.cpp @@ -4,21 +4,26 @@ using namespace iflytop; #define TAG "AppHardware" void AppHardware::setTJCScreenInDownloadMode() { - TJC_UART_CH_SEL_PIN.setState(true); - TJC_UART_CH_EN_PIN.setState(false); + TJC_UART_CH_SEL.setState(true); + TJC_UART_CH_EN.setState(false); } void AppHardware::initialize() { - AppHal::UART3_Init(); - AppHal::UART4_Init(); AppHal::MX_I2C1_Init(); AppHal::tmc_spi_init(); - TJC_UART_CH_SEL_PIN.initAsOutput(MOTO1_DRV_ENN_IO, kxs_gpio_nopull, false, false); - TJC_UART_CH_EN_PIN.initAsOutput(MOTO1_DRV_ENN_IO, kxs_gpio_nopull, false, false); - tjcUart = &huart4; + // TJC SCREEN UART INIT + TJC_UART_CH_SEL.initAsOutput(TJC_UART_CH_SEL_PIN, kxs_gpio_nopull, false, false); + TJC_UART_CH_EN.initAsOutput(TJC_UART_CH_EN_PIN, kxs_gpio_nopull, false, false); + static_assert(&TJC_UART_INS == &huart4); + AppHal::UART4_Init(TJC_UART_TX, TJC_UART_RX, 256000); + tjcUart = &TJC_UART_INS; + + // BLE REMOTER UART INIT + static_assert(&BLE_UART_INS == &huart3); + AppHal::UART3_Init(BLE_UART_TX, BLE_UART_RX, 115200); + remoteContolerUart = &BLE_UART_INS; - remoteContolerUart = &huart3; MOTO_POWER_EN.initAsOutput(MOTO_POWER_EN_IO, kxs_gpio_nopull, false, true); MOTO1_CSN.initAsOutput(MOTO1_CSN_IO, kxs_gpio_nopull, false, true); diff --git a/usrc/apphardware/apphardware.hpp b/usrc/apphardware/apphardware.hpp index 1304562..579ade5 100644 --- a/usrc/apphardware/apphardware.hpp +++ b/usrc/apphardware/apphardware.hpp @@ -49,8 +49,8 @@ class AppHardware { ZGPIO BLE_CONNECTED_STATE; UART_HandleTypeDef* tjcUart; - ZGPIO TJC_UART_CH_SEL_PIN; - ZGPIO TJC_UART_CH_EN_PIN; + ZGPIO TJC_UART_CH_SEL; + ZGPIO TJC_UART_CH_EN; UART_HandleTypeDef* remoteContolerUart;