问题是这样的,我在串口1的基础上,配置了串口2,打算串口1,2都用来收发数据,目的是PC用串口1发送一个数据,32通过串口2给模块,模块返回值通过串口1返回给PC;目前就是开两个串口用来测试;为了查看是否模块接收到了,我把串口2连接到另外一台PC,结果收到的数据全是00,而且用另外一台PC,给我这个电脑发送数据时,根本发不过来!!
主函数:
[mw_shl_code=c,true]int main(void)
{
u8 t;
u8 len;
u8 len2;
delay_init(); //???±??????????
NVIC_Configuration(); //?è??NVIC????·?×é2:2??????????????2???ì????????
uart_init(9600); //?®??????????9600
uart2_init(9600);
//LED_Init(); //LED??????????
//KEY_Init(); //????????°??ü??????????????
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//?????????????????????¤??
//printf("\r\n·???????????:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART2, USART_RX_BUF[t]);//?ò?®??1·???????
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//????·????á??
// printf("\r\n·???????\r\n");//????????
}
//printf("\r\n\r\n");//????????
USART_RX_STA=0;
}
if(USART2_RX_STA&0x8000)
{
len2=USART2_RX_STA&0x3fff;//?????????????????????¤??
for(t=0;t<len2;t++)
{
USART_SendData(USART1, USART2_RX_BUF[t]);//?ò?®??1·???????
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//????·????á??
}
USART2_RX_STA=0;
}
}
}
[/mw_shl_code]
下边上传了改过的双串口附件 |