求一个同时读取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) 就好了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
非常感谢,没想到一个小小的问题,暴露了自己这么多的不足。之前忙着赶进度,就直接上手了,看来要加紧打牢一下基础。留下的问题,回去好好琢磨,最后再次感谢!麻烦了。
一周热门 更多>