本帖最后由 volbin0042 于 2023-3-22 14:37 编辑
UART 发送接收正常
程序写了发送码,用 while 条件循环等待
直到收到 0x03 会将条件不成立
但 debug 已收到 0x03 将条件不成立
while 条件循环仍然无法离开
uartr接收中断已使条件式u8Rx0num =1
while(1)
{
for(IX=0;IX<=12;IX++)
{
u8Rx0Data[IX]=0x00;
}
u8Rx0** = 0;
Gpio_WriteOutputIO(STK_WR0_PORT, STK_WR0_PIN,TRUE );
delay10us(1);
IY=0;
for(IY=0;IY<=14;IY++)
{
Uart_SendDataPoll(M0P_UART0,u8Tx0[1][IY] );
}
Gpio_WriteOutputIO(STK_WR0_PORT, STK_WR0_PIN, FALSE);
IA=0;
while(u8Rx0num == 0)
{
//无法离开
}
}
///< UART0 中断服务函数
void Uart0_IRQHandler(void)
{
if(TRUE == Uart_GetStatus(M0P_UART0, UartRC))
{
uint8_t u8Rx0_tmp=0;
Uart_ClrStatus(M0P_UART0, UartRC);
u8Rx0_tmp = Uart_ReceiveData(M0P_UART0);
if(u8Rx0_tmp == 0x02)
{
IR0=0;
}
u8Rx0Data[IR0] = u8Rx0_tmp;
if(u8Rx0Data[IR0] == 0x03)
{
u8Rx0num = 1;
}
IR0++;
if(IR0 >= 15)
{
IR0=0;
}
}
} |