Linux学习代码杂记
1.在韦东山的书上看到这段代码:
我在韦东山的书上GPIO介绍这一章看到如下代码:
#define GPBCON (*(volatile unsigned long )0x56000010)
#define GPBDAT ((volatile unsigned long )0x56000014)
#define GPB_5out 1<<(52)
GPBDAT =GPB_5out;
我知道GPxCON从B开始,都是每两位控制一个引脚,00表示输入,01表示输出,10表示特殊功能,11保留不用。
但是死活想不明白为什么GPBDAT =GPB_5out;就表示把GPB5设置为输出引脚。后来明白了。
- 1<<(52)就代表1左移10位,52就是5乘以2
- 由下图可知,GPB5是在第6个00组合处,所以1左移十位刚好是。
2.你只要记得0x2和0x02是相等的就行,千万注意!!!!!
结合第二章图片理解一下第一张图片,就会豁然开朗。这个在韦东山书籍的第79页。