コード例 #1
0
ファイル: uart_socket.c プロジェクト: Lee1124Amy/HomeKit
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;
}
コード例 #2
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;
}