AHBSEL 占三位(即值在0:7)
volatile表示该值可能被硬件修改或者被中断修改
连着的三位,这里是bit0:bit2
举个例子,一个键盘有ABCDEF6个键,定义时可以这样
typedef struct{ unsigned char a:1;//成员a占1位 unsigned char b:1; unsigned char c:1; unsigned char d:1; unsigned char e:1; unsigned char f:1; unsigned char res:2; }KEY_T; KEY_T key;
这样key占一个字节,abcdef各占其中1位
volatile 表示被声明的变量让编译器别去优化,每次操作的时候,都切实的访问其物理存储空间
volatile表示线程同步,每次你用这个变量都能保证当前值是当前最新的值,即便其他线程或者中断修改了他的值,你下次再访问时又会重新去物理地址读取一遍