打印
[STM32L4]

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

[复制链接]
1172|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 上课你看你看 于 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写操作对中断响应这方面的影响。 这些要查看代码。

使用特权

评论回复
5
B1lanche| | 2022-6-7 14:17 | 只看该作者
那你串口4和其他外设有硬件的电气连接么?

使用特权

评论回复
6
Betty996| | 2022-6-7 14:35 | 只看该作者
我觉得应该不会有这种冲突吧

使用特权

评论回复
7
alxd| | 2022-6-7 15:12 | 只看该作者
我觉得不是这样,可能是你操作flash时间过长,串口中断打断之后,往flash里写不进去数据导致死机

使用特权

评论回复
8
Carmen7| | 2022-6-7 15:35 | 只看该作者
你可以试试串口4接收数据之后存在某个地方,不直接写在flash里呢?

使用特权

评论回复
9
Charlotte夏| | 2022-6-7 16:07 | 只看该作者
这个操作flash会很慢的,你要等操作完事儿才能去接收数据吧

使用特权

评论回复
10
Allison8859| | 2022-6-9 08:18 | 只看该作者
你可以往外置的flash存储里写,这样是不是能好一些

使用特权

评论回复
11
Emily999| | 2022-6-9 08:34 | 只看该作者
换成串口2就好使了?

使用特权

评论回复
12
Alina艾| | 2022-6-9 09:10 | 只看该作者
那你看看优先级这块呢?

使用特权

评论回复
13
Belle1257| | 2022-6-9 10:25 | 只看该作者
估计还是程序的事儿,那你用串口2做呗,串口4可能还需要其他配置吧

使用特权

评论回复
14
Annie556| | 2022-6-9 11:24 | 只看该作者
正常串口2和串口4 都是随便用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

5

帖子

0

粉丝