OLED显示实验的4线SPI问题,新手求助

2019-07-20 16:06发布

void OLED_WR_Byte(u8 dat,u8 cmd)
{   
    u8 i;              
    OLED_RS=cmd; //
    OLED_CS=0;         
    for(i=0;i<8;i++)
    {              
        OLED_SCLK=0;
        if(dat&0x80)OLED_SDIN=1;
        else OLED_SDIN=0;
        OLED_SCLK=1;
        dat<<=1;   
    }                 
    OLED_CS=1;         
    OLED_RS=1;         
}
[img]file:///C:UsersLenovoAppDataRoamingTencentUsers963390950QQWinTempRichOle`N_RE[DR%F9JO%3V_`[_6OJ.png[/img]

在OLED实验中这段程序  if(dat&0x80)OLED_SDIN=1;
                                    else OLED_SDIN=0;    、
是什么意思呢?为什么坚持到dat第一个数据为1  就拉高OLED_SDIN?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
tony129
1楼-- · 2019-07-20 16:53
串行通讯是按位传输的,SPI协议规定就是数据脚拉高代表1拉低代表0,如果是自订协议你要看他1和0的表示说明。if(dat&0x80)OLED_SDIN=1;else OLED_SDIN=0; 是从高位开始按位发送一个字节。
tony129
2楼-- · 2019-07-20 20:24
 精彩回答 2  元偷偷看……
xuande
3楼-- · 2019-07-20 23:03
 精彩回答 2  元偷偷看……

一周热门 更多>