[STM8] GPIO_TypeDef未定义问题

[复制链接]
2899|17
 楼主| stly 发表于 2021-8-8 21:57 | 显示全部楼层 |阅读模式
stm8做一个按键检测程序,编译的时候提示Error[Pe020]: identifier "GPIO_TypeDef" is undefined
jlyuan 发表于 2021-8-8 21:59 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| stly 发表于 2021-8-8 22:02 | 显示全部楼层

按键扫描
char Key_Scan(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
  /*检测是否有按键按下 */
  if(GPIO_ReadInputPin(GPIOx,GPIO_Pin) == KEY_ON )
  {
    /*延时消抖*/
    //Delay(1);
    asm("nop");
   
   
    if(GPIO_ReadInputPin(GPIOx,GPIO_Pin) == KEY_ON )
    {
      /*等待按键释放 */
      while(GPIO_ReadInputPin(GPIOx,GPIO_Pin) == KEY_ON);
      return KEY_ON;
    }
    else
      return KEY_OFF;
  }
  else
    return KEY_OFF;
}
为什么是key.h报错?
key.h如下
#ifndef __key_H__
#define __key_H__


void key_config(void);
void display(char screens);
char Key_Scan(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin);
#endif /* __key_H__ */
juventus9554 发表于 2021-8-8 22:04 | 显示全部楼层
头文件
pengf 发表于 2021-8-8 22:06 | 显示全部楼层
能详细说一下吗?网上搜了一下,说是
stm8s.h缺少定义,我看了一下
stm8s.h文件也有gpiod方面的定义

#define CLK ((CLK_TypeDef *) CLK_BaseAddress)

#define EXTI ((EXTI_TypeDef *) EXTI_BaseAddress)

#define FLASH ((FLASH_TypeDef *) FLASH_BaseAddress)

#define OPT ((OPT_TypeDef *) OPT_BaseAddress)

#define GPIOA ((GPIO_TypeDef *) GPIOA_BaseAddress)

#define GPIOB ((GPIO_TypeDef *) GPIOB_BaseAddress)

#define GPIOC ((GPIO_TypeDef *) GPIOC_BaseAddress)

#define GPIOD ((GPIO_TypeDef *) GPIOD_BaseAddress)

#define GPIOE ((GPIO_TypeDef *) GPIOE_BaseAddress)

#define GPIOF ((GPIO_TypeDef *) GPIOF_BaseAddress)
jiahy 发表于 2021-8-8 22:11 | 显示全部楼层
这东西一般都是头文件定义的,包含进去就可以了
 楼主| stly 发表于 2021-8-8 22:14 | 显示全部楼层
找到原因了,key.h也要#include "stm8s.h",我还以为在key.c 里面包含进去就可以了
yszong 发表于 2021-8-8 22:16 | 显示全部楼层
一般在.c中包含也是可以的,但是你.h中函数的参数中有GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin这样的参数类型,是在stm8s.h中包含的了
liuzaiy 发表于 2021-8-8 22:18 | 显示全部楼层
所以key.h会报错,假设你key.h函数申明的参数中没这些的话,定义在key.c中也是可以的。
liuzaiy 发表于 2021-8-8 22:24 | 显示全部楼层
不必那样

//key.c
#include <stm8s.h>
#include "key.h"
jlyuan 发表于 2021-8-8 22:26 | 显示全部楼层
这个不用俺们自己定义吧
dingy 发表于 2021-8-8 22:28 | 显示全部楼层
原来的头文件是不是就有啊
dingy 发表于 2021-8-8 22:31 | 显示全部楼层
keaibukelian|技术达人 | 2019-9-19 12:00 | 只看该作者
是不是文件缺失啊
liuzaiy 发表于 2021-8-8 22:34 | 显示全部楼层
用cube生成的就不会出现这种问题啊
jlyuan 发表于 2021-8-8 22:36 | 显示全部楼层
应该少头文件了
jlyuan 发表于 2021-8-8 22:38 | 显示全部楼层
重新生成一下试试看
 楼主| stly 发表于 2021-8-8 22:40 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
 楼主| stly 发表于 2021-8-8 22:42 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部