你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H7中FMC

[复制链接]
Xa__ 提问时间:2026-3-17 17:08 / 未解决

在main.c里面的while外面执行测试程序

void Simple_NAND_Test(void)
{
        memset(write_buf, 0x55, sizeof(write_buf));

        NAND_IDTypeDef nand_id={0};
        NAND_AddressTypeDef nand_addr;
        nand_addr.Block = 0;
        nand_addr.Page = 0;
        nand_addr.Plane = 0;
//
        HAL_NAND_Reset(&hnand1);

//
        HAL_NAND_Read_ID(&hnand1,&nand_id);
//  
        HAL_NAND_Erase_Block(&hnand1,&nand_addr);
//
        while(HAL_NAND_GetState(&hnand1) != HAL_NAND_STATE_READY);
//
        HAL_NAND_Write_Page_8b(&hnand1,&nand_addr,write_buf,1);

//      HAL_NAND_Read_Status(&hnand1);
        //NAND_WritePage(20,0,read_test);
//  
//      memset(write_buf, 0, sizeof(write_buf));
//
        HAL_NAND_Read_Page_8b(&hnand1,&nand_addr,read_test,1);
//      NAND_Read_Page_With_ECC(20,5,read_test);

}

执行出的结果全为0XFF

收藏 评论4 发布时间:2026-3-17 17:08

举报

4个回答
摩洛哥的制砖匠人 回答时间:7 天前

加延时函数试试

Xa__ 回答时间:7 天前

摩洛哥的制砖匠人 发表于 2026-3-18 08:48
加延时函数试试

不行,能读出ID,但是将数据写入的时候,

/ Get Data into Buffer / for (index = 0U; index < hnand->Config.PageSize; index++) { buff = (uint16_t *)deviceaddress; buff++; }

能看到寄存器的地址在变,但是后期读的时候就是读出来0XFF

摩洛哥的制砖匠人 回答时间:6 天前

Xa__ 发表于 2026-3-18 16:30
不行,能读出ID,但是将数据写入的时候,</p>
<p>/<em> Get Data into Buffer </em>/

[md]说明读没问题,出在写函数里面,可以减小写入数量,或者增加总线频率

Xa__ 回答时间:5 天前

摩洛哥的制砖匠人 发表于 2026-3-19 08:43
说明读没问题,出在写函数里面,可以减小写入数量,或者增加总线频率
...

写入一页4096个数据都不行,也尝试过往备用区写128个数据,读出来的都是0XFF,时钟总线频率180MHZ,应该不低了吧

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版