| 
 
贡献166 
飞刀46 FD
注册时间2020-2-10
在线时间4 小时积分33 
 
 
 扫一扫,手机访问本帖  | 
 
| 本帖最后由 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个数据,后面就没有了。
 
 
 
 
 
 | 
 |