完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
从我的新IDW01M1模块开始,我遇到了麻烦。 我在NUCLEO-L053R8板上使用它,但WiFi CubeExpansion软件包提供的应用程序都不适用于我的硬件。 例如,我将'WiFi_VCOM'应用程序加载到主板。应用程序启动,但它无法在启动时设置与WiFi模块的连接(消息'波特率自动检测错误...'在termnial上)。 再次,使用'Client_socket'应用程序:它启动,请求标识符,并冻结WiFi模块初始化。 似乎模块没有任何通信。 我尝试在两块板上重置,并在WiFi模块上重置出厂设置(在启动时将GPIO0置为高电平),但没有成功。 跳线放在JP3和JP4上,JP1 / JP2没有跳线 LED1亮,LED2,LED3,LED4关闭。 我是否错过了一些明显的东西,或者我的硬件坏了??? #x-cube-wifi #spwf01 以上来自于谷歌翻译 以下为原文 Hi, I get troubles to start with my new IDW01M1 module. I use it with the NUCLEO-L053R8 board, but none of applications provided with the WiFi CubeExpansion package works with my hardware. For example, I load the 'WiFi_VCOM' application to the main board. The application launches, but it cannot set the connection with WiFi module at start (message 'Error in baud-rate auto-detection...' on termnial). Again, with the 'Client_socket' application: it starts, ask for identifiers, and freeze at WiFi module initialization. It seems that there are no communications at all with the module. I tried Resets on both boards, and Factory setting reset on WiFi module (set GPIO0 high at start), without success. Jumpers are placed on JP3 and JP4, no jumpers on JP1/JP2 LED1 is on, LED2, LED3, LED4 are off. Does I missed something obvious, or my hardware is broken ??? #x-cube-wifi #spwf01 |
|
相关推荐
2个回答
|
|
嗨,
我做了进一步的调查,看来我的示例应用程序在wifi模块初始化时陷入了无限循环: 在wifi_module.c中: while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted!= WIFI_TRUE) { __NOP(); //没事做 我找到了这些线程 https://community.st.com/0D50X00009XkgFFSAZ 和https://community.st.com/thread/40308-problem-with-the-stm32cubeexpansion-wifi-demo-with-the-x-cube-wifi1?commentID=155925&sharpcomment 描述同样的问题。所以,我看了wifi模块重置后的ring_buffer内容,我得到了一些缺少字符的WIND字符串: 即: r n + WND:1:peron ...... 在我提到的第二个帖子中,它说缺少字符意味着'关于uart管理的问题'( 见Gerardo Gallucci发表于2017年5月2日上午10:20) 但目前还不清楚如何解决这个问题。我试图切换Timer和Uart IRQ优先级但它没有效果。 你能帮我解决一下吗? 问候 西尔万巴塞特 PS:我的第一个端口包含一个错误:我的模块上的LED 4(橙色)亮起 注意:原始帖子包含大量线程对话,只能迁移到第9级 以上来自于谷歌翻译 以下为原文 Hi, I did further investigations and it appears that my example applications stucks in infinite loop at wifi module initialization : In wifi_module.c: while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted != WIFI_TRUE) { __NOP(); //nothing to do }I found these threads https://community.st.com/0D50X00009XkgFFSAZ and https://community.st.com/thread/40308-problem-with-the-stm32cubeexpansion-wifi-demo-with-the-x-cube-wifi1?commentID=155925&sharpcomment describing the same problem.So, I looked at ring_buffer content after wifi module reset, and I got WIND strings with some missing character : ie: rn+WND:1:peron ... In the second thread I mention, it said that missing characters means 'issue on uart management' ( see Gerardo Gallucci post on May 2, 2017 10:20 AM) But it remains unclear how to fix that problem. I tried to switch Timer and Uart IRQ priority but it has no effect. Can you help me to resolve this. Regards Sylvain Basset PS: my first port contains a mistake : LED 4 (orange) in ON on my module Note: the original post contained a large number of threaded conversations and was only able to be migrated to the 9th level |
|
|
|
我发现问题来自sysctick和UART中断之间的副作用。
Systick中断调用Process_WiFi()函数(wifi_module.c)。在开始时,在pop_buffer_queue()调用期间禁用中断(wifi_module.c,第1093行)。因此在此期间禁用UART接收。 与UART IRQ频率相比,这个关键部分似乎持续时间过长。我发现用于初始化弹出缓冲区的memset()操作花费了太多时间。 所以,我愚蠢地减少了缓冲区初始化的大小(ring_buffer.c,第188行): memset(pop_buffer,0x00,); - > to:memset(pop_buffer,0x00,); 它的工作原理!我现在能够连接到我的AP并打开套接字。 请注意,这是一个肮脏的解决方法。我刚刚测试了与AP的连接。我不知道启用“数据块”时会发生什么。 我看到这个论坛不是很活跃,但我希望这会有助于谷歌的人。 以上来自于谷歌翻译 以下为原文 I found that the problem comes from side effect between sysctick and UART interrupt. The Systick interrupt calls Process_WiFi() function (wifi_module.c). At begining, interruptions are disabled during pop_buffer_queue() call (wifi_module.c, line 1093). So UART reception is disabled during this time. It seems that this critical section last too long compared to UART IRQ frequency. I found that memset() operation, used to initialize the poping buffer, takes too much time. So, I silly reduced the size of buffer initialization (ring_buffer.c, line 188) : memset(pop_buffer, 0x00 , ); --> to : memset(pop_buffer, 0x00 , ); And it works !!! I'm now able to connect to my AP and open socket. Just note that this is a dirty workaround. I just tested a connection to AP . I dont know what happens when 'data chunk' is enabled. I see this forum is not very active but i hope this will help someone who google it. |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2741 浏览 1 评论
3244 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1813 浏览 1 评论
3653 浏览 6 评论
6044 浏览 21 评论
1342浏览 4评论
203浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
356浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
446浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
275浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 19:36 , Processed in 1.136948 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号