wuiefhuaer 2021-11-23 21:52 采纳率: 100%
浏览 399
已结题

stm32点亮led中出现的问题error18:expect a ")"

问题遇到的现象和发生背景

在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.

请问问题在哪,该如何解决?

  • 写回答

1条回答 默认 最新

  • Vice Versa XL 2021-11-24 10:54
    关注

    RCC_APB2ENR 换成 RCC->APB2ENR

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵