WCH沁恒单片机
直播中

刘敏

7年用户 1158经验值
私信 关注
[问答]

CH579如何直接读取到发送函数发送完成的标志?

调用串口库函数UART2——SendString();发送字符串,如果是半双工数据协议,需要给一个时间才可以完整接收到数据,如何直接读取到这个发送函数发送完成标志???改写改函数返回一个整形数据为标志位,发现发送数据缺少九个字节,求解


回帖(3)

李子胡

2022-7-25 11:29:52
可以查询R8_UARTx_TFC这个寄存器,查看当前发送FIFO中的字节数,如果等于最大值8,那么就延时等待或者while(条件);等待,小于8时再往FIFO中填充数据。超过FIFO的8字节的缓存容量,会导致丢数据。
举报

李慧

2022-7-25 11:29:56
不知道什么时候发送完成,我读出来这个R8_UARTx_TFC值是8,但是收到数据还是缺少字节。引脚电平改变,需要数据发送完整才改变,不如接收的数据都不完整,有示例教学一下吗
举报

陈萍

2022-7-25 11:30:00
调用库函数USRTx_SendString()的话,结束其中的while循环就算发送完毕。串口数据的接收方是我们的芯片吗,能不能排查一下是否为接收方的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分