STM32CUBUMX配置FLASH(W25Q128)--保姆级教程
发布人:shili8
发布时间:2025-02-25 03:17
阅读次数:0
**STM32CubeMX配置FLASH(W25Q128)- 保姆级教程**
**前言**
在使用STM32系列微控制器时,需要配置FLASH存储器以便于程序的烧写和运行。在本文中,我们将一步步地讲解如何使用STM32CubeMX配置FLASH存储器,特别是W25Q128型号。
**环境准备**
* STM32系列微控制器(本例中使用的是STM32F407VG)
* W25Q128型号的FLASH存储器* STM32CubeMX软件(版本3.8或以上)
**步骤一:创建新项目**
1. 打开STM32CubeMX软件,选择“File”菜单中的“New Project”选项。
2. 在弹出的对话框中,选择微控制器类型为STM32F407VG,并选择W25Q128型号的FLASH存储器。
3. 点击“Next”按钮,继续下一步。
**步骤二:配置FLASH**
1. 在“Flash Memory”选项卡中,可以看到W25Q128型号的FLASH存储器已经被自动检测并配置好了。
2. 可以在这里调整FLASH的分区设置,如分区大小、地址等。
3. 点击“OK”按钮,保存当前配置。
**步骤三:生成代码**
1. 在“Project”选项卡中,可以看到已有的代码文件列表。
2. 点击“Generate Code”按钮,开始生成代码。
3. 等待几秒钟,直到代码生成完成。
**步骤四:查看和修改代码**
1. 在“Project”选项卡中,可以找到生成的代码文件,如main.c、stm32f4xx_hal_flash_ex.c等。
2. 可以在这里查看和修改代码,以适应自己的需求。
**示例代码**
以下是使用STM32CubeMX配置FLASH(W25Q128)的示例代码:
c#include "main.h" void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStructTypeDef; __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); __HAL_RCC_PWR_CLK_DISABLE(); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL.PLLM =8; RCC_OscInitStruct.PLL.PLLN =216; RCC_OscInitStruct.PLL.PLLP =2; RCC_OscInitStruct.PLL.PLLQ =4; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStructTypeDef RCC_ClkInit; RCC_ClkInit.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInit.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInit.AHBSysCLKDiv2 = RCC_SYSCLK_DIV1; RCC_ClkInit.APB1CLKDiv2 = RCC_APB1_DIV1; RCC_ClkInit.APB2CLKDiv2 = RCC_APB2_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInit, FLASH_LATENCY_7) != HAL_OK) { Error_Handler(); } } void MX_Flash_Init(void) { HAL_FLASH_Unlock(); uint32_t Address =0x08000000; uint32_t Size =1024 *1024; HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, (uint32_t)0x12345678); if (status != HAL_OK) { Error_Handler(); } HAL_FLASH_Lock(); }
**总结**
在本文中,我们一步步地讲解了如何使用STM32CubeMX配置FLASH存储器,特别是W25Q128型号。通过这些步骤和示例代码,可以帮助读者更好地理解如何使用STM32系列微控制器的FLASH存储器。