字节按位倒序处理(一)

本文介绍了一种按键状态表示方法,通过一个字节表示8个按键的状态,并详细解释了如何在程序中进行字节倒序处理,以匹配电路板布局需求。文章提供了具体的C代码实现,展示了如何将原始字节0xabcdefgh转换为0xhgfedcba。

按照通信协议,用一个字节来表示8个按键的状态,第一个按键按下则用0x01表示,第二个按键按下则用0x02表示,以此类推,一位代表一个按键状态。

但为了便于电路板Layout走线,8位并行输入的高低位颠倒,如下图。

为了符合协议,在程序中对字节做了倒序处理,即将0xabcdefgh转换为0xhgfedcba,代码实现如下:

uint8_t byte_change(uint8_t data)
{
	uint8_t i = 0;
	uint8_t temp = 0;
	
	for (i = 0; i < 8; i ++)
	{
		temp = temp << 1;
		temp |= (data >> i) & 0x01;
	}
	
	return temp;
	
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值