今天学习,学到了oled的相关程序
读了这么一个原子例程里面的这样一个程序
void OLED_Data_Out(u8 data)
{
u16 dat=data&0X0F;
GPIOC->ODR&=~(0XF<<6);//清空 6~9
GPIOC->ODR|=dat<<6; //D[3:0]-->PC[9:6]
PCout(11)=(data>>4)&0X01;//D4
PBout(6)=(data>>5)&0X01; //D5
PEout(5)=(data>>6)&0X01; //D6
PEout(6)=(data>>7)&0X01; //D7
}
我觉得因为u16 dat=data&0X0F;data的高4位被置0了,而data>>4,data>>5的数据处理后都应该是0了。
我知道我这样想是不正确的,希望有大侠,拉我一下子,在这先谢过了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不是同回事啊,data前面只是做了移位操作赋给dat,实际data并没有改变,而只改变了dat
我去,我去,昨天看程序看的有点蒙圈了,明白咋回事了,谢谢您了
一周热门 更多>