完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用STM32746G-EVAL进行NORFlash测试时,发现在禁止异步等待的情况下,调用HAL_NOR_GetStatus的时候,来判断NORFLAHS的忙闲状态,连续读取Nor Flash的状态值,会出现(tmpSR1 NOR_MASK_STATUS_DQ6) == (tmpSR2 NOR_MASK_STATUS_DQ6)的情况,但此时wait信号为底电平状态,说明FLASH还处在忙的状态,说明这种判断逻辑存在错误,查找错误原因,发现,在连续读取两次FLASH状态值时,即: /* Read NOR status register (DQ6 and DQ5) */
tmpSR1 = *(__IO uint16_t *)Address; tmpSR2 = *(__IO uint16_t *)Address; 时,插入了中断,关闭中断不会出现,这种问题,但中断时ST官方例程提供的Systick_Handler函数,此函数我没有修改,不会访问外部FALSH。 通过示波器观察,再推出中断时产生了一个读信号,不清楚是什么原因? 然后我在SK-M32F407开发板上去验证,看ST32F407是否也存在这种现象,经过测试,没有发现这种现象, 请麻烦管理员,反馈一下这个问题,看问题出在何处!!! 谢谢!!!! |
|
相关推荐
1个回答
|
|
在这种情况下,问题可能出在连续读取Nor Flash状态值时,两次读取之间的时间间隔过短,导致第二次读取的状态值与第一次相同。这可能是由于Nor Flash尚未完成其操作,或者STM32的读取速度过快。
为了解决这个问题,你可以尝试以下方法: 1. 在两次读取之间添加一个延时函数,以确保Nor Flash有足够的时间完成其操作。例如,使用HAL_Delay()函数: ```c HAL_Delay(1); // 延时1毫秒 tmpSR1 = *(__IO uint16_t *)Address; ... HAL_Delay(1); // 延时1毫秒 tmpSR2 = *(__IO uint16_t *)Address; ``` 2. 如果问题仍然存在,可以尝试增加延时时间,例如: ```c HAL_Delay(10); // 延时10毫秒 ``` 3. 如果延时仍然无法解决问题,可以考虑修改Nor Flash的时序参数,以确保STM32在读取Nor Flash状态时不会过快。这可能需要查阅Nor Flash的数据手册,以了解其推荐的时序要求。 4. 另外,确保你的Nor Flash模块支持非同步操作。如果Nor Flash模块不支持非同步操作,那么在没有异步等待的情况下,可能会出现状态判断错误的问题。 5. 最后,检查你的硬件连接是否正确,确保STM32和Nor Flash之间的通信没有受到干扰。 通过尝试上述方法,你应该能够找到问题的根源并解决它。如果问题仍然存在,请提供更多的信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1800 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
564浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 03:20 , Processed in 2.367629 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号