怎么理解*(volatile uint32 *)0x60001404 = 0x0000;

怎么理解*(volatile uint32 *)0x60001404 = 0x0000;

对32位内存映射寄存器进行操作啊.

*(volatile uint32 *)0x60001404 = 0x0000;

意思就是初始化0x60001404地址中的值为0x0000,一般在很多单片机

程序中完成寄存器的操作时经常这样用,它相当于下面两步

volatile uint32 * p = (volatile uint32 *)0x60001404;

  • p = 0x0000;

其中(volatile uint32 *)0x60001404,是利用c语言的强制类型转换把地址值转换为volatile uint32 * 类型的指针(相当于volatile uint32 * p = (volatile uint32 *)0x60001404),然后将0x0000赋给这个指针指向的地址(相当于 * p = 0x0000),也就使

0x60001404地址中的值为0x0000。

*(volatile uint32 *)0x8a000084 |= (1<<4);

*(volatile uint32 *)0x8a000084 |= (1<<4);  表示把0x8a000084地址中的值与1左移

4位后的值( 即二进制10000)进行算术或操作后的值再赋到0x8a000084地址中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值