求一个同时读取8个IO输入的操作(PF0-PF7)

2019-07-20 08:10发布

求一个同时读取8个IO输入的操作(PF0-PF7),然后把他们放到一个 内存中,用16进制表示。自己是这样实现的

unsigned char  data=0;
data =GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_7);//8位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_6);//7位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_5);//6位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_4);//5位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_3);//4位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_2);//3位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_1);//2位
   data << 1;
   data |= GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_0);//1位

这样很浪费时间,没有一起直接操作的吗?就像发送这样
#define Dataout(x)   GPIO_Write(GPIOF,x)   //声明低8位输出
直接操作Dataout(data) 就好了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。