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

嵌入式程序设计经验 创建复位函数

在设计嵌入式系统重新时

需要考虑软复位的情况,

软复位时 很多变量都需要重置为初始值,

如果一个个去赋值 很麻烦,

下面是一个简单的办法

主要是对结构体 复位的方法:

#include <stdint.h>

typedef struct {
    uint8_t reg1;
    uint8_t reg2;
    uint8_t reg3;
} StruSimuStat1;

typedef struct {
    uint8_t state1;
    uint8_t state2;
    uint8_t state3;
} StruSimuStat2;

typedef struct {
    uint16_t wqt1;
    uint16_t wqt2;
} StruSimuWQT;

// 默认值
StruSimuStat1 zonereg = {0xEF, 0x30, 0};
StruSimuStat2 powertstate = {0, 0, 0};
StruSimuWQT WQTReg = {0, 0};
uint16_t uTxFrame[14] = {0x01, 0x02, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

// 复位函数
void resetDefaults() {
    zonereg = (StruSimuStat1){0xEF, 0x30, 0};
    powertstate = (StruSimuStat2){0, 0, 0};
    WQTReg = (StruSimuWQT){0, 0};
    uint16_t defaultTxFrame[14] = {0x01, 0x02, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
    
    for (int i = 0; i < 14; i++) {
        uTxFrame[i] = defaultTxFrame[i];
    }
}


http://www.kler.cn/a/320013.html

相关文章:

  • JVM直击重点
  • 虚拟拨号技术(GOIP|VOIP)【基于IP的语音传输转换给不法分子的境外来电披上一层外衣】: Voice over Internet Protocol
  • 如何在Mac上使用Brew更新Cursor应用程序
  • 【C++篇】红黑树的实现
  • Autodl转发端口,在本地机器上运行Autodl服务器中的ipynb文件
  • iOS面试模版
  • 2024必备中英互译利器全知道
  • 每天一道面试题(18):Redis 和 MySQL 如何保证数据一致性
  • 【病毒分析】phobos家族Elbie变种加密器分析报告
  • C语言 | Leetcode C语言题解之第436题寻找右区间
  • 华为HarmonyOS地图服务 5 - 利用UI控件和手势进行地图交互
  • Go语言设计的一些优点及缺陷
  • 语音音频(wav)声纹识别-技术实现-python
  • Debian与Ubuntu:深入解读两大Linux发行版的历史与联系
  • react crash course 2024(5) useState钩子
  • mac终端打开报complete 13 command not found compdef异常处理以及命令补全功能实现
  • 详细分析SpringMvc中HandlerInterceptor拦截器的基本知识(附Demo)
  • java知识:什么是GC?GC调优思路又有哪些
  • C++深入学习string类成员函数(1):默认与迭代
  • 聚观早报 | 小米新车规划曝光;北京汽车官宣更换标志
  • Django后台管理复杂模型
  • 【JVM】类加载机制
  • leetcode-189:轮转数组
  • 阿尔兹海默症患者出行随身助手设计_kaic
  • 【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解
  • 免费制作证件照的小程序源码