求一个同时读取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) 就好了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>