STM32中,联合体是否可以作为常量定义到FLASH中?

2019-12-20 21:32发布

CPU:STM32F103VC
一些改动很少的设置参数,想保存到FLASH里,原来的做法是先定义一个结构体,然后定一个数组和结构体的联合体,如下:
        typedef        struct
        {
                uchar v_SlvCfg[8];
                uchar v_SciAdr;
                uchar v_SciBote;
        }CONFIG_PARA;

        typedef union
        {
                uchar        v_Buf[10];
                CONFIG_PARA s_BasCtt;
        }DEVICE_CONFIG;

        DEVICE_CONFIG        s_BasCfg;

然后初始化时从 FLASH 里读到 .s_BasCfg.v_Buf 里,相当于从 FLASH 里读到RAM里,,,现在我想直接把这个联合体定义到 FLASH 里,然后程序里直接用,不用每次还从 FLASH 里搬到 RAM 里,应该怎么定义?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
EMC菜鸟
1楼-- · 2019-12-22 15:22
haigerl 发表于 2018-4-11 09:13
typedef struct
{
    uchar v_SlvCfg[8];

我用 keil,我没找到哪里可以选择支持 C99  ?
EMC菜鸟
2楼-- · 2019-12-22 17:59
 精彩回答 2  元偷偷看……
EMC菜鸟
3楼-- · 2019-12-22 22:26
zhugean 发表于 2018-4-11 08:42
你的问题是联合赋初值,百度一下

百度里只能搜到在程序里赋值、或者如13楼的兄弟说的那样,但我按那种方式写、程序报错
EMC菜鸟
4楼-- · 2019-12-23 00:27
jiaowoxiaolu 发表于 2018-4-11 09:24
你还转不过弯,你这个没什么必要上联合体,

        typedef        struct

有点转过弯来了 ,,, 貌似这确实是一个比较接近的方法 ,,,

一周热门 更多>