GD32F305 串口少发2个字节
本帖最后由 uart-2byte 于 2024-2-17 10:40 编辑GD32F305 串口,中断发送数据包时,最后2个字节末发出来 每个字节发送了需要对发送完成状态进行判断。 楼上大佬正解。。发送一共有2个状态位,都用用起来 如果您的系统中使用了嵌套中断,并且中断优先级配置不当,可能会导致串口发送中断未能及时响应。 可能是发送缓冲区问题 硬件连接问题或者串口配置问题 当在GD32F305上使用串口中断发送数据时,最后两个字节未能发送出去可能是中断处理有问题吧 如果发送缓冲区大小有限,可能会发生溢出导致最后两个字节未能发送出去。在中断发送数据时,需要检查发送缓冲区是否已满,如果满了则需要等待直到有空间再继续发送 串口时钟设置不正确可能导致数据发送不完整。确保串口时钟设置正确,以满足所需的波特率和数据传输要求 如果有其他中断干扰了串口发送中断,可能会导致最后两个字节未能发送出去。确保串口发送中断的优先级设置正确,以确保及时处理串口发送中断 在极少数情况下,硬件问题可能导致串口发送不完整。检查串口相关的硬件连接和引脚配置,确保没有硬件问题 在调试过程中,可以使用调试工具(如逻辑分析仪)来观察串口发送中断的触发情况和数据发送情况,以帮助定位问题所在 其实你可以使用仿真的方式看看程序如何执行的,估计是中断的问题 在串口发送中断处理函数中,可能存在未完整处理最后两个字节的情况。确保中断处理函数能够正确处理剩余的数据并发送出去 官方没有例程吗?你按照例程上面进行修改多好 感觉有点像干扰呢,但是干扰一般都是随机丢数据,你这个还挺规律 应该是判断发送完整时间不对 每个字节发送了需要对发送完成状态进行判断。
页:
[1]