stm32蓝色的灯不亮f1战舰v3 程序烧入为什么显示屏不亮

查看: 358|回复: 2
新战舰V3为什么没有像收音机一样的天线??
主题帖子精华
新手上路, 积分 30, 距离下一级还需 20 积分
在线时间2 小时
新战舰V3为什么没有像收音机一样的天线???
收音机被去掉了,换成了网络,网络比收音机使用的多
主题帖子精华
在线时间916 小时
收音机被去掉了,换成了网络,网络比收音机使用的多
开往春天的手扶拖拉机
主题帖子精华
新手上路, 积分 30, 距离下一级还需 20 积分
在线时间2 小时
谢谢啦,你的回答完美的解决了我的问题!!
Powered by查看: 284|回复: 3
战舰V3里的esp8266历程,有点问题
主题帖子精华
初级会员, 积分 198, 距离下一级还需 2 积分
在线时间27 小时
历程里有一个atk_8266_consta_check函数是在检查是否有设备与esp8266相连。函数如下:
//获取ATK-ESP8266模块的连接状态
//返回值:0,未连接;1,连接成功.
u8 atk_8266_consta_check(void)
& & & & u8 *p;
& & & & u8
& & & & if(atk_8266_quit_trans())return 0;& & & & & & & & & & & & //退出透传
& & & & atk_8266_send_cmd(&AT+CIPSTATUS&,&:&,50);& & & & //发送AT+CIPSTATUS指令,查询连接状态
& & & & p=atk_8266_check_cmd(&+CIPSTATUS:&);
& & & & res=*p;& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //得到连接状态& & & &
我写了一句话想让 程序检测到连接成功时继续执行下面的语句。所以我编了这样一段话:
& & & & while(!atk_8266_consta_check()){delay_ms(800);}
然后我发现,设备没有连接时,程序根本没有停留在这里。
于是我就怀疑程序 p=atk_8266_check_cmd(&+CIPSTATUS:&);&&这句有问题。!!!!!
u8* atk_8266_check_cmd(u8 *str)
& & & & char *strx=0;
& & & & if(USART3_RX_STA&0X8000)& & & & & & & & //接收到一次数据了
& & & & & & & & USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
& & & & & & & & strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
& & & & return (u8*)
于是我就敲了一段代码到VC++6.0里,想看看返回值。
然后发现函数的传参有问题,VC报错,这个错误看图????
然后敲在KEIL里,然后那句话是WARNING,不报错,但是是一样的提示。
我的测试程序如图。
大神帮忙看看呀!!!!
还有为什么keil里提示主函数返回值要是int型????
(249.17 KB, 下载次数: 0)
11:47 上传
(225.62 KB, 下载次数: 0)
11:47 上传
好吧!试了一天,我自己发现了问题。
//获取ATK-ESP8266模块的连接状态
//返回值:0,未连接;1,连接成功.
u8 atk_8266_consta_check(void)
if(atk_8266_quit_trans())return 0;
//退出透传
atk_8266_send_cmd("AT+CIPSTATUS",":",50); //发送AT+CIPSTATUS指令,查询连接状态
p=atk_8266_check_cmd("+CIPSTATUS:");
//得到连接状态
被这个函数的说明误解了 ...
主题帖子精华
初级会员, 积分 198, 距离下一级还需 2 积分
在线时间27 小时
好吧!试了一天,我自己发现了问题。
//获取ATK-ESP8266模块的连接状态
//返回值:0,未连接;1,连接成功.
u8 atk_8266_consta_check(void)
& & & & u8 *p;
& & & & u8
& & & & if(atk_8266_quit_trans())return 0;& & & & & & & & & & & & //退出透传
& & & & atk_8266_send_cmd(&AT+CIPSTATUS&,&:&,50);& & & & //发送AT+CIPSTATUS指令,查询连接状态
& & & & p=atk_8266_check_cmd(&+CIPSTATUS:&);
& & & & res=*p;& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //得到连接状态& & & &
被这个函数的说明误解了,其实返回值是+CIPSTATUS在接收缓冲中的位置
//ATK-ESP8266发送命令后,检测接收到的应答
//str:期待的应答结果
//返回值:0,没有得到期待的应答结果
//& & 其他,期待应答结果的位置(str的位置)
u8* atk_8266_check_cmd(u8 *str)
& & & & char *strx=0;
& & & & if(USART3_RX_STA&0X8000)& & & & & & & & //接收到一次数据了
& & & & & & & & USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
& & & & & & & & strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
& & & & return (u8*)
是内存地址。
所以我用LCD_Show时,显示的都是那个变量的地址。
所以正确的用法是
& & & & constate=atk_8266_consta_check();
& & & & while(constate!='+'){constate=atk_8266_consta_check();delay_ms(800);}
主题帖子精华
初级会员, 积分 198, 距离下一级还需 2 积分
在线时间27 小时
这个功能绝对有问题
我把返回值打印了出来,发现p是248,明明字符串没有匹配,返回值却不是0
u8 atk_8266_consta_check(void)
& & & & u8 *p;
& & & & u8
& & & & u8
& & & & if(atk_8266_quit_trans())return 0;& & & & & & & & & & & & //退出透传
& & & & atk_8266_send_cmd(&AT+CIPSTATUS&,&:&,50);& & & & //发送AT+CIPSTATUS指令,查询连接状态
& & & & p=atk_8266_check_cmd(&+CIPSTATUS:&);
& & & & res=*p;& & & &
& & & &&&POINT_COLOR=RED;
& & & & LCD_ShowString(50,70,200,16,16,&p&);& & & & & & & & & & & & LCD_ShowString(80,70,200,16,16,p);& & & & LCD_ShowNum(100,70,*p,4,16);
& & & & LCD_ShowString(50,90,200,16,16,&res&);& & & & & & & & LCD_ShowNum(80,90,res,4,16);& & & & & & & & & & & &
主题帖子精华
新手上路, 积分 44, 距离下一级还需 6 积分
在线时间14 小时
你好&&方便将这个例程发我学习下吗 谢谢
Powered by查看: 499|回复: 3
我是新手,我用战舰编完跑马灯怎么让跑马灯停下来,还有我的屏幕不亮了怎么回事
主题帖子精华
初级会员, 积分 52, 距离下一级还需 148 积分
在线时间5 小时
用的板子是 stm32F1103
因为例程没有用到lcd,自然不会亮.
主题帖子精华
金钱109213
在线时间746 小时
因为例程没有用到lcd,自然不会亮.
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 174, 距离下一级还需 26 积分
在线时间1 小时
没懂你的什么意思,你程序写的功能就是跑马灯的效果,要停下来是你自己程序决定的。另外,屏幕不亮是因为你的屏幕没有驱动程序啊
主题帖子精华
在线时间508 小时
可以把LED的控制IO&设置为浮空输入
Powered by

我要回帖

更多关于 stm32f1战舰v3 的文章

 

随机推荐