我打算用UART与超声波测距进行通信,请问UARTcharget函数是自动等待发送的么????还有UARTCharGetNonBlocking与UARTCharGet有什么区别???谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我打算用UART与超声波测距进行通信,请问UARTcharget函数是自动等待发送的么????还有UARTCharGetNonBlocking与UARTCharGet有什么区别???谢谢
Get是从串口buffer读取一个数。
执行UARTCharGet,去FIFO读数据。有数据则直接读出来,没有的话就会一直等待FIFO中有数据进来。
UARTCharGetNonBlocking读FIFO数据的话,有数据则读走,如果FIFO是空,就会返回一个错误,不会停在这里等待。

谢谢你的指教,我还有个小问题,就是我的超声波测距程序已经能测距了,就是没法用串口发给上位机,如果我把发送至上位机的代码放到while(1)的循环里面就可以发上位机,但是没法测距,我用的是TM4C123GXL, CCS6.0
代码架构的问题了。
把接收都放在中断处理,把数据从UART FIFO转到RAM中,然后置标志位;
主循环while1来检测标志位,处理接收到的数据;如果有数据需要发送,也在主循环里面进行发送。
大神,那个接收放在中断里我是这么做的也有标志,while循环也是检测标志,但是为什么发不出数据???还有那个从UART FIFO到RAM是不是就是UARTCharGet函数将其赋给一个变量???
我在看例程时有这么一个疑问
UARTCharPutNonBlocking(UART1_BASE, UARTCharGetNonBlocking(UART1_BASE));
这里面 UARTCharGetNonBlocking(UART1_BASE) 这个返回数据类型是32位整型
但是UARTCharPutNonBlocking 这个函数里面参数是char型。。直接这样传输不会有问题吗?
另外,请问FIFO深度
UARTFIFOLevelSet(UART1_BASE,UART_FIFO_TX1_8,UART_FIFO_RX1_8);
这个有什么作用呢?是不是配置如果是一半深度的话,UARTCharGetNonBlocking读取的就直接是16位数据,而不是八位?(假设UART通信协议时数据位8位)