sigerio 发表于 2022-8-19 10:23:38

LC00系列FLASH库函数问题

先贴一下库函数和注释:
/**
* @brief页编程函数,编程地址必须对齐到字边界.
* @paramFLASHx 外设入口地址
* @paramPageNum 为需要编程的已经擦除过的扇区号,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扇区编程函数,编程地址必须对齐到字边界.
* @paramFLASHx 外设入口地址
* @paramsectorNum 为需要编程的已经擦除过的扇区号,最大为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转变成地址进行操作的,而且写入的数据也是传入数据的指针,那这样的话写入的位置为什么不直接传入一个地址呢?这样给用户直观体验会不会好一些,

顾博文 发表于 2022-8-22 08:39:57

众口难调,有的要页,有的要地址。你可以根据自己的喜好,自己改下驱动库。
页: [1]
查看完整版本: LC00系列FLASH库函数问题