啊原来是头文件里面有一个定义函数没有加引号 |
问题应该出在头文件里面,打开头文件看一下 |
可以检查.h文件,另外keil不能识别二进制 |
少了大括号的一半 |
编程的好习惯是:1.常备份;2. 编写几句后就编译一次。出现问题很容易找到。即使没有问题的完全项目程序,在某个文件中偶然删除或多加了一个符号,再编译可能会出现一大堆错误。仅根据错误信息,也很难找出头绪。 |
猜测可能 #include "stm32f10x.h" 头文件中被误按键输入 } 了; |
程序是从其他地方复制过来的吗?如果是话可能是粘贴之后发生了变化 |
发表于 2022-2-27 19:17 #ifndef _BSP_KEY_H #define _BSP_KEY_H #include "stm32f10x.h" #define KEY_ON 1 #define KEY_OFF 0 #define KEY1_GPIO_PIN GPIO_Pin_0 #define KEY1_GPIO_PORT GPIOA #define KEY1_GPIO_CLK RCC_APB2Periph_GPIOA void KEY_GPIO_Config(void); uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin); #endif /*_BSP_KEY_H */ |
第一遍在芯片头文件中的结构体重,定义方法如下 struct { __IO uint32_t PLLEN : 1; /*!< (@ 0x0000001C) PLLEN */ XXXXXXXXXX /*其它定义*/ } CLKCTRL_b;` 1234 第二遍在外部晶振定义时。 #define PLLEN (1<<28) // pll 1 这两种定义产生冲突因此出现了以上错误。 |
贴全了,第13行报错一般问题都在13行以前。 |