标题:
stm32单片机+esp8266 如何同时控制和发送数据?
[打印本页]
作者:
10661700
时间:
2019-8-25 16:09
标题:
stm32单片机+esp8266 如何同时控制和发送数据?
如题,while ( 1 )
{
//这是控制命令
if(USART2_RX_STA&0x8000)
{
len=USART2_RX_STA&0x3fff;//得到此次接收到的数据长度
//收到电脑发来的请求控制单片机
if(USART2_RX_BUF[len-1]==0x30){
} else if(USART2_RX_BUF[len-1]==0x31){
LED2_ON;
}
//把串口三接受到的数据传给串口一
/*
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART2_RX_BUF[t]); //向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
*/
USART2_RX_STA=0;
}
//这是数据上传指令
rtemp=(int)DS18B20_Get_Temp()-255;
sprintf(str,"%d\r\n",rtemp);
ESP8266_SendString ( DISABLE, str, 10, Multiple_ID_0 );
delay_ms(1000);
}
请问为什么两者不能同时工作,求解!
作者:
10661700
时间:
2019-8-25 16:14
单独工作可以,但是两段代码放一起,只能数据上传,没办法控制,求救!
作者:
nnhong_qi
时间:
2019-8-25 16:48
不是USART1吗,又变USAR2
作者:
suncat0504
时间:
2019-8-25 21:55
同时工作,对于单核处理器是不可能的。只能考虑分时,或者中断系统(通过优先级方式控制)。如果数据传递是批量的话,可以考虑dma方式来处理,当数据传递完成后,发出中断信息。这样可以尽可能地避免数据丢失,当然前提是这个处理器提供DMA传递和DMA中断。
作者:
鹏博士PBs
时间:
2019-8-26 10:20
可以采用中断优先级的方式
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1