完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
同时使用USART1,USART2,USART3遇到的问题!!!!
简单介绍一下,最近我利用战舰板做一个试验,利用ESP8266接收数据,然后利用GSM的GPRS数据功能,把接收到的数据发送到服务器端; 我是直接利用ESP和GSM的寄存器板例程改的,单独试验两个例程时,工作都很正常;之后我把ESP的例程精简化,去掉了LCD,MALLOC,FATFS等,只留了启动WIFI—STA 服务器端模式的必要代码,测试了一下也是可行的。最后我把精简化后的ESP代码,移植到GSM的例程中,用的是《扩展实验5 ATK-SIM900A GSM模块测试实验 》,结果问题来了。。。。 ESP的通信串口3一直不能正常发送,所以ESP-WIFI 一直不能正常使用。因为整个试验中3个串口都使用到了,所以是不是使用3个串口的时候,有什么要注意的地方? 下面是我精简过的ATK-ESP WIFI-STA服务器端的代码。 [AppleScript] 纯文本查看 复制代码 #include "sys.h"#include "delay.h"#include "usart.h" #include "led.h" #include "key.h" #include "usart3.h"#include "common.h"unsigned char KQFU[19]="AT+CIPSERVER=1,8086";unsigned char test[9]="atk_sever";int main(void){u8 ipbuf[16]; //IP»o′æu8 i=5,j=0;u16 t=999;//¼óËùμúò»′λñè¡á′½ó×′ì¬u16 rlen=0;u8 constate=0;//ᬽó×′ì¬u8 key; STM32_Clock_Init(9);//Ïμí3ê±ÖóéèÖÃdelay_init(72);//Ñóê±3õê¼»ˉuart_init(72,115200); //′®¿ú13õê¼»ˉ usart3_init(36,115200); //′®¿ú33õê¼»ˉLED_Init(); //LED3õê¼»ˉ KEY_Init();//°′¼ü3õê¼»ˉ while(atk_8266_send_cmd("AT","OK",20))//¼ì2éWIFIÄ£¿éêÇ·ñÔúÏß{atk_8266_quit_trans();//íË3öí¸′«atk_8266_send_cmd("AT+CIPMODE=0","OK",200); //1رÕí¸′«Ä£ê½delay_ms(800);} while(atk_8266_send_cmd("ATE0","OK",20));//1رջØÏÔdelay_ms(10); atk_8266_at_response(1);//¼ì2éATK-ESP8266Ä£¿é·¢Ëí1yà′μÄêy¾Y,¼°ê±éÏ′«¸øμçÄÔwhile(i--){delay_ms(500);printf("test1rn");}//atk_8266_send_cmd("AT+CWMODE=1","OK",50);//éèÖÃWIFI STAÄ£ê½printf("STA j=%drn",j);//atk_8266_send_cmd("AT+RST","OK",20);//DHCP·tÎñÆ÷1رÕ(½öAPÄ£ê½óDD§) printf("RST j=%drn",j);//delay_ms(1000); //Ñóê±3Sμè′yÖØÆô3é1|delay_ms(1000);delay_ms(1000);//delay_ms(1000);////éèÖÃᬽóμ½μÄWIFIíøÂçÃû3Æ/¼óÃü·½ê½/ÃüÂë,Õa¼¸¸ö2ÎêyDèòa¸ù¾YÄú×Ô¼oμÄ·óéÆ÷éèÖýøDDDT¸Ä!! while(atk_8266_send_cmd("AT+CWJAP="715","713meiyoumimama"","WIFI GOT IP",300));//ᬽóÄ¿±ê·óéÆ÷,2¢Çò»ñμÃIPprintf("AT+CWJAP=715,713meiyoumimamarn");delay_ms(1000);//delay_ms(1000);//j=atk_8266_send_cmd("AT+CIPMUX=1","OK",20); //0£oμ¥ᬽó£¬1£o¶àᬽóprintf("AT+CIPMUX j=%d rn",j);//¿aÆôServerÄ£ê½(0£¬1رÕ£»1£¬′ò¿a)£¬¶Ë¿úoÅÎaportnumdelay_ms(1000);j=atk_8266_send_cmd("AT+CIPSERVER=1,8086","OK",100); printf("AT+CIPSERVER j=%d rn",j);// atk_8266_get_wanip(ipbuf); printf(ipbuf);printf("rn");USART3_RX_STA=0;while(1){key=KEY_Scan(0);if(key==WKUP_PRES)//WK_UP íË3ö2aêÔ { atk_8266_quit_trans();//íË3öí¸′«atk_8266_send_cmd("AT+CIPMODE=0","OK",20); //1رÕí¸′«Ä£ê½//break; }else if(key==KEY0_PRES)//KEY0 ·¢Ëíêy¾Y { //TCP Serveratk_8266_send_cmd("AT+CIPSEND=0,25","OK",200); //·¢ËíÖ¸¶¨3¤¶èμÄêy¾Ydelay_ms(200);atk_8266_send_data(test,"OK",100); //·¢ËíÖ¸¶¨3¤¶èμÄêy¾Y}t++;delay_ms(10);if(USART3_RX_STA&0X8000)//½óêÕμ½ò»′Îêy¾YáË{ rlen=USART3_RX_STA&0X7FFF;//μÃμ½±¾′νóêÕμ½μÄêy¾Y3¤¶èUSART3_RX_BUF[rlen]=0;//ìí¼ó½áêø·û printf("%s",USART3_RX_BUF);//·¢Ëíμ½′®¿ú USART3_RX_STA=0;} if(t==1000)//á¬Dø10ÃëÖóûóDêÕμ½èÎoÎêy¾Y,¼ì2éᬽóêÇ2»êÇ»1′æÔú.{constate=atk_8266_consta_check();//μÃμ½á¬½ó×′ì¬if(constate=='+')printf("ᬽó3é1|rn"); //ᬽó×′ì¬else printf("ᬽó꧰ürn"); t=0;}if((t%20)==0)LED0=!LED0;atk_8266_at_response(1);}} |
|
相关推荐
4个回答
|
|
找到问题了,触摸屏初始化过程中,用到了的I2C,共用了PB10、PB11,因而产生了冲突!将串口3端口部分重映射到PC10、PC11时即可。要注意的是,如果SD卡使用的是SDIO模式,PC10、PC11就不能用了,改用完全重映射,使用端口PD9,PD10。
~~~~~~ 最后再分享一点ESP-GSM融合的经验,建议串口中断优先级的设置次序为串口3(ESP接收)>串口2(GSM)>串口1。 |
|
|
|
下面是我整理过的ESP-GSM主程序。我用硬件仿真过,发现串口3不能正常发送数据,即这个函数u3_printf("%srn",cmd)。最后程序在while(atk_8266_send_cmd("AT","OK",200))测试ESP硬件是否连接的这个地方就卡住了。
原子哥,能不能帮看一下,给点意见,在此拜谢~ |
|
|
|
#include "sys.h"
#include "usart.h" #include "delay.h" #include "led.h" #include "key.h" #include "exti.h" #include "wdg.h" #include "timer.h" #include "lcd.h" #include "usmart.h" #include "rtc.h" #include "wkup.h" #include "dma.h" #include "24cxx.h" #include "flash.h" #include "touch.h" #include "malloc.h" #include "string.h" #include "mmc_sd.h" #include "ff.h" #include "exfuns.h" #include "fontupd.h" #include "text.h" #include "usart2.h" #include "usart3.h" #include "common.h" #include "sim900a.h" int main(void) { u8 key,fontok=0,i=5; Stm32_Clock_Init(9); //Ïμí3ê±ÖóéèÖà delay_init(72); //Ñóê±3õê¼»ˉ uart_init(72,115200); //′®¿ú13õê¼»ˉ usart3_init(36,115200); //′®¿ú33õê¼»ˉ LCD_Init(); //3õê¼»ˉòo¾§ LED_Init(); //LED3õê¼»ˉ KEY_Init(); //°′¼ü3õê¼»ˉ usmart_dev.init(72); //usmart3õê¼»ˉ USART2_Init(36,115200); //3õê¼»ˉ′®¿ú2 TP_Init(); //3õê¼»ˉ′¥ÃtÆá mem_init(SRAMIN); //3õê¼»ˉÄú2¿Äú′æ3Ø exfuns_init(); //ÎafatfsÏà1رäá¿éêÇëÄú′æ f_mount(0,fs[0]); //1òÔØSD¿¨ key=KEY_Scan(0); if(key==KEY_RIGHT) //Ç¿ÖÆD£×¼ { LCD_Clear(WHITE); //ÇåÆá TP_Adjust(); //ÆáÄ»D£×¼ TP_Save_Adjdata(); LCD_Clear(WHITE); //ÇåÆá } fontok=font_init(); //¼ì2é×Ö¿aêÇ·ñOK if(fontok||key==KEY_DOWN)//Dèòa¸üDÂ×Ö¿a { LCD_Clear(WHITE); //ÇåÆá POINT_COLOR=RED; //éèÖÃ×ÖìåÎaoìé« LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32"); while(SD_Initialize()) //¼ì2aSD¿¨ { LCD_ShowString(60,70,200,16,16,"SD Card Failed!"); delay_ms(200); LCD_Fill(60,70,200+60,70+16,WHITE); delay_ms(200); } LCD_ShowString(60,70,200,16,16,"SD Card OK"); LCD_ShowString(60,90,200,16,16,"Font Updating..."); key=update_font(20,110,16,0);//′óSD¿¨¸üD while(key)//¸üDÂ꧰ü { LCD_ShowString(60,110,200,16,16,"Font Update Failed!"); delay_ms(200); LCD_Fill(20,110,200+20,110+16,WHITE); delay_ms(200); } LCD_ShowString(60,110,200,16,16,"Font Update Success!"); delay_ms(1500); LCD_Clear(WHITE);//ÇåÆá } ///////////////// ESP 2aêÔ ////////////////////// LCD_ShowString(60,90,200,16,16,"WIFI Updating..."); while(atk_8266_send_cmd("AT","OK",200))//¼ì2éWIFIÄ£¿éêÇ·ñÔúÏß { atk_8266_quit_trans();//íË3öí¸′« printf("wifirn"); atk_8266_send_cmd("AT+CIPMODE=0","OK",200); //1رÕí¸′«Ä£ê½ delay_ms(800); } while(atk_8266_send_cmd("ATE0","OK",200));//1رջØÏÔ delay_ms(10); atk_8266_at_response(1);//¼ì2éATK-ESP8266Ä£¿é·¢Ëí1yà′μÄêy¾Y,¼°ê±éÏ′«¸øμçÄÔ while(i--) {delay_ms(500); printf("test1rn"); } ///////////////////////// //////////////////////////////////// sim900a_test(); } |
|
|
|
监控下串口3的数据,看看正常不.
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2361 浏览 5 评论
3208 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2787 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
662浏览 1评论
900浏览 0评论
1022浏览 0评论
666浏览 0评论
496浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 08:01 , Processed in 1.023674 second(s), Total 52, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号