小编inn*_*yme的帖子

如何在C中一次清除多个位?

我如何将所有这些简化为一行?对不起,菜鸟问题 - 我是 C 的新手。

    REG &= ~BITA;
    REG &= ~BITB;
    REG &= ~BITC;
    REG &= ~BITD;
    REG &= ~BITE;
Run Code Online (Sandbox Code Playgroud)

谢谢!

c bit-manipulation

5
推荐指数
1
解决办法
1071
查看次数

当我访问微控制器中的内存值时,为什么它指向我的数据值的末尾?

我试图在我的微控制器中的内存地址处获取 的值。地址是 at 0x1fff7000,那是内存块的开始(所以之前的任何东西都是未定义的)。在我的代码中,我有char *ptr = (char *)BASE_ADDR;where #define BASE_ADDR ((uint32_t)0x1FFF7000)。我的价值0x1FFF70000x12345678,我 100% 知道它在那里。

在 GDB 中,我正在做(gdb) p/x *ptr,我的返回值是$6 = 0x78. 为什么它在0x78而不返回0x12345678甚至不返回0x12

c memory microcontroller memory-leaks stm32

1
推荐指数
1
解决办法
63
查看次数