这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 介绍一种特别的宏用法,方便修改IO口状态

共8条 1/1 1 跳转至

介绍一种特别的宏用法,方便修改IO口状态

高工
2012-12-18 21:34:25     打赏
这里有个特别的宏用法,把这句话加到你程序的第一行即可:
#define BinToHex(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))//请把这条宏语句写在同一行。
#define B(n) BinToHex(0x##n##)
举个例子:
原本给单片机IO赋值的语句“P0=0x37;”我们现在可以写成“P0=B(00110011);”这样很大程度上方便了我们修改IO口的状态。
今天编了个小程序测试过了,挺好用的,推荐大家使用该方法

说的明白点就是把那两条宏语句放在程序的开头,这样给单片机端口赋值的时候(因为给端口赋值往往是想给某一位赋值,用二进制的方式赋值比较直观)就不需要再自己换算成16进制的数字了,直接用B(01010011)这样的二进制代替,既比较直观方便又省去了自己换算16进制的麻烦




关键词: 介绍     一种     别的     用法     方便     修改     状态    

高工
2012-12-19 08:28:09     打赏
2楼
我也第一次见到,挺新鲜的,不过这样用确实比较方便,建议大家试试

高工
2012-12-19 09:47:21     打赏
3楼

就是把那两条宏语句放在程序的开头,这样给单片机端口赋值的时候(因为给端口赋值往往是想给某一位赋值)就不需要再自己换算成16进制的数字了,直接用B(01010011)这样的二进制代替,省了不少事儿


高工
2012-12-19 13:32:07     打赏
4楼
又增加了点说明,王总有空瞧瞧

高工
2012-12-20 14:49:59     打赏
5楼
哦,还真不知道,反正在keil里面很好用

高工
2012-12-27 16:17:54     打赏
6楼

如果用函数的话那么单片机运行的时候需要再计算一遍,严重影响单片机的执行效率;用宏的话只是在编译的时候需要编译器执行,真正程序运行的时候和直接赋16位的值是一样的,不影响程序的执行效率


高工
2013-01-04 10:46:09     打赏
7楼
没研究过stm,介绍一下吧,谢谢

高工
2013-02-21 22:11:31     打赏
8楼

就是就是


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]