标题:
stm32自己写库函数,报错GPIO没有定义
[打印本页]
作者:
教教我单片机把
时间:
2023-11-20 15:54
标题:
stm32自己写库函数,报错GPIO没有定义
库函数:
#define PERIPH_BASE ((unsigned int)0x40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE+0x10000)
#define AHBPERIPH_BASE (PERIPH_BASE+0x20000)
#define RCC_BASE (AHBPERIPH_BASE+0x1000)
#define GPIOB_BASE (APB2PERIPH_BASE+0x0C00)
#define RCC_APB2ENR *(unsigned int*)(RCC_BASE+0x18)
#define GPIOB ((GPIO_TypeDef*)GPIOB_BASE)
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef struct
{ uint32_t CRL;
uint32_t CRH;
uint32_t IDR;
uint32_t ODR;
uint32_t BSRR;
uint32_t BRR;
uint32_t LCKR;
}
GPIO_Typedef;
主函数:
#include "stm32f10x.h"
int main(void)
{
GPIOB->ODR |=((1)<<(4*0));
//打开GPIOB端口时钟
RCC_APB2ENR |= ((1)<< 3 );
}
void SystemInit()
{
//do nothing
}
报错main.c(6): error: #20: identifier "GPIO_TypeDef" is undefined
这是什么情况?库函数编译没有错,主函数里加入GPIOB就报错,时钟是对的
作者:
carpcarey
时间:
2023-11-21 14:16
库函数:
#define PERIPH_BASE ((unsigned int)0x40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE+0x10000)
#define AHBPERIPH_BASE (PERIPH_BASE+0x20000)
#define RCC_BASE (AHBPERIPH_BASE+0x1000)
#define GPIOB_BASE (APB2PERIPH_BASE+0x0C00)
#define RCC_APB2ENR *(unsigned int*)(RCC_BASE+0x18)
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef struct
{ uint32_t CRL;
uint32_t CRH;
uint32_t IDR;
uint32_t ODR;
uint32_t BSRR;
uint32_t BRR;
uint32_t LCKR;
}
GPIO_Typedef;#define GPIOB ((GPIO_Typedef*)GPIOB_BASE)//此处大小写不对 不应该是GPIO_TypeDef
作者:
yzwzfyz
时间:
2023-11-21 15:50
诚如是,自己依CPU手册地址,补充定义一下即可。
作者:
金玉之食
时间:
2023-11-21 16:58
自己注意一下大小写。结构体定义是:GPIO_Typedef,库函数中:GPIO_TypeDef
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1