查看: 3076|回复: 1

LC00系列FLASH库函数问题

[复制链接]

6

主题

25

帖子

210

积分

高级工程师

Rank: 3Rank: 3

积分
210
发表于 2022-8-19 10:23:38 | 显示全部楼层 |阅读模式
先贴一下库函数和注释:
/**
  * @brief  页编程函数,编程地址必须对齐到字边界.
  * @param  FLASHx 外设入口地址
  * @param  PageNum 为需要编程的已经擦除过的扇区号,FM33LC04最大为256,非对齐地址编程将触发fault。
  * @param  *data 待写入页数据
  * @retval 错误状态,可能值:
  *         -FL_FAIL 编程发生错误
  *         -FL_PASS 编程成功
  */
FL_ErrorStatus FL_FLASH_Program_Page(FLASH_Type *FLASHx, uint32_t pageNum, uint32_t *data)


这是官方的库函数,其中注释是不是错了,页操作函数的话,是不是想说的是页号,如果这么算的话,最大页号不应该是512吗,我对比了下下面扇区操作函数的注释:
/**
  * @brief  扇区编程函数,编程地址必须对齐到字边界.
  * @param  FLASHx 外设入口地址
  * @param  sectorNum 为需要编程的已经擦除过的扇区号,最大为128,非对齐地址编程将触发fault。
  * @param  *data  待写入扇区数据
  * @retval 错误状态,可能值:
  *         -FL_FAIL 编程发生错误
  *         -PASS编程成功
  */
FL_ErrorStatus FL_FLASH_Program_Sector(FLASH_Type *FLASHx, uint32_t sectorNum, uint32_t *data)


不知道我想的对不对,然后看函数的过程,
address = pageNum * FL_FLASH_PAGE_SIZE_BYTE;

也是把页号*512转变成地址进行操作的,而且写入的数据也是传入数据的指针,那这样的话写入的位置为什么不直接传入一个地址呢?这样给用户直观体验会不会好一些,
回复

使用道具 举报

155

主题

847

帖子

4701

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4701
发表于 2022-8-22 08:39:57 | 显示全部楼层
众口难调,有的要页,有的要地址。你可以根据自己的喜好,自己改下驱动库。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表