有人能告诉我我下面缺少的是什么… 将 main.h 代码放置在 main.c 文件中并进行所有编译...但是我希望消除所有混乱并将结构定义放置在 main.h 中 当我这么做时、我会遇到大量类似如下的错误:
第13行:警告#78-D:此声明没有存储类或类型说明符
第13行:错误#66:预期为";"
main.c
#include "main.h"
void main(void)
{
extern DAC_Handle_t ControlVoltage;
WDTCTL = WDTPW | WDTHOLD;
DAC_Init(&ControlVoltage);
}
main.h
#ifndef INC_MAIN_H_ #define INC_MAIN_H_ #include "dac.h" ControlVoltage.pDACx = DAC0; ControlVoltage.DAC_Config.OA_Source = INTERNAL; ControlVoltage.DAC_Config.OA_Speed = HIGH_SPEED; ControlVoltage.DAC_Config.OA_InputConfig = NONINVERTING; ControlVoltage.DAC_Config.OA_GainConfig = BUFFER; ControlVoltage.DAC_Config.DAC_Value = 100; #endif /* INC_MAIN_H_ */
dac.h --此文件位于 main.h 之外的单独文件夹下,但包含在编译器选项中。
#include <msp430.h>
#include <stdint.h>
typedef struct
{
volatile uint16_t SACOA; /*OpAmp input config register Offset 0x00 */
volatile uint16_t SACPGA; /*OpAmp gain register Offset 0x02 */
volatile uint16_t SACDAC; /*DAC setup register Offset 0x04 */
volatile uint16_t SACDAT; /*DAC data register Offset 0x06 */
volatile uint16_t SACDATSTS; /*DAC flag status register Offset 0x08 */
}DAC_RegDef_t;
typedef struct
{
volatile uint16_t PMMCTL[3]; /*pmm control register Offset 0x00 - 0x04 */
}PMM_RegDef_t;
#define DAC0 (DAC_RegDef_t *)SAC0_BASE
#define DAC1 (DAC_RegDef_t *)SAC1_BASE
#define DAC2 (DAC_RegDef_t *)SAC2_BASE
#define DAC3 (DAC_RegDef_t *)SAC3_BASE
#define PMM (PMM_RegDef_t *)PMM_BASE
typedef struct
{
uint8_t OA_InputConfig; /*values @OA_INPUT */
uint8_t OA_GainConfig; /*values @OA_GAIN */
uint8_t OA_Source; /*values @OA_SOURCE */
uint8_t OA_Speed; /*values @OA_SPEED */
uint8_t DAC_Value;
}DAC_Config_t;
/*
* @OA_INPUT
*/
#define INVERTING 0
#define NONINVERTING 1
/*
* @OA_GAIN
*/
#define BUFFER 1
#define INV_GAIN1 BUFFER
#define INV_GAIN2 INV_GAIN1 + 1
#define INV_GAIN4 INV_GAIN2 + 1
#define INV_GAIN8 INV_GAIN4 + 1
#define INV_GAIN16 INV_GAIN8 + 1
#define INV_GAIN25 INV_GAIN16 + 1
#define INV_GAIN32 INV_GAIN25 + 1
#define NONINV_GAIN2 BUFFER
#define NONINV_GAIN3 NONINV_GAIN2 + 1
#define NONINV_GAIN5 NONINV_GAIN3 + 1
#define NONINV_GAIN9 NONINV_GAIN5 + 1
#define NONINV_GAIN17 NONINV_GAIN9 + 1
#define NONINV_GAIN26 NONINV_GAIN17 + 1
#define NONINV_GAIN33 NONINV_GAIN26 + 1
/*
* @OA_SOURCE
*/
#define INTERNAL 0
#define EXTERNAL 1
/*
* @OA_SPEED
*/
#define HIGH_SPEED 0
#define LOW_SPEED 1
/*
* handle structure for GPIO pin
*/
typedef struct
{
DAC_RegDef_t *pDACx; /*holds base address of GPIO port to which pin belongs */
DAC_Config_t DAC_Config; /*holds GPIO pin configuration settings */
}DAC_Handle_t;
/*
* general
*/
#define SPEED 9
#define UNLOCK 0xA5
void DAC_Init(DAC_Handle_t *pDACHandle);
#endif /* DRIVERS_INC_DAC_H_ */