
#define REG8(addr) (*(volatile Uint8*)(addr))什么意思?
2个回答
展开全部
这个是为了方便访问寄存器或者其他的外设地址。因为他们的地址是不变的,比如串口控制字的地址为80,则 Uint8 = REG8(80)就可以获得这个寄存器的值。
(volatile Uint8*) 是把这个数字强制转换成一个Uint8*指针,volatile说明这是个异步变量,阻止编译器优化的。然后外面的*就是用来取这个的值的。
(volatile Uint8*) 是把这个数字强制转换成一个Uint8*指针,volatile说明这是个异步变量,阻止编译器优化的。然后外面的*就是用来取这个的值的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询