完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我要实现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无任何问题,检查好多遍,看不出什么问题。实在搞不懂,来求教一下 |
|
相关推荐
2个回答
|
|
检查其软件代码,发现其中对Flash上数据的更新操作分为如下几个步骤:
1. 保存Flash页上的数到RAM中; 2. 擦除Flash页; 3. 修改RAM中的数据; 4. 将RAM中的数据写回Flash页上; 对照STM32的数据手册,查找到相关的数据: 1. 字写入时间 40uS ~ 70uS; 2. 页擦除时间40mS; 检查软件代码,找到对USART的设置: 1. 波特率115200BPS; 2. 帧格式为1 个起始位,8个数据位,2个停止位; 检查软件代码,发现其对USART的接收数据采用中断的方式进行读取 |
|
|
|
可能引发了系统异常,最好用仿真器跟踪定位问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2255 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2071 浏览 3 评论
4687 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2215 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2757 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 00:30 , Processed in 0.739972 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号