2019-12-30 19:23发布
wye11083 发表于 2017-3-12 12:40 你确定硬件是支持的?qspi还要先写status reg 2,再发一条进入指令才行,你看rs2是不是0,0的话芯片没配好 ...
wye11083 发表于 2017-3-12 13:17 你查一下,在没进入QSPI模式时要用标准SPI模式去读写SR2,而且切记:写SR2之后务必等待芯片写入完成!否则 ...
最多设置5个标签!
你好,硬件确定支持的,
芯片使用的 W25Q256A 这个 qspi的芯片,而且管脚也是参照之前的那个板子分配的,
读写程序也是 之前的那套程序
QSPI_StaticTypeDef QSPI_Quad_Enter(void)
{
uint8_t _RegVal = 0;
__IO uint32_t cnt = 0;
QSPI_Read_SR(QSPI_READ_STATUS_REG2_CMD, &_RegVal); //先读出状态寄存器2的原始值
if((_RegVal & 0x02) == 0) //QE位未使能
{
if (QSPI_WriteEnable(&QSPIHandle) != QSPI_OK)
{
return QSPI_ERROR;
}
_RegVal |= 1 << 1; //使能QE位
QSPI_Write_SR(QSPI_WRITE_STATUS_REG2_CMD, _RegVal); //写状态寄存器2
}
_RegVal = 0; // 这个值无意义,只是配合下面的 发送 QSPI 指令 函数而已
if(QSPI_SendCmdData( QSPI_ENTER_QPI_MODE, // 进入QSPI模式
QSPI_INSTRUCTION_1_LINE,
QSPI_ADDRESS_NONE,
QSPI_ADDRESS_8_BITS,
QSPI_DATA_NONE,
0,
0,
0,
&_RegVal,
QSPI_SEND_CMD
) != QSPI_OK )
{
return QSPI_ERROR;
}
return QSPI_OK;
}
你好,终于找到问题所在了啊,
原来这个 stm32f7xx的单片机,里面有个 mpu 的设置,
吧读写 NAND flash 的区域取消就可以了,他奶奶的,折腾了好几天了啊
static void MPU_Set_Protection(uint32_t baseaddr,
uint32_t size,
uint32_t rnum,
uint32_t ap,
u8 sen,
u8 cen,
u8 ben)
{
MPU_Region_InitTypeDef MPU_Initure;
HAL_MPU_Disable(); //配置MPU之前先关闭MPU,配置完成以后在使能MPU
MPU_Initure.Enable = MPU_REGION_ENABLE; //使能该保护区域
MPU_Initure.Number = rnum; //设置保护区域
MPU_Initure.BaseAddress = baseaddr; //设置基址
MPU_Initure.Size = size; //设置保护区域大小
MPU_Initure.SubRegionDisable = 0x00; //禁止子区域
MPU_Initure.TypeExtField = MPU_TEX_LEVEL0; //设置类型扩展域为level0
MPU_Initure.AccessPermission = (uint8_t)ap; //设置访问权限,
MPU_Initure.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE; //允许指令访问(允许读取指令)
MPU_Initure.IsShareable = sen; //是否允许共用
MPU_Initure.IsCacheable = cen; //是否允许cache
MPU_Initure.IsBufferable = ben; //是否允许缓冲
HAL_MPU_ConfigRegion(&MPU_Initure); //配置MPU
HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); //开启MPU
}
// 下面的这个设置取消就 ,从此世界清静了,
MPU_Set_Protection(0x80000000,
MPU_REGION_SIZE_2GB, // 吧这个地方改成 256MByte 就可以了,或者取消不用也行
MPU_REGION_NUMBER3,
MPU_REGION_FULL_ACCESS,
MPU_ACCESS_NOT_SHAREABLE,
MPU_ACCESS_CACHEABLE,
MPU_ACCESS_BUFFERABLE); //保护整个NAND FLASH区域,共2048M字节
一周热门 更多>