作者 | 陈振哲
背景
想必大家拿到RVB2601都会跑一下自带的helloworld例程,其中消息是通过LOGD函数打出的。
LOGD(TAG, "test! YoC");
与此同时,由于带了stdlib库,printf函数也是可以使用的,可以正常地在putty上打印出消息来。但是如果我们如果与上位机交互,scanf是无法使用的。
值得注意的是,如果有与我一样用putty连接RVB2601的朋友们,会碰到在虚拟串口窗口上打不出字的情况,可以在putty的configuration中找到connection-serial-flow control,putty默认用的是XON/XOFF,将其改成None即可。
使用cli_getchar的尝试
接下来就可以处理读取数据的函数,常用的scanf()函数在这里是没有定义的,只能考虑从uart获取数据,uart_getchar()函数于此也是不可用的,如果从头写一个从uart获取消息的功能需要设计到很多方面。由于并没有现成现成的资料,群中的清欢老师建议参考cli中cli_adapt.c中cli_getchar函数,定义如下所示。
int32_t cli_getchar(char *inbuf)
{
uart_dev_t uart_stdio;
int32_t ret