修改时间 11-19-2020 04:49 PM
建议描述的具体写,可以贴上了log和代码,串口本身是全双工,我推测可能是代码问题。
----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------
修改时间 11-19-2020 04:53 PM
void INTERRUPT_Handler_CALIBRATION(void)
{
while((Calibration_Trans_Buffer_Begin!=Calibration_Trans_Buffer_Rear)&&((Xil_In32(XPAR_UART_MAIN_INTERFACE_BASEADDR+0x08)&0x08)==0))
{
Xil_Out32(XPAR_UART_MAIN_INTERFACE_BASEADDR+0x04,Calibration_Trans_Buffer[Calibration_Trans_Buffer_Begin]);
Calibration_Trans_Buffer_Begin=(Calibration_Trans_Buffer_Begin+1)&0xFF;
}
if(Calibration_Trans_Buffer_Begin==Calibration_Trans_Buffer_Rear)
{
XUartLite_DisableInterrupt(Pointer_Uart_Calibration);
}
}
这是串口中断代码,只发送是没有问题的,但是如果上位机也开始往下发数据,上发的数据就不对了,但我中断函数里并没有处理接收的数据,为什么会影响发送的数据呢