求一个同时读取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) 就好了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
首先,函数可以用,是肯定的。换个问题吧,如果16个全是输入模式,我只要低八位呢?因为项目后面很可能要继续加东西,比如又需要一组输入IO,那这种方法就要换了。(IO口用的差不多了)
一周热门 更多>