完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
nor flash 芯片使用 :S29GL256P 32 MByte 各位大神们好,请教下关于这个 HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize) 函数写入的地址, uint32_t uwAddress 加入基地址后,程序会发生硬件错误, 示例如下: #define NOR_FLASH_BASE_ADDR ((u32)(0x64000000)) #define NOR_SECTOR_SIZE ((u32)(2014*128UL)) // nor flash 的扇区大小,128KByte { /* Return to read mode */ // HAL_NOR_ReturnToReadMode(&hnor2); status = HAL_NOR_Erase_Block(&hnor2, (uint32_t )((NOR_SECTOR_SIZE * 2) ), NOR_FLASH_BASE_ADDR); // 2 扇区号,擦出后,读出的数据全部为 0xffff,说明擦除是正确的 Delay_Ms(500); /* Return the NOR memory status */ if(HAL_NOR_GetStatus(&hnor2, NOR_FLASH_BASE_ADDR, NOR_tiMEOUT_VALUE) != HAL_NOR_STATUS_SUCCESS) { /* Erase Error */ printf("rnHAL_NOR_Erase_Block Error 1 ..." ); } Fill_Buffer(aTxBuffer, BUFFER_SIZE, 0xC20F); // 给aTxBuffer 赋值,数据从 0xc20f 开始 HAL_NOR_ProgramBuffer(&hnor2, (uint32_t )((NOR_SECTOR_SIZE * 2) + NOR_FLASH_BASE_ADDR), aTxBuffer, 64); // 写入地址如果加上基地址,程序会发生硬件错误,如果不加上基地址,不会发生硬件错误 HAL_NOR_ReadBuffer(&hnor2, NOR_FLASH_BASE_ADDR+(NOR_SECTOR_SIZE * 2), (uint16_t *)aRxBuffer, 64); // 读出与写入的数据不一致 } 使用读出nor flash id函数可以正确读出 芯片的 id 号 使用下面的这个函数完全没有问题 HAL_NOR_Program(&hnor2, (uint32_t *)startaddress ++ , pdata); 每写一个数据后,地址加1 |
|
相关推荐
6个回答
|
|
|
没用过。帮顶
|
|
|
|
|
|
先了解下吧。。。
|
|
|
|
|
|
感谢感谢哦
|
|
|
|
|
|
哈哈哈,好
|
|
|
|
|
|
|
|
|
|
|
|
请问是怎么解决的,我也遇到相似的问题
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
浏览过的版块 |
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:14 , Processed in 2.305625 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2709