OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5158|回复: 5

STM32存储大量参数时该怎么存

[复制链接]

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2020-6-27
在线时间
23 小时
发表于 2022-6-23 14:11:53 | 显示全部楼层 |阅读模式
5金钱
存储大量参数时该怎么存? 比如要存100个参数应该怎么写?是放在结构体里吗?如果放在结构体里这个结构体又放在哪?

最佳答案

查看完整内容[请看2#楼]

typedef union { u16 all[1024]; struct { //**********************以下为技术指标基本范围如频率、衰减等********** float frequency_min; //串口屏界面使用 float frequency_max; //串口屏界面使用 float frequency; // float att_value_min; // float att_value_max; // float att_value; // Digital controlled attenuator float F ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1230
注册时间
2020-7-14
在线时间
272 小时
发表于 2022-6-23 14:11:54 | 显示全部楼层
typedef union
{
        u16 all[1024];
        struct
        {
//**********************以下为技术指标基本范围如频率、衰减等**********               
                float          frequency_min;                                                        //串口屏界面使用
                float          frequency_max;                                                        //串口屏界面使用
                float          frequency;                                                                        //
                float          att_value_min;                                                        //  
                float          att_value_max;                                                        //
                float          att_value;                                                                        //  Digital controlled attenuator
                float   Fank;
                float   Fanb;
                float          tempk_1;
                float          tempb_1;
                float          tempk_2;
                float          tempb_2;
//**********************以下定义用于功能需求1,2,3        ********************       
                float      res;                        //采样电阻  
                int      voltage_parameter;          //电压参数  F
               
//**********************以下用于报警门限设置        ********************       
                float          warning_threshold_temp;                        //温度门限值   
                float          warning_threshold_vswr;                        //VSWR门限值
                float          warning_threshold_imbalance;//电流不平衡门限值       
               
                protect_t          protect_power_in[10];       
                protect_t          protect_vswr[10];
        }st;       
}table_union;
回复

使用道具 举报

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2020-6-27
在线时间
23 小时
 楼主| 发表于 2022-6-23 14:15:04 | 显示全部楼层
wwwwxc 发表于 2022-6-23 14:13
typedef union
{
        u16 all[1024];

请问一下这个结构体放在哪里呢
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2022-6-23 14:39:25 | 显示全部楼层
hng1254544h300 发表于 2022-6-23 14:15
请问一下这个结构体放在哪里呢

100个参数 也没多少啊…… 定义一个全局变量不就行了 如果数据不想变动就定义一个常量
或者在flash地址比较靠后的地方找一块不会被程序占用的空间写进去也行
回复

使用道具 举报

21

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1230
注册时间
2020-7-14
在线时间
272 小时
发表于 2022-6-23 15:43:29 | 显示全部楼层
hng1254544h300 发表于 2022-6-23 14:15
请问一下这个结构体放在哪里呢

.h文件里 声明一下其他文件就可以使用了
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-6-24 08:20:21 | 显示全部楼层
自己保存到FLASH某一扇区地址。开机时读取出来到RAM里,每次变动重新存储到FLASH。大量参数当然是用结构体最快捷方便了。结构体里嵌套结构体都可以。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 19:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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