【发布时间】:2018-05-21 09:10:41
【问题描述】:
我真的是 C 的新手,我在位操作方面遇到了麻烦,我阅读了很多关于它的信息,似乎它是 C 的困难部分之一,有人可以解释我如何收集 32 位然后将它们分配给无符号整数。
unsigned int collect_bits; // define var
for (int i = 0;i < 31; i++) // loop for 32bits
{
collect_bits &= HAL_GPIO_ReadPin (GPIOC,GPIO_PIN_9); //read PORTC current bit and assign it to collect_bits
}
我知道上面的代码是错误的,但我不知道如何将位从 PORT 分配给 var
【问题讨论】:
-
你真的想读同一个密码 32 次吗?
-
@PeterJ_01 好吧,我只是开始使用 C 和 Keil,我没有找到任何可以从端口读取超过 1bit 的 HAL 函数
-
但我想你应该明白这个简单的问题:你想一直读**相同的位还是你想读不同的?**
-
@PeterJ_01 我试图用我的 MCU 从另一个设备捕获数据,所以我尝试先在 clk PIN 上捕获高时钟脉冲,然后才读取数据引脚(C9),因此它不会是同一个引脚。所以,是的,我想阅读不同的位
-
你能用更技术的方式解释一下吗? (阅读:更准确)顺便说一句,我看到它是 STM uC - 为什么你想要 bitbang 而不是使用硬件外围设备。当您问这个问题时,确切地写出您想要存档的内容、uC 的型号以及您想要从/向/向其读取/写入数据的设备的型号
标签: c bit-manipulation bit