2025-02-28 08:57:09 +00:00
|
|
|
|
|
|
|
|
|
#include "queueUart.h"
|
|
|
|
|
#include "uart_dev.h"
|
|
|
|
|
#include "busIdleDetection.h"
|
2025-03-05 08:27:39 +00:00
|
|
|
|
#include "semphr.h"
|
2025-02-28 08:57:09 +00:00
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ĵ<EFBFBD>С */
|
|
|
|
|
#define QUEUE_SIZE 4
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>ڵĶ<DAB5><C4B6><EFBFBD> */
|
|
|
|
|
QueueHandle_t J1_485_Queue = NULL;
|
|
|
|
|
QueueHandle_t J2_485_Queue = NULL;
|
|
|
|
|
QueueHandle_t J3_485_Queue = NULL;
|
|
|
|
|
QueueHandle_t J4_485_Queue = NULL;
|
|
|
|
|
QueueHandle_t J5_0_485_Queue = NULL;
|
|
|
|
|
QueueHandle_t upward_uart_Queue = NULL;
|
|
|
|
|
/* <20><><EFBFBD>м<EFBFBD> */
|
|
|
|
|
QueueSetHandle_t uart_Queue = NULL;
|
|
|
|
|
|
2025-03-05 08:27:39 +00:00
|
|
|
|
QueueSetMemberHandle_t xActivatedMemberUartQueue;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
|
|
|
|
|
/* ͨ<><CDA8><EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ýṹ<C3BD>壬<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ڴ<EFBFBD> */
|
|
|
|
|
typedef struct _queueRecvDataInfo {
|
|
|
|
|
queueUartSendInfo *J1_485_data;
|
|
|
|
|
queueUartSendInfo *J2_485_data;
|
|
|
|
|
queueUartSendInfo *J3_485_data;
|
|
|
|
|
queueUartSendInfo *J4_485_data;
|
|
|
|
|
queueUartSendInfo *upward_uart_data;
|
|
|
|
|
queueTimeShareSendInfo *J5_0_485_data;
|
|
|
|
|
} queueRecvDataInfo;
|
|
|
|
|
static queueRecvDataInfo queueRecvData;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD>͵Ķ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void uartQueueInit(void)
|
|
|
|
|
{
|
|
|
|
|
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
J1_485_Queue = xQueueCreate(5, QUEUE_SIZE);
|
|
|
|
|
// if (NULL == J1_485_Queue) {
|
|
|
|
|
// log_error("creat J1_485_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
J2_485_Queue = xQueueCreate(5, QUEUE_SIZE);
|
|
|
|
|
// if (NULL == J2_485_Queue) {
|
|
|
|
|
// log_error("creat J2_485_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
J3_485_Queue = xQueueCreate(5, QUEUE_SIZE);
|
|
|
|
|
// if (NULL == J3_485_Queue) {
|
|
|
|
|
// log_error("creat J3_485_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
J4_485_Queue = xQueueCreate(5, QUEUE_SIZE);
|
|
|
|
|
// if (NULL == J4_485_Queue) {
|
|
|
|
|
// log_error("creat J4_485_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
2025-03-04 10:04:30 +00:00
|
|
|
|
J5_0_485_Queue = xQueueCreate(10, QUEUE_SIZE);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
// if (NULL == J5_0_485_Queue) {
|
|
|
|
|
// log_error("creat J5_0_485_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
upward_uart_Queue = xQueueCreate(10, QUEUE_SIZE);
|
|
|
|
|
// if (NULL == upward_uart_Queue) {
|
|
|
|
|
// log_error("creat upward_uart_Queue error\n");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD> */
|
|
|
|
|
uart_Queue = xQueueCreateSet(6);
|
|
|
|
|
xQueueAddToSet(J1_485_Queue, uart_Queue);
|
|
|
|
|
xQueueAddToSet(J2_485_Queue, uart_Queue);
|
|
|
|
|
xQueueAddToSet(J3_485_Queue, uart_Queue);
|
|
|
|
|
xQueueAddToSet(J4_485_Queue, uart_Queue);
|
|
|
|
|
xQueueAddToSet(J5_0_485_Queue, uart_Queue);
|
|
|
|
|
xQueueAddToSet(upward_uart_Queue, uart_Queue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void uartQueueSend(void)
|
|
|
|
|
{
|
2025-03-04 10:04:30 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ʱ */
|
|
|
|
|
static uint8_t flag = 0;
|
|
|
|
|
|
2025-02-28 08:57:09 +00:00
|
|
|
|
/* <20>鿴<EFBFBD><E9BFB4><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
2025-03-05 08:27:39 +00:00
|
|
|
|
xActivatedMemberUartQueue = xQueueSelectFromSet(uart_Queue, portMAX_DELAY);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
|
|
|
|
|
/* <20>鿴Upward_uart5<74><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getUartState(g_Upward_uart5_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(upward_uart_Queue, &queueRecvData.upward_uart_data, 0) == pdTRUE) {
|
|
|
|
|
uartInterruptSend(g_Upward_uart5_handle, queueRecvData.upward_uart_data->data
|
|
|
|
|
, queueRecvData.upward_uart_data->length);
|
2025-03-04 10:04:30 +00:00
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20>鿴J1_485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getRs485State(g_J1_uart6_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(J1_485_Queue, &queueRecvData.J1_485_data, 0) == pdTRUE) {
|
|
|
|
|
uartInterruptSend(g_J1_uart6_handle, queueRecvData.J1_485_data->data
|
2025-03-04 10:04:30 +00:00
|
|
|
|
, queueRecvData.J1_485_data->length);
|
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20>鿴J2_485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getRs485State(g_J2_uart7_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(J2_485_Queue, &queueRecvData.J2_485_data, 0) == pdTRUE) {
|
|
|
|
|
uartInterruptSend(g_J2_uart7_handle, queueRecvData.J2_485_data->data
|
2025-03-04 10:04:30 +00:00
|
|
|
|
, queueRecvData.J2_485_data->length);
|
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20>鿴J3_485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getRs485State(g_J3_usart2_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(J3_485_Queue, &queueRecvData.J3_485_data, 0) == pdTRUE) {
|
|
|
|
|
uartInterruptSend(g_J3_usart2_handle, queueRecvData.J3_485_data->data
|
|
|
|
|
, queueRecvData.J3_485_data->length);
|
2025-03-04 10:04:30 +00:00
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20>鿴J4_485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getRs485State(g_J4_uart8_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(J4_485_Queue, &queueRecvData.J4_485_data, 0) == pdTRUE) {
|
|
|
|
|
uartInterruptSend(g_J4_uart8_handle, queueRecvData.J3_485_data->data
|
|
|
|
|
, queueRecvData.J4_485_data->length);
|
2025-03-04 10:04:30 +00:00
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20>鿴J5_0_485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (!getRs485State(g_J5_0_usart3_handle)) {
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
if (xQueueReceive(J5_0_485_Queue, &queueRecvData.J5_0_485_data, 0) == pdTRUE) {
|
|
|
|
|
setConnectPort(queueRecvData.J5_0_485_data->connectPort);
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// log_info("send J5_0 Data : %s , %d\n", queueRecvData.J5_0_485_data->data, queueRecvData.J5_0_485_data->length);
|
2025-03-04 10:04:30 +00:00
|
|
|
|
uartInterruptSend(g_J5_0_usart3_handle, queueRecvData.J5_0_485_data->data
|
2025-02-28 08:57:09 +00:00
|
|
|
|
, queueRecvData.J5_0_485_data->length);
|
2025-03-04 10:04:30 +00:00
|
|
|
|
flag = 1;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-04 10:04:30 +00:00
|
|
|
|
/* û<><C3BB><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ */
|
|
|
|
|
if (!flag) {
|
|
|
|
|
/* <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD> */
|
|
|
|
|
vTaskDelay(3);
|
2025-03-12 07:00:12 +00:00
|
|
|
|
log_info("getRs485State : %d\n", getRs485State(g_J5_0_usart3_handle));
|
2025-03-04 10:04:30 +00:00
|
|
|
|
}
|
|
|
|
|
flag = 0;
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef UARTINTERRUPTSEND
|
2025-03-05 08:27:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>
|
|
|
|
|
QueueSetHandle_t BinarySemaphoreSet = NULL;
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD>
|
|
|
|
|
SemaphoreHandle_t J1_BinarySemaphore = NULL;
|
|
|
|
|
SemaphoreHandle_t J2_BinarySemaphore = NULL;
|
|
|
|
|
SemaphoreHandle_t J3_BinarySemaphore = NULL;
|
|
|
|
|
SemaphoreHandle_t J4_BinarySemaphore = NULL;
|
|
|
|
|
SemaphoreHandle_t J5_0_BinarySemaphore = NULL;
|
|
|
|
|
SemaphoreHandle_t upward_BinarySemaphore = NULL;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void binarySemaphoreInit(void)
|
|
|
|
|
{
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>
|
|
|
|
|
BinarySemaphoreSet = xQueueCreateSet(6);
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD>
|
|
|
|
|
J1_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
J2_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
J3_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
J4_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
J5_0_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
upward_BinarySemaphore = xSemaphoreCreateBinary();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>
|
|
|
|
|
xQueueAddToSet(J1_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
xQueueAddToSet(J2_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
xQueueAddToSet(J3_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
xQueueAddToSet(J4_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
xQueueAddToSet(J5_0_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
xQueueAddToSet(upward_BinarySemaphore, BinarySemaphoreSet);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void binarySemaphoreFreeMemory(void)
|
|
|
|
|
{
|
|
|
|
|
// <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>м<EFBFBD><D0BC>е<EFBFBD><D0B5>¼<EFBFBD>
|
|
|
|
|
QueueSetMemberHandle_t xActivatedMember = xQueueSelectFromSet(BinarySemaphoreSet, portMAX_DELAY);
|
|
|
|
|
|
|
|
|
|
if (xActivatedMember == J1_BinarySemaphore) {
|
|
|
|
|
// ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
vPortFree(queueRecvData.J1_485_data);
|
2025-03-06 02:12:57 +00:00
|
|
|
|
vTaskDelay(1);
|
|
|
|
|
readJ1_485;
|
2025-03-05 08:27:39 +00:00
|
|
|
|
setJ1_485_SendState(0);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>¼<EFBFBD>
|
|
|
|
|
xSemaphoreTake(J1_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (xActivatedMember == J2_BinarySemaphore) {
|
|
|
|
|
vPortFree(queueRecvData.J2_485_data);
|
2025-03-06 02:12:57 +00:00
|
|
|
|
vTaskDelay(1);
|
|
|
|
|
readJ2_485;
|
2025-03-05 08:27:39 +00:00
|
|
|
|
setJ2_485_SendState(0);
|
|
|
|
|
xSemaphoreTake(J2_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (xActivatedMember == J3_BinarySemaphore) {
|
|
|
|
|
vPortFree(queueRecvData.J3_485_data);
|
2025-03-06 02:12:57 +00:00
|
|
|
|
vTaskDelay(1);
|
|
|
|
|
readJ3_485;
|
2025-03-05 08:27:39 +00:00
|
|
|
|
setJ3_485_SendState(0);
|
|
|
|
|
xSemaphoreTake(J3_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (xActivatedMember == J4_BinarySemaphore) {
|
|
|
|
|
vPortFree(queueRecvData.J4_485_data);
|
2025-03-06 02:12:57 +00:00
|
|
|
|
vTaskDelay(1);
|
|
|
|
|
readJ4_485;
|
2025-03-05 08:27:39 +00:00
|
|
|
|
setJ4_485_SendState(0);
|
|
|
|
|
xSemaphoreTake(J4_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (xActivatedMember == J5_0_BinarySemaphore) {
|
|
|
|
|
vPortFree(queueRecvData.J5_0_485_data);
|
2025-03-06 02:12:57 +00:00
|
|
|
|
vTaskDelay(1);
|
|
|
|
|
readJ5_0_485;
|
2025-03-05 08:27:39 +00:00
|
|
|
|
setJ5_0_485_SendState(0);
|
|
|
|
|
xSemaphoreTake(J5_0_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (xActivatedMember == upward_BinarySemaphore) {
|
|
|
|
|
vPortFree(queueRecvData.upward_uart_data);
|
|
|
|
|
setUpward_uart_SendState(0);
|
|
|
|
|
xSemaphoreTake(upward_BinarySemaphore, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-28 08:57:09 +00:00
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void J1_485_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.J1_485_data);
|
|
|
|
|
xSemaphoreGiveFromISR(J1_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void J2_485_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.J2_485_data);
|
|
|
|
|
xSemaphoreGiveFromISR(J2_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void J3_485_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.J3_485_data);
|
|
|
|
|
xSemaphoreGiveFromISR(J3_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void J4_485_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.J4_485_data);
|
|
|
|
|
xSemaphoreGiveFromISR(J4_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void J5_0_485_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.J5_0_485_data);
|
|
|
|
|
xSemaphoreGiveFromISR(J5_0_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Upward_USART_IN_TXE(void)
|
|
|
|
|
{
|
2025-03-05 08:27:39 +00:00
|
|
|
|
// vPortFree(queueRecvData.upward_uart_data);
|
|
|
|
|
xSemaphoreGiveFromISR(upward_BinarySemaphore, 0);
|
2025-02-28 08:57:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|