初中生
最后登录1970-1-1
在线时间 小时
注册时间2016-8-2
|
楼主 |
发表于 2016-8-30 15:50:25
|
显示全部楼层
例程中485从机端处理是这样的,只不过发送接收都是1个字节。还是说数据包大的话就要加延时处理,总感觉是哪边时序的问题,可是我也是初始化的时候处于接收使能,等待接收数据帧完成后进行解析,如果为有效指令时,我就使能发送,发送相应的数据帧,然后发送完毕后再使能接收,就这样一直循环处理。不知道是哪里出错了呢?求大神指点。。
- while(1)
- {
- GPIO_ResetBits(mac485REDE_PORT,mac485REDE_PIN); //½øÈë½ÓÊÕģʽ
- while( USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!= SET);//ÂÖѯֱµ½485½ÓÊÕµ½Êý¾Ý
- temp = USART_ReceiveData(USART2);
- printf("\r\n½ÓÊÕµ½µÄÊý¾ÝΪ%d \r\n",temp);
- temp++; //°ÑtempµÄÖµ¼Ó1ºóÔÙ·¢Ë͸øÖ÷»ú
- GPIO_SetBits(mac485REDE_PORT,mac485REDE_PIN); //½øÈë·¢ËÍģʽ
- USART_SendData(USART2, temp); //·¢ËÍÊý¾Ý
- while (USART_GetFlagStatus(USART2,USART_FLAG_TC) !=SET);//ÂÖѯֱµ½·¢ËÍÊý¾ÝÍê±Ï
- printf("\r\n·¢ËÍÊý¾Ý³É¹¦£¡\r\n");
- }
复制代码 |
|