OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8640|回复: 2

为什么写地址使用函数,而写数据用宏定义? 各有什么优点?

[复制链接]

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2012-4-13 17:29:27 | 显示全部楼层 |阅读模式

//写寄存器函数
void LCD_WR_REG(u8 data)
{
 LCD_RS=0;//写地址 
  LCD_CS=0;
 DATAOUT(data);
 LCD_WR=0;
 LCD_WR=1;
  LCD_CS=1;  
}

#define LCD_WR_DATA(data){\
LCD_RS=1;\
LCD_CS=0;\
DATAOUT(data);\
LCD_WR=0;\
LCD_WR=1;\
LCD_CS=1;\
}

为什么写地址使用函数,而写数据用宏定义? 各有什么优点?
网上看宏定义和调用函数的区别,结果是宏定义更快,而调用函数要中断,  那么为什么不都用宏定义?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
发表于 2012-4-13 17:47:31 | 显示全部楼层
我也想问下,用宏定义,速度能快多少呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-13 18:47:07 | 显示全部楼层
回复【楼主位】767904101:
---------------------------------
多想些问题.
1,因为写数据很频繁,而写命令没那么频繁.
2,宏定义的本质就是用一个符号代替一段代码.全部用宏定义,那你的程序得多大?

回复【2楼】以枫之名:
---------------------------------
快多少,看我们的头文件,里面有一个定性的数据.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 13:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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