野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24579|回复: 4

stm32f10x.h的一些困惑

[复制链接]
发表于 2014-4-21 12:02:52 | 显示全部楼层 |阅读模式
#define TIM2_BASE             (APB1PERIPH_BASE + 0x0000)   //这是库里面的

3、得到指定地址上的一个字节或字

#define  MEM_B( x )  ( *( (byte *) (x) ) )  //这是函数的一个用法

那TIM2_BASE 放的不就是APB1PERIPH_BASE + 0x0000里面的内容吗?
教程中说是TIM2_BASE就是从这个APB1PERIPH_BASE + 0x0000基地址开始
那不是应该这样声明一个宏吗:
#define TIM2_BASE             APB1PERIPH_BASE + 0x0000
回复

使用道具 举报

发表于 2014-4-21 13:08:52 | 显示全部楼层
库里面的用法不就比你的多了个括号么? 加多一个括号是为了防止引用宏的时候因为优先级的问题造成错误
回复 支持 反对

使用道具 举报

发表于 2014-4-21 13:38:06 | 显示全部楼层
宏使用时是展开式,不加括号有时候会有一楼说的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-21 16:13:35 | 显示全部楼层
子车梨祎 发表于 2014-4-21 13:08
库里面的用法不就比你的多了个括号么? 加多一个括号是为了防止引用宏的时候因为优先级的问题造成错误

明白,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-21 16:14:09 | 显示全部楼层
刀_口 发表于 2014-4-21 13:38
宏使用时是展开式,不加括号有时候会有一楼说的问题

谢谢~~~~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 01:05 , Processed in 0.030587 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表