1.0 error: #70: incomplete type is not allowed
问题描述:
在调试PID的过程中,为了使用蓝牙串口修改PID参数,在串口接收处理函数处引用PID结构体,不成功。
谷歌了一下午,在40度的气温下,头都昏了,结果还是没解决结构体外部引用失败的问题。最终,采取引用外部变量而非结构体解决了问题。
解决方案:
- 目的: 通过蓝牙串口修改PID结构体内的三个参数kp,ki,kd。
我是如何成功实现的?(成功方案)
- 方法: kp,ki,kd三个参数在PID.C内,蓝牙串口接收处理程序在Bluetooth.C内,在PID.C内定义一个变量
float PID_Value;在PID.h内声明extern float PID_Value;在Bluetooth.C内将接收到的数据处理后给 PID_Value,在PID.C内将PID_Value赋值给PID结构体内三个参数 kp,ki,kd。
我是如何失败的?(失败方案)
- 方法:PID.C文件内定义结构体,PID.h文件内extern声明,失败。加typedef,失败。PID.C文件内extern声明结构体,PID.h文件内定义结构体,失败。
参考资料:
- 问题01:error: #70: incomplete type is not allowed的参考资料
- keil环境下,报错#70: incomplete type is not allowed,解决方法
http://www.cnblogs.com/htsky/p/5936703.html - error: #70: incomplete type is not allowed——已解决!
http://blog.csdn.net/dcx1205/article/details/9097491 - keil中error: #70: incomplete type is not allowed——已解决!
http://blog.csdn.net/super_demo/article/details/17758601