OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6227|回复: 4

wifi模块使用串口1的问题。

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2014-3-28
在线时间
0 小时
发表于 2014-9-23 14:25:05 | 显示全部楼层 |阅读模式
5金钱
将wifi模块改到串口1上,一直是未检测到模块。wifi模块上的RTXD和PA10相连,RRXD和PA9相连,有没有错?
程序是根据原子哥的改的。
[mw_shl_code=c,true]//ATK-RM04模块初始化 void atk_rm04_init(void) { RCC->APB2ENR|=1<<2;     //PA时钟使能    GPIOA->CRL&=0XFFF0FFFF;   GPIOA->CRL|=3<<4*4; //PA4推挽输出  ES_CTRL=1; //PA4输出高 USART1_Init(115200); //初始化串口1 }  //ATK-RM04发送命令后,检测接收到的应答 //str:期待的应答结果 //返回值:0,没有得到期待的应答结果 //    其他,期待应答结果的位置(str的位置) u8* atk_rm04_check_cmd(u8 *str) { char *strx=0; if(USART1_RX_STA&0X8000) //接收到一次数据了 {  USART1_RX_BUF[USART1_RX_STA&0X7FFF]=0;//添加结束符 strx=strstr((const char*)USART1_RX_BUF,(const char*)str); }  return (u8*)strx; } //向ATK-RM04发送命令 //cmd:发送的命令字符串(不需要添加回车了) //ack:期待的应答结果,如果为空,则表示不需要等待应答 //waittime:等待时间(单位:10ms) //返回值:0,发送成功(得到了期待的应答结果) //       1,发送失败 u8 atk_rm04_send_cmd(u8 *cmd,u8 *ack,u16 waittime) { u8 res=0;  USART1_RX_STA=0; u1_printf("%s\r",cmd); //发送命令 if(ack&&waittime) //需要等待应答 { while(--waittime) //等待倒计时 { delay_ms(10); if(USART1_RX_STA&0X8000)//接收到期待的应答结果 { if(atk_rm04_check_cmd(ack))break;//得到有效数据  USART1_RX_STA=0; }  } if(waittime==0)res=1;  } return res; }  //ATK-RM04退出透传模式 //返回值:0,退出成功; //       1,退出失败 u8 atk_rm04_quit_trans(void) { ES_CTRL=0; //拉低ES/RST delay_ms(120); //等待120ms ES_CTRL=1; //ES/RST恢复 return 0; } //获取ATK-RM04模块的连接状态 //返回值:0,未连接;1,连接成功. u8 atk_rm04_consta_check(void) { u8 *p; u8 res; if(atk_rm04_quit_trans())return 0; //退出透传  atk_rm04_send_cmd("at+S2N_Stat=?","?",50); //发送at+S2N_Stat=?指令,查询连接状态 p=atk_rm04_check_cmd("\r\n");  res=*(p+2); //得到连接状态 atk_rm04_send_cmd("at+out_trans=0","ok",50);//发送at+out_trans=0,进入透传模式 return res; } //获取WIFI STA连接状态(检查WIFI STA是否连上路由器) //返回值:0,连接失败;1,连接成功; u8 atk_rm04_get_wifista_state(void) { u8 *p;  atk_rm04_send_cmd("at+wifi_ConState=?","?",20); //获取WIFI STA连接状态 p=atk_rm04_check_cmd("\r\n");  return strstr((const char*)p,"Connected")?1:0; } //IP设置 //title:ip设置标题 //mode:工作模式 //port:端口号 //*ip:ip缓存区(返回IP给上层函数) //返回值:0,确认连接;1,取消连接. u8 atk_rm04_ip_set(u8* mode,u8* port,u8* ip)  { u8 res=0;   u8 key; u8 timex=0;   u8 iplen=0; //IP长度  LCD_Clear(WHITE);   POINT_COLOR=RED;   Show_Str(30,90,200,16,"工作模式:",16,0); //工作模式显示 Show_Str(30,110,200,16,"IP地址:",16,0); //IP地址可以键盘设置 Show_Str(30,130,200,16,"端口:",16,0); //端口号 kbd_fn_tbl[0]="连接"; kbd_fn_tbl[1]="返回";  atk_rm04_load_keyboard(0,180); //显示键盘  POINT_COLOR=BLUE;   Show_Str(30+72,90,200,16,mode,16,0); //显示工作模式   Show_Str(30+40,130,200,16,port,16,0); //显示端口 ip[0]=0; while(1) {  key=atk_rm04_get_keynum(0,180); if(key) {    if(key<12) { if(iplen<15) {  ip[iplen++]=kbd_tbl[key-1][0]; } }else { if(key==13)if(iplen)iplen--; //删除   if(key==14&&iplen)break; //确认连接  if(key==15){res=1;break;} //取消连接 }  ip[iplen]=0;  LCD_Fill(30+56,110,239,110+16,WHITE); Show_Str(30+56,110,200,16,ip,16,0); //显示IP地址 }  timex++; if(timex==20) { timex=0; LED0=!LED0; } delay_ms(10); }  return res; } //ATK-RM04模块测试主函数 void atk_rm04_test(void) { POINT_COLOR=RED; Show_Str_Mid(0,30,"ATK-RM04 WIFI模块测试",16,240);  atk_rm04_quit_trans();//退出透传  while(atk_rm04_send_cmd("at","\r\n",20))//检查WIFI模块是否在线 { Show_Str(40,55,200,16,"未检测到模块!!!",16,0); delay_ms(800); LCD_Fill(40,55,200,55+16,WHITE); Show_Str(40,55,200,16,"尝试连接模块...",16,0); atk_rm04_quit_trans();//退出透传  }    delay_ms(10); atk_rm04_wifista_test();//WIFI STA测? } [/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-24 00:14:54 | 显示全部楼层
楼主得学会分析问题。
没法检测到,你怀疑是哪里问题?
做了什么处理?
得到什么结果?
然后有什么疑惑?
这个时候,才是提问的时候。

就说没法检测到,没法检测到问题多了去了,自己要学会分析下先
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-4-25
在线时间
0 小时
发表于 2015-6-2 10:24:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
回复【2楼】正点原子:
---------------------------------
atk_rm04_send_cmd("at+S2N_Stat=?","?",50);
请问一下为什么要有问号
回复

使用道具 举报

0

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-6-7
在线时间
7 小时
发表于 2015-6-2 10:57:20 | 显示全部楼层
不就是串口转发吗,串口一初始化没问题就行了,模块不确定能正常工作就先连pc调试好,定好波特率什么的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-6-3 23:42:13 | 显示全部楼层
回复【3楼】不死的富翁:
---------------------------------
指令需求啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表