问题遇到的现象和发生背景
在kile5中,stm32“使用寄存器点亮一个led”的编程问题
问题相关代
在kile5中,stm32“使用寄存器点亮一个led”的编程问题
stm32f10x.h
#define PERIPH_BASE (unsigned int(0x40000000))
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (APB1PERIPH_BASE+0x10000)
#define AHBPERIPH_BASE (APB2PERIPH_BASE+0x20000)
#define RCC_BASE (AHBPERIPH_BASE+0x1000)
#define GPIOB_BASE (APB2PERIPH_BASE+0xC00)
#define RCC_APB2ENR *(unsigned int*)(RCC_BASE+0x18)
#define GPIOB_CRL *(unsigned int*)(GPIOB_BASE+0x00)
#define GPIOB_ODR *(unsigned int*)(GPIOB_BASE+0x0C)
#define GPIOB_CRH *(unsigned int*)(GPIOB_BASE+0x04)
main.c
#include "stm32f10x.h"
int main (void)
{
#if 0
//打开GPIOB端口的时钟;
*(unsigned int *) 0x40021018 |= ((1)<<3);
//配置IO口为输出;
*(unsigned int *) 0x40010C00 |= (1<<(4*5));
//控制ODR寄存器;
*(unsigned int *) 0x40010C0C &=~(1<<0);
#else
//打开GPIOB端口的时钟;
RCC_APB2ENR |= ((1)<<3);
//配置IO口为输出;
GPIOB_CRL|= (1<<(4*5));
//控制ODR寄存器;
GPIOB_ODR &=~(1<<0);
#endif
}
void SystemInit (void)
{
}
```码,请勿粘贴截图
###### 运行结果及报错内容
```c
main.c(15): error: #18: expected a ")"
CC_APB2ENR |= ((1)<<3);
main.c(17): error: #18: expected a ")"
PIOB_CRL|= (1<<(4*5));
main.c(19): error: #18: expected a ")"
PIOB_ODR &=~(1<<0);
main.c: 0 warnings, 3 errors
".\Template-REG.axf" - 3 Error(s), 0 Warning(s).
Target not created.
请问问题在哪,该如何解决?