打印
[其他ST产品]

HAL_NOR_ProgramBuffer函数写入地址程序会发生硬件错误

[复制链接]
2317|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2023-6-25 11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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("\r\nHAL_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

使用特权

评论回复
沙发
淡漠安然| | 2023-7-19 22:53 | 只看该作者
那就用下面这个好使的就好了啊

使用特权

评论回复
板凳
远山寻你| | 2023-7-20 06:06 | 只看该作者
一般地址要4K对齐的,是吧

使用特权

评论回复
地板
三生万物| | 2023-7-20 08:23 | 只看该作者
不加入基地址,那怎么数据往后写啊

使用特权

评论回复
5
暖了夏天蓝了海| | 2023-7-20 08:35 | 只看该作者
有点意思,估计是函数的BUG

使用特权

评论回复
6
江河千里| | 2023-7-20 10:03 | 只看该作者
读写不一致有可能是程序的时序原因的

使用特权

评论回复
7
冰春彩落下| | 2023-7-20 12:36 | 只看该作者
你这个是不是用指针,不用基地址就好了啊?

使用特权

评论回复
8
光辉梦境| | 2023-7-20 14:07 | 只看该作者
没仔细研究过,不过一般存储好像跟4K有点关系

使用特权

评论回复
9
别乱了阵脚| | 2023-7-20 14:22 | 只看该作者
按理来说不应该写出硬件错误的

使用特权

评论回复
10
夜阑风雨| | 2023-7-20 15:12 | 只看该作者
是直接进入到硬件中断了么

使用特权

评论回复
11
一秒落纱| | 2023-7-20 18:18 | 只看该作者
换一块板子也是这样的问题吗?

使用特权

评论回复
12
SantaBunny| | 2023-10-25 09:19 | 只看该作者
可能是函数的BUG

使用特权

评论回复
13
Pulitzer| | 2023-12-10 07:29 | 只看该作者

如果想要让它正常工作且不会损坏

使用特权

评论回复
14
周半梅| | 2023-12-10 08:32 | 只看该作者

前模块电源灌封时用的最多的是加成型有机灌封硅胶

使用特权

评论回复
15
童雨竹| | 2023-12-10 09:25 | 只看该作者

变压器副边同时对负载供电。

使用特权

评论回复
16
Wordsworth| | 2023-12-10 10:28 | 只看该作者

电阻属于一个普通的元件

使用特权

评论回复
17
Clyde011| | 2023-12-10 11:31 | 只看该作者

并且考虑到TVS相同的尺寸

使用特权

评论回复
18
万图| | 2023-12-10 13:27 | 只看该作者

当异常过压消失,恢复至高阻态

使用特权

评论回复
19
Uriah| | 2023-12-10 14:30 | 只看该作者

微控制器、数字信号控制器和处理器都具有内部的ESD钳位二极管

使用特权

评论回复
20
Uriah| | 2023-12-10 14:30 | 只看该作者

微控制器、数字信号控制器和处理器都具有内部的ESD钳位二极管

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1358

主题

4210

帖子

0

粉丝