From 3a46da6a97004fefad370dda9db06211fba275bb Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 15 Jul 2026 10:32:26 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=90=E9=81=97=E7=95=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=91=E5=8F=91=E5=BF=AB=E4=BA=86=E4=BC=9A=E5=9B=9E?= =?UTF-8?q?=E6=98=BE=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bspMCU/bsp_uart.c | 2 +- project/Spoolend/Spoolend.c | 107 +++++++++++++++++++----------------- 2 files changed, 59 insertions(+), 50 deletions(-) diff --git a/bspMCU/bsp_uart.c b/bspMCU/bsp_uart.c index bc53450..3312963 100644 --- a/bspMCU/bsp_uart.c +++ b/bspMCU/bsp_uart.c @@ -21,8 +21,8 @@ static TUartTab g_ptUartTab[] = { {&hlpuart1, NULL}, {&huart1, NULL}, {&huart2, NULL}, -#ifdef IOC_100PIN {&huart3, NULL}, +#ifdef IOC_100PIN {&huart4, NULL}, {&huart5, NULL}, {&huart6, NULL}, diff --git a/project/Spoolend/Spoolend.c b/project/Spoolend/Spoolend.c index 4bab303..6c4086a 100644 --- a/project/Spoolend/Spoolend.c +++ b/project/Spoolend/Spoolend.c @@ -72,14 +72,18 @@ static int RS485_2_Send(char *_pBuffer, uint32_t _iSize) #ifndef CONFIG_UART_IT_IDLEDMA void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { - if (huart->Instance == LPUART1) + if (huart->Instance == USART1) { UART_RX_IRQHandler(g_ptRS485_1); } - else if (huart->Instance == USART1) + else if (huart->Instance == USART3) { UART_RX_IRQHandler(g_ptRS485_2); } + else if (huart->Instance == LPUART1) + { + //UART_RX_IRQHandler(g_ptRS485_2); + } } #endif @@ -100,12 +104,12 @@ static int check_Spoolend(char *_pBuffer, uint32_t _iSize) static void decode_RS485_1(const char *_pBuffer, uint32_t _iSize) { - rd_ComSend(g_ptRS485_1, (char *)_pBuffer, _iSize); + rd_ComWrite(g_ptRS485_1, (char *)_pBuffer, _iSize); } static void decode_RS485_2(const char *_pBuffer, uint32_t _iSize) { - rd_ComSend(g_ptRS485_2, (char *)_pBuffer, _iSize); + rd_ComWrite(g_ptRS485_2, (char *)_pBuffer, _iSize); } static void decode_Spoolend(const char *_pBuffer, uint32_t _iSize) @@ -136,42 +140,42 @@ void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs) } } -void Myprint_Init(void) -{ - TUartUserData *ptUartUserData = UART_userdata_init(1, 115200, 4096); - g_ptRS485_2 = rd_ComCreate(NULL, NULL, RS485_2_Send, ptUartUserData->m_buf_size, ptUartUserData); - UART_IT_init(g_ptRS485_2); -} - -int Myprint_putchar(uint8_t ch) -{ - char tx_buf[2]; - - if (ch == '\n') - { - // 遇到换行,发送 \r\n - tx_buf[0] = '\r'; - tx_buf[1] = '\n'; - if (rd_ComSend(g_ptRS485_2, tx_buf, 2) < 0) return EOF; - return 2; - } - else - { - // 普通字符 - tx_buf[0] = ch; - if (rd_ComSend(g_ptRS485_2, tx_buf, 1) < 0) return EOF; - return 1; - } -} +//void Myprint_Init(void) +//{ +// TUartUserData *ptUartUserData = UART_userdata_init(3, 115200, 4096); +// g_ptRS485_2 = rd_ComCreate(NULL, NULL, RS485_1_Send, ptUartUserData->m_buf_size, ptUartUserData); +// UART_IT_init(g_ptRS485_2); +//} +// +//int Myprint_putchar(uint8_t ch) +//{ +// char tx_buf[2]; +// +// if (ch == '\n') +// { +// // 遇到换行,发送 \r\n +// tx_buf[0] = '\r'; +// tx_buf[1] = '\n'; +// if (rd_ComSend(g_ptRS485_2, tx_buf, 2) < 0) return EOF; +// return 2; +// } +// else +// { +// // 普通字符 +// tx_buf[0] = ch; +// if (rd_ComSend(g_ptRS485_2, tx_buf, 1) < 0) return EOF; +// return 1; +// } +//} void SpoolendInit(void) { - TUartUserData *ptUartUserData = UART_userdata_init(0, 115200, 512); - g_ptRS485_1 = rd_ComCreate(check_RS485_1, decode_RS485_1, RS485_1_Send, ptUartUserData->m_buf_size, ptUartUserData); + TUartUserData *ptUartUserData = UART_userdata_init(1, 115200, 512); + g_ptRS485_1 = rd_ComCreate(check_RS485_2, decode_RS485_2, RS485_2_Send, ptUartUserData->m_buf_size, ptUartUserData); UART_IT_init(g_ptRS485_1); -// TUartUserData *ptUartUserData1 = UART_userdata_init(0, 115200, 512); -// g_ptRS485_2 = rd_ComCreate(check_RS485_2, decode_RS485_2, RS485_2_Send, ptUartUserData1->m_buf_size, ptUartUserData1); -// UART_IT_init(g_ptRS485_2); + TUartUserData *ptUartUserData1 = UART_userdata_init(3, 115200, 512); + g_ptRS485_2 = rd_ComCreate(check_RS485_1, decode_RS485_1, RS485_1_Send, ptUartUserData1->m_buf_size, ptUartUserData1); + UART_IT_init(g_ptRS485_2); TCANUserData *ptCANUserData = CAN_userdata_init(&hfdcan1, 8, 0); g_ptFDCAN1 = rd_ComCreate(check_Spoolend, decode_Spoolend, FDCAN1_Send, CONFIG_UART_BUFFER_SIZE, ptCANUserData); CAN_IT_init(g_ptFDCAN1); @@ -180,25 +184,30 @@ void SpoolendInit(void) void SpoolendTask(void) { char pcBuffer1[52] = {0}; -// char pcBuffer2[52] = {0}; + char pcBuffer2[52] = {0}; char pcBuffer3[52] = {0}; __disable_irq(); rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1)); -// rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); + rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); rd_ComRead(g_ptFDCAN1, pcBuffer3, sizeof(pcBuffer3)); __enable_irq(); - printf("Hello world\n"); - HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); - HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); - HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); - -// HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin); -// HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin); -// HAL_GPIO_TogglePin(K3_GPIO_Port, K3_Pin); -// HAL_GPIO_TogglePin(K4_GPIO_Port, K4_Pin); -// HAL_GPIO_TogglePin(K5_GPIO_Port, K5_Pin); +// rd_ComWrite(g_ptRS485_1, "Hello\n", 6); +// rd_ComWrite(g_ptRS485_2, "Hello\n", 6); +// rd_ComIDWrite(g_ptFDCAN1, 1, "Hello\n", 6); + + HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); + HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); + HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); + HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin); + HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin); + HAL_GPIO_TogglePin(K3_GPIO_Port, K3_Pin); + HAL_GPIO_TogglePin(K4_GPIO_Port, K4_Pin); + HAL_GPIO_TogglePin(K5_GPIO_Port, K5_Pin); + + rd_ComSendProc(g_ptRS485_1); + rd_ComSendProc(g_ptRS485_2); rd_ComSendProc(g_ptFDCAN1); - HAL_Delay(500); + HAL_Delay(10); } From 48b7027c5628e62f09eb23e705cd94bca50aca6f Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 15 Jul 2026 10:51:27 +0800 Subject: [PATCH 2/5] =?UTF-8?q?spoolend=5Fnew=20=E3=80=90=E7=96=91?= =?UTF-8?q?=E9=9A=BE=E9=97=AE=E9=A2=98=E8=A7=A3=E5=86=B3=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E3=80=91=E4=B8=B2=E5=8F=A3=E5=9B=9E=E6=98=BE=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=9C=A8read=E5=90=8E=E8=B0=83=E7=94=A8=EF=BC=8C=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=8C=89=E5=B8=A7=E7=9A=84=E6=95=B0=E6=8D=AE=E6=97=B6?= =?UTF-8?q?=E6=89=8D=E9=9C=80=E8=A6=81=E5=9C=A8=E5=9B=9E=E8=B0=83=E4=B8=AD?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/Spoolend/Spoolend.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/project/Spoolend/Spoolend.c b/project/Spoolend/Spoolend.c index 6c4086a..a90e303 100644 --- a/project/Spoolend/Spoolend.c +++ b/project/Spoolend/Spoolend.c @@ -104,12 +104,12 @@ static int check_Spoolend(char *_pBuffer, uint32_t _iSize) static void decode_RS485_1(const char *_pBuffer, uint32_t _iSize) { - rd_ComWrite(g_ptRS485_1, (char *)_pBuffer, _iSize); + //rd_ComWrite(g_ptRS485_1, (char *)_pBuffer, _iSize); } static void decode_RS485_2(const char *_pBuffer, uint32_t _iSize) { - rd_ComWrite(g_ptRS485_2, (char *)_pBuffer, _iSize); + //rd_ComWrite(g_ptRS485_2, (char *)_pBuffer, _iSize); } static void decode_Spoolend(const char *_pBuffer, uint32_t _iSize) @@ -187,13 +187,13 @@ void SpoolendTask(void) char pcBuffer2[52] = {0}; char pcBuffer3[52] = {0}; __disable_irq(); - rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1)); - rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); + int i485_1 = rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1)); + int i485_2 = rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); rd_ComRead(g_ptFDCAN1, pcBuffer3, sizeof(pcBuffer3)); __enable_irq(); -// rd_ComWrite(g_ptRS485_1, "Hello\n", 6); -// rd_ComWrite(g_ptRS485_2, "Hello\n", 6); + if (i485_1 > 0) rd_ComWrite(g_ptRS485_1, pcBuffer1, i485_1); + if (i485_2 > 0) rd_ComWrite(g_ptRS485_2, pcBuffer2, i485_2); // rd_ComIDWrite(g_ptFDCAN1, 1, "Hello\n", 6); HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); @@ -208,6 +208,5 @@ void SpoolendTask(void) rd_ComSendProc(g_ptRS485_1); rd_ComSendProc(g_ptRS485_2); rd_ComSendProc(g_ptFDCAN1); - HAL_Delay(10); } From 6637ded6a191a58c49563fd55925bdb9cf3eb432 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 15 Jul 2026 13:13:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E4=B8=8D=E6=B3=A8=E5=86=8C=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/Spoolend/Spoolend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project/Spoolend/Spoolend.c b/project/Spoolend/Spoolend.c index a90e303..e01f232 100644 --- a/project/Spoolend/Spoolend.c +++ b/project/Spoolend/Spoolend.c @@ -171,10 +171,10 @@ void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs) void SpoolendInit(void) { TUartUserData *ptUartUserData = UART_userdata_init(1, 115200, 512); - g_ptRS485_1 = rd_ComCreate(check_RS485_2, decode_RS485_2, RS485_2_Send, ptUartUserData->m_buf_size, ptUartUserData); + g_ptRS485_1 = rd_ComCreate(NULL, NULL, RS485_1_Send, ptUartUserData->m_buf_size, ptUartUserData); // 仿照My_print,check和decode传NULL UART_IT_init(g_ptRS485_1); TUartUserData *ptUartUserData1 = UART_userdata_init(3, 115200, 512); - g_ptRS485_2 = rd_ComCreate(check_RS485_1, decode_RS485_1, RS485_1_Send, ptUartUserData1->m_buf_size, ptUartUserData1); + g_ptRS485_2 = rd_ComCreate(NULL, NULL, RS485_2_Send, ptUartUserData1->m_buf_size, ptUartUserData1); // 仿照My_print,check和decode传NULL UART_IT_init(g_ptRS485_2); TCANUserData *ptCANUserData = CAN_userdata_init(&hfdcan1, 8, 0); g_ptFDCAN1 = rd_ComCreate(check_Spoolend, decode_Spoolend, FDCAN1_Send, CONFIG_UART_BUFFER_SIZE, ptCANUserData); From a7248b66af36e3d3772a58e9ee89e31b27fb8a43 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 15 Jul 2026 17:01:46 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E9=80=82=E9=85=8D=E4=B8=B2=E5=8F=A3DMA?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bspMCU/bsp_uart.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bspMCU/bsp_uart.c b/bspMCU/bsp_uart.c index 3312963..fe4a70a 100644 --- a/bspMCU/bsp_uart.c +++ b/bspMCU/bsp_uart.c @@ -2,14 +2,15 @@ #ifdef USE_UART extern DMA_HandleTypeDef hdma_usart1_rx; extern DMA_HandleTypeDef hdma_usart2_rx; +extern DMA_HandleTypeDef hdma_usart3_rx; #ifdef CONFIG_UART_IT_IDLEDMA static TUartTab g_ptUartTab[] = { {&hlpuart1, &hdma_usart2_rx}, {&huart1, &hdma_usart1_rx}, {&huart2, &hdma_usart2_rx}, -#ifdef IOC_100PIN {&huart3, &hdma_usart3_rx}, +#ifdef IOC_100PIN {&huart4, &hdma_usart4_rx}, {&huart5, &hdma_usart5_rx}, {&huart6, &hdma_usart6_rx}, From a278474cc0d05d6f97e94f9b91fb9d79f71684ea Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Wed, 15 Jul 2026 17:08:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=81=AF=E5=92=8C=E7=BB=A7=E7=94=B5?= =?UTF-8?q?=E5=99=A8=E9=97=AA=E7=83=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/Spoolend/Spoolend.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/project/Spoolend/Spoolend.c b/project/Spoolend/Spoolend.c index e01f232..10e56b3 100644 --- a/project/Spoolend/Spoolend.c +++ b/project/Spoolend/Spoolend.c @@ -183,6 +183,7 @@ void SpoolendInit(void) void SpoolendTask(void) { + static int iCount = 0; char pcBuffer1[52] = {0}; char pcBuffer2[52] = {0}; char pcBuffer3[52] = {0}; @@ -196,14 +197,22 @@ void SpoolendTask(void) if (i485_2 > 0) rd_ComWrite(g_ptRS485_2, pcBuffer2, i485_2); // rd_ComIDWrite(g_ptFDCAN1, 1, "Hello\n", 6); - HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); - HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); - HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); - HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin); - HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin); - HAL_GPIO_TogglePin(K3_GPIO_Port, K3_Pin); - HAL_GPIO_TogglePin(K4_GPIO_Port, K4_Pin); - HAL_GPIO_TogglePin(K5_GPIO_Port, K5_Pin); + if (iCount > 50000) + { + HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); + HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); + HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); + HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin); + HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin); + HAL_GPIO_TogglePin(K3_GPIO_Port, K3_Pin); + HAL_GPIO_TogglePin(K4_GPIO_Port, K4_Pin); + HAL_GPIO_TogglePin(K5_GPIO_Port, K5_Pin); + iCount = 0; + } + else + { + iCount++; + } rd_ComSendProc(g_ptRS485_1); rd_ComSendProc(g_ptRS485_2);