在kile5中,stm32“使用寄存器点亮一个led”的编程问题

编译时,出现这样的错误?
请问问题出现在那,该怎么解决?
compiling main.c...
User\main.c(17): error: #20: identifier "RCC_APB2ENR" is undefined
RCC_APB2ENR|=1<<4;//开启GPIOC端口时钟
User\main.c(18): error: #20: identifier "GPIOC_CRL" is undefined
GPIOC_CRL&=~(0x0f<<(4*0));
User\main.c(20): error: #20: identifier "GPIOC_BSRR" is undefined
GPIOC_BSRR=(1<<(16+0));//点亮
User\main.c: 0 warnings, 3 errors
"User\main.c" - 3 Error(s), 0 Warning(s).


stm32f10x.h
#define PERIPH_BASE ((unsigned int)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
#define GPIOC_CRL (unsigned int)(GPIOC_BASE+0x00)
#define GPIOC_CRH (unsigned int)(GPIOC_BASE+0x04)
#define GPIOC_IDR (unsigned int)(GPIOC_BASE+0x08)
#define GPIOC_ODR (unsigned int)(GPIOC_BASE+0x0C)
#define GPIOC_BSRR (unsigned int)(GPIOC_BASE+0x10)
#define GPIOC_BRR (unsigned int)(GPIOC_BASE+0x14)
#define GPIOC_LCKR (unsigned int)(GPIOC_BASE+0x18)
#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)
#define RCC_BASE (AHBPERIPH_BASE + 0x1000)
#define RCC_APB2ENR (unsigned int)(RCC_BASE+0x18)


main.c如下:
#include

typedef unsigned u32;

void SystemInit()
{

}

void delay(u32 i)
{
while(i--);
}

int main()
{
RCC_APB2ENR|=1<<4;//¿ªÆôGPIOC¶Ë¿ÚʱÖÓ
GPIOC_CRL&=~(0x0f<<(4*0));
GPIOC_CRL|=(3<<4*0);
GPIOC_BSRR=(1<<(16+0));//µãÁÁ
while(1)
{
GPIOC_BSRR=(1<<(16+0));//µãÁÁ
delay(0xfffff);
GPIOC_BSRR=(1<<(0));//ϨÃð
delay(0xfffff);
}
}


2个回答

提示没有被定义,你的库里面没有对应得定义,建议用库函数写,或者在你得库文件中仔细寻找对应定义

你把stm32f10x.h这个头文件加到main.c上试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐