在使用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是否也存在这种现象,经过测试,没有发现这种现象, 请麻烦管理员,反馈一下这个问题,看问题出在何处!!! 谢谢!!!! |
不懂帮顶, |
自己顶一下,查出真相 |
还是没有人帮忙解答 |