[STM32L4] 奇怪,uart4与内部flash操作怎么会冲突

[复制链接]
 楼主| 上课你看你看 发表于 2022-5-16 11:09 | 显示全部楼层 |阅读模式
本帖最后由 上课你看你看 于 2022-5-16 11:15 编辑

大家好:
       我要实现wifi远程升级功能,因此会用串口控制wifi模块,并且会执行内部flash的擦写。整个工程都是仿照IAP的示例写的,网上很多,就不多说了。第一次测试的时候wifi使用的USART2,无任何问题。等真正制版的时候换成了UART4接口,就出问题了。
     首先UART4本身是没问题的,串口和wifi模块都验证过了,但执行原来的远程升级程序是,先初始化UART4,再执行flash操作,执行到IAP_Init()->IAP_FlashErase()->HAL_FLASH_Unlock()函数就会出现异常,程序跳转到.s文件的这里,死掉

                B       .

                ENDP

                ALIGN
先执行flash操作,再执行UART4,不知道在哪里跳转的,最后还是会死到上边说的那里。这还仅仅是初始化,没有真正运行升级过程呢。换回UASRT2无任何问题,检查好多遍,看不出什么问题。实在搞不懂,来求教一下,。
呐咯密密 发表于 2022-5-16 11:20 | 显示全部楼层
在执行FLASH操作时会占用总线,串口的相应会被打断,在操作FLASH时最好不要去操作其他功能
diweo 发表于 2022-5-17 10:36 | 显示全部楼层
使能了中断但却没找到对应的中断函数,就会调用.s文件里的默认中断函数。而默认中断函数,嘿嘿。。。
香水城 发表于 2022-5-25 17:46 | 显示全部楼层
本帖最后由 香水城 于 2022-11-2 15:08 编辑

是有点怪!看看UART4硬件上有无特别不同于UART2的地方,尤其可能对电源导致影响的。

关注 下 flash写操作对中断响应这方面的影响。 这些要查看代码。
B1lanche 发表于 2022-6-7 14:17 | 显示全部楼层
那你串口4和其他外设有硬件的电气连接么?
Betty996 发表于 2022-6-7 14:35 | 显示全部楼层
我觉得应该不会有这种冲突吧
alxd 发表于 2022-6-7 15:12 | 显示全部楼层
我觉得不是这样,可能是你操作flash时间过长,串口中断打断之后,往flash里写不进去数据导致死机
Carmen7 发表于 2022-6-7 15:35 | 显示全部楼层
你可以试试串口4接收数据之后存在某个地方,不直接写在flash里呢?
Charlotte夏 发表于 2022-6-7 16:07 | 显示全部楼层
这个操作flash会很慢的,你要等操作完事儿才能去接收数据吧
Allison8859 发表于 2022-6-9 08:18 | 显示全部楼层
你可以往外置的flash存储里写,这样是不是能好一些
Emily999 发表于 2022-6-9 08:34 | 显示全部楼层
换成串口2就好使了?
Alina艾 发表于 2022-6-9 09:10 | 显示全部楼层
那你看看优先级这块呢?
Belle1257 发表于 2022-6-9 10:25 | 显示全部楼层
估计还是程序的事儿,那你用串口2做呗,串口4可能还需要其他配置吧
Annie556 发表于 2022-6-9 11:24 | 显示全部楼层
正常串口2和串口4 都是随便用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

5

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部