- 积分
- 33
贡献166
飞刀46 FD
注册时间2020-2-10
在线时间4 小时
扫一扫,手机访问本帖
|
本帖最后由 wpneu 于 2020-3-5 18:28 编辑
各位好,我用ok1061开发板进行串口通信,使用自带的uart_sample.c的测试程序,感觉一次最大只能读取64个字节,我需要传输1k字节的数据,后面就丢了,只能接收到64个字节数据,有什么办法一次接收完整1k数据吗?
使用uart_sample.c的原封不动的程序,只把tx_buf 的数据改为了1k字节,每次只能收64 就不继续传输了。
static void serial_thread_entry_rx(void *parameter)
{
char rx_buf[250];
rt_uint32_t i=0;
while (1)
{
while (rt_device_read(serial, -1, &rx_buf, 1) != 1)
{
rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
}
rt_kprintf("i=%d\n", i);
if((i++)==(sizeof(tx_buf)-2))
{
rx_buf = '\0';
rt_kprintf("uart2 recive len:%d data : %s \n", i, rx_buf);
i=0;
}
}
}
msh />uart_sample
uart2 example start ...
msh />read len:63
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
read len:63
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
我对端发送的是1k的数据,但是每次只能收到64个数据,后面就没有了。
|
|