关于oled的一些问题

2019-07-20 23:59发布

今天学习,学到了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了。
我知道我这样想是不正确的,希望有大侠,拉我一下子,在这先谢过了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
it_do_just
1楼-- · 2019-07-21 01:14
“dat”和“data”
不是同回事啊,data前面只是做了移位操作赋给dat,实际data并没有改变,而只改变了dat
耳朵大有福
2楼-- · 2019-07-21 03:26
 精彩回答 2  元偷偷看……
耳朵大有福
3楼-- · 2019-07-21 07:36
229382777@qq.co 发表于 2016-1-22 21:59
“dat”和“data”
不是同回事啊,data前面只是做了移位操作赋给dat,实际data并没有改变,而只改变了dat

我去,我去,昨天看程序看的有点蒙圈了,明白咋回事了,谢谢您了

一周热门 更多>