中级会员
 
- 积分
- 369
- 金钱
- 369
- 注册时间
- 2013-12-23
- 在线时间
- 32 小时
|
5金钱
最近在研究ESP8266模块,通过STM32开发板的串口1与模块串口相连,开发板串口2与计算机相连,实现通过pc串口助手发送AT指令和简单的网页代码给手机的浏览器,进过改进之后,直接在开发板的代码中来发送AT指令和网页代码,我测试过的波特率有9600、115200~921600,这所有的波特率都可以在手机的浏览器上正常显示网页,但是我发现在9600和115200的波特率下,手机浏览器的页面请求信息能比较完整的显示在PC端的串口上,速率越往上能够显示的东西就越少,到了921600时串口无显示,但是程序进入了接收中断且完成了接收。通过手机串口发送给模块的测试数据也显示为空。我的串口是在原子兄的串口接收程序上修改的。代码如下
void USART1_IRQHandler(void)
{
char Res;
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){
Res = USART_ReceiveData(USART1);
WIFItime = SysTickTime(); //RTC_Get();
if ((USART_RX_STA_WIFI & 0x8000)==0){
if (USART_RX_STA_WIFI & 0x4000){
if (Res != 0x0a) USART_RX_STA_WIFI=0;
else {
USART_RX_STA_WIFI |= 0x8000;
USART1LineEnd = 1; //这个标记用来标志一行接收完成,此时会在main函数中显示该行内容
}
}else{
if (Res == 0x0d){
USART_RX_STA_WIFI |= 0x4000;
}else{
USART_RX_BUF_WIFI[USART_RX_STA_WIFI&0x3FFF] = Res;
USART_RX_STA_WIFI++;
if (USART_RX_STA_WIFI > (USART_REC_LEN-1)) USART_RX_STA_WIFI=0;
}
}
}
}
}
有没有可能是串口速度太快,接收中断来不及接收?可是串口速度不是能到4.5mb吗,我这才900多啊,或者是波特率提高之后串口不稳定了,可是为啥网页的应答数据和页面代码能正常传给手机浏览器呢?请教各位大牛了
|
|