static int uart_send_stream(uart_socket_t *u, char* pbuf, int len) { int ret; if(!len || (!pbuf) || !u){ uart_printf("input error,size should not be null\r\n"); return -1; } #if UART_SOCKET_USE_DMA_TX while(RtlDownSema(&u->dma_tx_sema) == pdTRUE){ ret = serial_send_stream_dma(&u->sobj, pbuf, len); if(ret != HAL_OK){ RtlUpSema(&u->dma_tx_sema); return -1; }else{ return 0; } } #else while (len){ serial_putc(&u->sobj, *pbuf); len--; pbuf++; } #endif return 0; }
int uartadapter_uart_write(char *pbuf, size_t size) { /*the same as socket*/ int ret = 0; //int cnt = 0; if(!size || !pbuf){ //ua_printf(UA_ERROR, "inpua error,please check!"); ret = -1; return ret; } #if 1 do{ ret = serial_send_stream_dma(&ua_sobj, pbuf, size); }while(ret != HAL_OK); #else while (size){ serial_putc(&ua_sobj, *pbuf); //printf("uart write %d \n", *pbuf); size--; pbuf++; } #endif return ret; }