I am using uart1 for modbus protocol.
1) issue on callback mode first time calling uart1 function it will goto callback function there i am not received any data.
unit8_t test_char;
/* Create UART process */
UART_Params_init(&uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readReturnMode = UART_RETURN_FULL;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.stopBits = UART_STOP_ONE;
uartParams.parityType = UART_PAR_EVEN;
uartParams.baudRate = 9600;
uartParams.readCallback = uart_isr_callback;
uartParams.readMode = UART_MODE_CALLBACK;
while(1)
{
//Here message queue and semaphore is there
GPIO_write(CUSTOM_UART1_RTS, 1);
u_count = UART_write(uart, (char *) my_recv_data.msgptr, my_recv_data.msg_len);
GPIO_write(CUSTOM_UART1_RTS, 0);
u_count = UART_read(uart, &test_char, 1);
}
void uart_isr_callback (UART_Handle handle, void *buf, size_t count){
char recv_data[300] = (uint8_t*)buff;
}
count size i am getting 1 and buf 0 but modbus slave response is 248 bytes.
Why i not able to get response ?
2) Issue on BLOCKING_MODE.
Configuration:
uartParams.readTimeout = UART_READ_WAIT; // 3000 uartParams.writeMode = UART_MODE_BLOCKING; uartParams.readMode = UART_MODE_BLOCKING
//Here message queue and semaphore is there GPIO_write(CUSTOM_UART1_RTS, 1); u_count = UART_write(uart, (char *) my_recv_data.msgptr, my_recv_data.msg_len); GPIO_write(CUSTOM_UART1_RTS, 0); u_count = UART_read(uart, output, read_size);
Suppose meter not sending response within 3sec read function not waiting for response ?
After sending next modbus request read function return some junk data but meter sending proper response read function getting some junk data.
Why receive function not working properly ?
Thank You
Vasu