调用串口库函数UART2——SendString();发送字符串,如果是半双工数据协议,需要给一个时间才可以完整接收到数据,如何直接读取到这个发送函数发送完成标志???改写改函数返回一个整形数据为标志位,发现发送数据缺少九个字节,求解
热门产品 :
CH32V317: 互联型青稞RISC-V MCU
调用串口库函数UART2——SendString();发送字符串,如果是半双工数据协议,需要给一个时间才可以完整接收到数据,如何直接读取到这个发送函数发送完成标志???改写改函数返回一个整形数据为标志位,发现发送数据缺少九个字节,求解
可以查询R8_UARTx_TFC这个寄存器,查看当前发送FIFO中的字节数,如果等于最大值8,那么就延时等待或者while(条件);等待,小于8时再往FIFO中填充数据。超过FIFO的8字节的缓存容量,会导致丢数据。
不知道什么时候发送完成,我读出来这个R8_UARTx_TFC值是8,但是收到数据还是缺少字节。引脚电平改变,需要数据发送完整才改变,不如接收的数据都不完整,有示例教学一下吗
调用库函数USRTx_SendString()的话,结束其中的while循环就算发送完毕。串口数据的接收方是我们的芯片吗,能不能排查一下是否为接收方的问题。