杰发科技AC7801——使用EEP写版本号和日期

news/2024/10/4 5:12:48/

代码仅作为示例

各位看官自己优化即可

#include <stdlib.h>
#include "ac780x_sweeprom.h"uint32_t g_testReadA[10] = {0};
unsigned char g_version[50] = "V3.1_"__DATE__"_"__TIME__;
unsigned int g_Write[2] = {0};
unsigned int g_test1 = 0;
unsigned int g_test2 = 0;
unsigned int g_test3 = 0;
unsigned int g_test4 = 0;
/*** @brief main function** @param[in] none* @return none*/
int main(void)
{InitDelay();SWEEPROM_Init(512, 31);EFLASH_UnlockCtrl();SWEEPROM_Read(0, (uint16_t *)g_testReadA, 1);if (g_testReadA[0] == 0xffff){g_test1 = g_version[0] & 0x00ff;g_test2 = (g_version[1] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(0, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[2] & 0x00ff;g_test2 = (g_version[3] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(1, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[4] & 0x00ff;g_test2 = (g_version[5] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(2, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[6] & 0x00ff;g_test2 = (g_version[7] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(3, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[8] & 0x00ff;g_test2 = (g_version[9] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(4, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[10] & 0x00ff;g_test2 = (g_version[11] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(5, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[12] & 0x00ff;g_test2 = (g_version[13] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(6, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[14] & 0x00ff;g_test2 = (g_version[15] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(7, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[16] & 0x00ff;g_test2 = (g_version[7] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(8, (uint16_t *)&g_Write[0], 1);g_test1 = g_version[18] & 0x00ff;g_test2 = (g_version[19] << 8) & 0xff00;g_Write[0] = g_test1 + g_test2;SWEEPROM_Write(9, (uint16_t *)&g_Write[0], 1);}while (1){int a = 0;}
}


http://www.ppmy.cn/news/1534253.html

相关文章

C++之多线程

前言 多线程和多进程是并发编程的两个核心概念,它们在现代计算中都非常重要,尤其是在需要处理大量数据、提高程序性能和响应能力的场景中。 多线程的重要性: 资源利用率:多线程可以在单个进程中同时执行多个任务,这可以更有效地利用CPU资源,特别是在多核处理器上。 性…

C++入门(有C语言基础)

string类 string类初始化的方式大概有以下几种&#xff1a; string str1;string str2 "hello str2";string str3("hello str3");string str4(5, B);string str5[3] {"Xiaomi", "BYD", "XPeng"};string str6 str5[2];str…

鸿蒙ArkUI实战开发-主打自研语言及框架

ArkUI 是 HarmonyOS 的声明式 UI 开发框架&#xff0c;而 ArkUI-X 是基于 ArkUI 框架扩展而来的跨平台开发框架。ArkUI-X 支持 HarmonyOS、OpenHarmony、Android 和 iOS 平台&#xff0c;允许开发者使用一套代码构建支持多平台的应用程序。 一、ArkUI-X 的实战开发步骤 在实战开…

【MySQL】查询原理 —— B+树查询数据全过程

使用B树作为索引结构的原因&#xff1a; 一种自平衡树&#xff1a; B树在插入和删除的时候节点会进行分裂和合并操作&#xff0c;以保持树的平衡&#xff0c;存在冗余节点&#xff0c;使得删除的时候树结构变化小&#xff0c;更高效。 高度不会增长过快&#xff0c;查询磁盘I…

Python 面向对象编程基础

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;是一种编程范式&#xff0c;它将数据和操作数据的方法&#xff08;函数&#xff09;组合在一起&#xff0c;形成一个“对象”。Python 是一种支持面向对象编程的语言&#xff0c;本文将介绍 Py…

Stable Diffusion绘画 | 来训练属于自己的模型:LoRA模型验收

我们每次训练出来的模型&#xff0c;一般都会生成 20-30 个&#xff0c;至于哪个模型符合要求&#xff0c;较为理想呢&#xff1f; 接下来需要对每个 LoRA模型 进行逐一对比测试。 为了测试模型的泛化性&#xff0c;可选择使用一些较为特殊的提示词&#xff0c;看看各个模型对…

Oracle架构之物理存储中各种文件详解

文章目录 1 物理存储1.1 简介1.2 数据文件&#xff08;data files&#xff09;1.2.1 定义1.2.2 分类1.2.2.1 系统数据文件1.2.2.2 撤销数据文件1.2.2.3 用户数据文件1.2.2.4 临时数据文件 1.3 控制文件&#xff08;Control files&#xff09;1.3.1 定义1.3.2 查看控制文件1.3.3…

华为Nova9开启开发人员选项

默认状态下&#xff0c;华为Nova9的开发人员选项是隐藏的&#xff0c;如下图&#xff1a; 要开启开发人员选项&#xff0c;在“设置→关于手机”中找到“HarmonyOS版本”或者“软件版本”&#xff0c;在版本号上连续点击&#xff0c;每次点击“HarmonyOS版本”和“软件版本”会…