在Keil5中进行编译,此时应该一些错误。下载到开发板,串口调试助手输出如下信息
| /
- RT - Thread Opera
ting System
/ | 4.0.4 build Jul 2 2021
2006 - 2021 Copyright by rt-thread team
(t != RT_NULL) assertion faiLED at function:sys_thread_new, line number:653
经过自己检查代码,发现这时RW007出现断言失败。这时由于RAM内存不够,导致造成的,因为使用的是USART,所以不用外扩SRAM,只需优化减小内存(ENV修改LWIP协议栈 PBUF的值)或者在board.h文件中 将STM32_SRAM_SIZE 修改为512
#define STM32_SRAM_SIZE 512
#define STM32_SRAM_END (0x68000000 + STM32_SRAM_SIZE * 1024),修改之后断言成功,再次打开野火串口调试助手,打印出以下信息:
hard fault on thread: main
thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
etx 12 ready 0x00000044 0x00000400 06% 0x00000010 000
erx 12 ready 0x00000044 0x00000400 06% 0x00000010 000
wlan 15 ready 0x00000044 0x00000800 03% 0x0000000a 000
tidle0 31 ready 0x00000040 0x00000100 25% 0x00000020 000
main 10 running 0x00000040 0x00000800 14% 0x00000012 000
bus fault:
SCB_CFSR_BFSR:0x04 IMPRECISERR
经过加断点调试,发现代码一直卡在rt_int32_t rt_vsnprintf()函数中,通过调用rt_memheap_init()分配权交给了RT-thread。
2)分配权交给之后再进行读写测试(直接操作地址),读写测试就OK了。
XSHELL使用:
1.新建一个会话,协议选择serial
file:///C:Usersw'g'yDocumentsTencent Files1607699179ImageC2CLXT57AJC7VK(O38{_M(ZZ}R.JPG
2.类别中选择serial,选择合适的串口配置,然后点击连接后复位板子再复位开发板即可打印出调试成功的信息。
file:///C:Usersw'g'yDocumentsTencent Files1607699179ImageC2CXI_B9O7S{}0C1)%VN7I6RDW.JPG
| /
- RT - Thread Operating System
/ | 4.0.4 build Jul 2 2021
2006 - 2021 Copyright by rt-thread team
[I[img]file:///C:Usersw'g'yAppDataRoamingTencentQQTempSys{)_G62``_[8)(8ND1X0_M7L.gif[/img]t.skt] socket Abstraction Layer initialize success.
[I/at.clnt] AT client(v1.3.0) on device uart6 initialize success.
本程序实现了RW007模块与STM32主机的通信,并且可以通过USART1默认串口打印出调试信息,若是输出msh->wifi scan 则可以扫描并实现与WiFi的连接,至于WiFi连接的配置,前面已经配置完毕,不再详细讲解。