我参考别人的UART2的发送和接收程序入下(与主CPU
通信)。现在面临的问题是,在我给CPU发送请求后,如果主CPU不给答复,那么我的程序就会一直在(1)处进入死循环,我该怎么修改跳出循环而不影响string5的赋值。
u8 UART2_ReceiveByte(void)
{
while (!(UART2_SR UART2_FLAG_RXNE));// (1)
USART2_RX_BUF=(uint8_t)UART2_DR;
return USART2_RX_BUF;
}
void UART2_SendByte(u8 data)
{
UART2_DR=data;
while (!(UART2_SR UART2_FLAG_TXE));
}
main()
{
uchar lcd_addy=0;
uchar j=10;
while (lcd_addy<22) //等待主CPU启动完成并返回当前属性值,CPU答复22个字符
{
while(j) //向主机发送10次请求命令
{
UART2_SendByte(0xff); //
单片机向主CPU发送获取当前显示命令请求
UART2_SendByte(0x04);
UART2_SendByte(0x00);
j--;
}
UART2_ReceiveByte();
string5[lcd_addy]=USART2_RX_BUF;
lcd_addy++;
}