硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1078|回复: 3
收起左侧

[STM32H7] STM32H7 为什么要32字节的整数倍才能写?

[复制链接]

6

主题

68

回帖

86

积分

初级会员

积分
86
发表于 2024-5-22 19:36:31 | 显示全部楼层 |阅读模式
代码如下:

[C] 纯文本查看 复制代码
/*******************************************************************************************
  * @brief  This function writes a data buffer in flash (data are 32-bit aligned).
  * @note   Buff size 必须4字节对齐
  * @param  FlashAddress: start address for writing data buffer
  * @param  Data: pointer on data buffer
  * @param  DataLength: length of data buffer (unit is 32-bit word)   
  *****************************************************************************************/
Func_Status BSP_FLASH_Write(uint32_t FlashAddress,  void *pBuffer ,  uint32_t WordLength)
{
	Func_Status ret = Ret_OK;
	if((FlashAddress < APP_START_ADDR) || (FlashAddress > FLASH_END_ADDR))
	{
		ret = Ret_PARAM_ERR;
		return ret;
	}

	HAL_FLASH_Unlock();

	for (int i = 0; i < WordLength; i+=8)
	{
		if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_FLASHWORD, FlashAddress, ((uint32_t)(pBuffer+i))) == HAL_OK)
		{
			FlashAddress += 32;
		}
		else
		{
			ret = Ret_ERROR;
		}
	}
	HAL_FLASH_Lock();
	return ret;
}

回复

使用道具 举报

6

主题

68

回帖

86

积分

初级会员

积分
86
 楼主| 发表于 2024-5-22 19:37:12 | 显示全部楼层
这是硬汉哥的历程里的代码,看了几遍,没看懂~
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-5-23 08:38:33 | 显示全部楼层
这个是数据手册里面的硬性要求,操作单位256bit
回复

使用道具 举报

6

主题

68

回帖

86

积分

初级会员

积分
86
 楼主| 发表于 2024-5-23 09:37:00 | 显示全部楼层
确实,手册看少了
微信图片_20240523093622.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 00:16 , Processed in 0.038891 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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