新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2017-8-4
- 在线时间
- 3 小时
|
请问一下,我想通过使用两个串口与电脑通信,电脑给串口一发送数据,串口一把接受到的数据发送给串口2,然后串口2把数据再发送给电脑,可以实现么,我用的是例程的串口实验修改的,通讯协议一样,while循环是如下代码
if(USART_RX_STA1&0x8000)
{
len=USART_RX_STA1&0x3fff;//得到此次接收到的数据长度
printf("\r\n串口1接收到数据:\r\n");
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF1[t];
while((USART1->SR&0X40)==0);//等待发送结束
printf("%c\r\n",USART_RX_BUF1[t]);
}
printf("\r\n串口1发送完成:\r\n");
printf("\r\n\r\n");//插入换行
USART_RX_STA1=0;
LED1=!LED1;
}
//USART1->CR1|=0<<2;
if(USART_RX_STA2&0x8000)
{
len=USART_RX_STA2&0x3fff;//得到此次接收到的数据长度
printf("\r\n串口2接受数据:\r\n");
for(t=0;t<len;t++)
{
USART6->DR=USART_RX_BUF2[t];
while((USART6->SR&0X40)==0);//等待发送结束
}
printf("\r\n串口2发送完成:\r\n");
printf("\r\n\r\n");//插入换行
USART_RX_STA2=0;
USART1->CR1|=1<<2; //串口接收使能
LED1=!LED1;
现在只是提示串口1接受和发送完成,但是 if(USART_RX_STA2&0x8000)怎么都进不去,怎么解决,求助
}
|
|