Ale*_*der 2 c embedded microcontroller arm
我正在使用IC,DS1620来读取单行上的1位串行数据.我需要使用ARM微控制器(LPC2378)的一个端口读取这些数据.ARM端口为32位.如何将此值转换为1位变量?
编辑:换句话说,我需要直接引用端口引脚.
没有1位变量,但你可以隔离一个特定的位,例如:
uint32_t original_value = whatever();
uint32_t bit15 = (original_value >> 15) & 1; /*bit15 now contains either a 1 or a 0 representing the 15th bit */
Run Code Online (Sandbox Code Playgroud)
注意:我不知道你是否计算从0或1开始的位数,所以>> 15
可能会被一个关闭,但你明白了.
另一种选择是使用位字段,但这会变得混乱,除非值中的每一位都以某种方式有用,否则IMO是不值得的.如果你只想要一个或两个位,那么转移和屏蔽是最佳选择.
总的来说,这篇文章可能对您有用.