当前位置: 首页 > news >正文

给学校建网站那个系统好商旅100网页版

给学校建网站那个系统好,商旅100网页版,网站建设项目工作分解,自助建站整站源码在单片机编程中,读写内部Flash存储器是一种常见的方法来实现断电数据存储。这里以STM32系列单片机为例,展示如何通过HAL库进行简单的内部Flash读写操作。 以下是一个完整的示例代码,展示了如何擦除、写入和读取内部Flash中的数据。请注意&am…

在单片机编程中,读写内部Flash存储器是一种常见的方法来实现断电数据存储。这里以STM32系列单片机为例,展示如何通过HAL库进行简单的内部Flash读写操作。

以下是一个完整的示例代码,展示了如何擦除、写入和读取内部Flash中的数据。请注意,在实际应用中,你需要根据具体的单片机型号调整Flash地址范围和其他配置。

#include "main.h"
#include "stm32f4xx_hal_flash.h"#define DATA_ADDRESS 0x080E0000 // Flash起始地址,需要根据具体芯片型号调整void SystemClock_Config(void);
static void MX_GPIO_Init(void);int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();uint32_t dataToWrite = 0xDEADBEEF;uint32_t readData;// Unlock the Flash to enable the flash control register accessHAL_FLASH_Unlock();// Erase the user Flash areaFLASH_EraseInitTypeDef eraseInitStruct;uint32_t pageError = 0;eraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;eraseInitStruct.PageAddress = DATA_ADDRESS;eraseInitStruct.NbPages = 1; // 根据实际情况调整页数if (HAL_FLASHEx_Erase(&eraseInitStruct, &pageError) != HAL_OK){// Error occurred while page erase.while (1);}// Program the user Flash area word by wordif (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, DATA_ADDRESS, dataToWrite) == HAL_OK){// Check the written valuereadData = *(__IO uint32_t*)DATA_ADDRESS;if (readData != dataToWrite){// Verify errorwhile (1);}}else{// Error occurred while writing data in Flash memory.while (1);}// Lock the Flash to disable the flash control register accessHAL_FLASH_Lock();// Infinite loopwhile (1){}
}/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Configure the main internal regulator output voltage*/__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLM = 8;RCC_OscInitStruct.PLL.PLLN = 336;RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ = 7;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){// Initialization Errorwhile (1);}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK){// Initialization Errorwhile (1);}
}/*** @brief GPIO Initialization Function* @param None* @retval None*/
static void MX_GPIO_Init(void)
{/* GPIO Ports Clock Enable */__HAL_RCC_GPIOH_CLK_ENABLE();
}

说明:

  1. 解锁Flash:在写入或擦除Flash之前,必须先解锁Flash控制寄存器。
  2. 擦除Flash:使用HAL_FLASHEx_Erase函数擦除指定的Flash区域。注意,擦除操作是以页为单位进行的。
  3. 写入Flash:使用HAL_FLASH_Program函数将数据写入Flash。
  4. 锁定Flash:完成操作后,重新锁定Flash以防止意外修改。

请确保在实际项目中正确处理错误情况,并根据具体的应用场景调整代码。

http://www.khdw.cn/news/61700.html

相关文章:

  • 网站第三方统计工具下载天津百度快速优化排名
  • 什么网站专门做二手物品天猫店铺申请条件及费用
  • 会计可以做网站么怎样在百度上免费建网站
  • 网站建设横幅百度软件中心官网
  • 公司做网站推广要注意什么桂林seo排名
  • 广州敏城建设工程有限公司网站营销公司排名
  • 苏州新区城乡建设网站重庆seo网络推广关键词
  • wordpress文章内容加信息seo网站seo
  • 欧米伽官方网站手表价格百度网站推广
  • 网站被k多久恢复百度健康
  • java jsp做网站济宁百度推广电话
  • 重庆网站推广公司临沂seo公司稳健火星
  • 自己做的网站还用维护呢怎么做网站排名
  • 宜昌 网站建设网络营销是以什么为基础
  • 边境网站建设方案网络销售是做什么的
  • 苏州网站建设服务公司app推广员好做吗
  • 网络维护员每天要干哪些事好搜seo软件
  • 午夜做网站seo网站有优化培训吗
  • 网站建设教学视频百度云盘百度电脑网页版
  • dede网站404怎么做网站推广是什么意思
  • 赤坎网站开发公司上首页seo
  • 怎么在中国移动做网站备案最新国内新闻事件今天
  • 做go kegg的在线网站企业网站推广方案设计
  • 网站app制作费用单seo推广灰色词
  • 吉林市做网站哪家好免费创建自己的网站
  • 做设计在哪个网站投递简历云南网络推广服务
  • 那个网站可以做司考真题大数据营销软件
  • 朝阳网站建设是什么网页搜索快捷键
  • 泰安微信网站建设商城网站建设
  • 电子商务网站建设教学总结快点tv下载安装