微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > keil中的结构体问题

keil中的结构体问题

时间:10-02 整理:3721RD 点击:
typedef struct
{
         float kp;
         float ki;
         float kd;
}camera_pid;
camera_pid pos_pid;
对于上述的结构体,接下来写
pos_pid.kp = 1.0;
系统一直提示:unkown type name of 'pos_pid'
但我接下来在一个函数中定义却没有问题,比如:
void fun (void)
{
pos_pid.kp = 1.0;
}
却不会报错,不知道什么原因,请教下大家

你的结构体定义在哪里定义的?

typedef struct
{
         float kp;
         float ki;
         float kd;
}camera_pid;
struct camera_pid pos_pid;
这个样子就行了。
-------------------------例如:
struct stuff{
        char job[20];
        int age;
        float height;
};
struct stuff Huqinwei;

结构体全局变量要用另一种方式写
你试试定义的时候用{}初始化

呵呵,小编!你直接在函数外赋值吗?pos_pid.kp = 1.0;
函数外部不能赋值吧!要不就在定义的时候初始化,比如camera_pid pos_pid={0,0,0};

我也遇到过这样的问题,函数库中定义的函数不能直接使用,一直报错,求解答

設定初始值如下範例:
camera_pid pos_pid={1.0,1.0,1.0};

我还是没明白你这是什么意思!你说的接下来写:pos_pid.kp = 1.0;是写在申明后面吗?如果是在后面那怎么不报错呢?这是一条语句!不是申明也不是定义怎么能放在{}外面?

初始化结构体变量应该是struct camera_pid pos_pid;你少了struct

他前面定义了类型,后面定义数据就可以不用struct

如果不是语法问题,应该在h 文件没有添加!

看错了  结构体在函数体外不能赋值 的 你百度一下就知道了,基本类型变量是可以的.

安富莱的开发板有好像有这方面的,你去他们网站看下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top