STC8单片机OLED通过SPI硬件中断方式驱动(下)
2022-08-05 来源:csdn
到这里基本就写完了,我们来看看修改例程中的代码,先看看中景园给的
void OLED_WR_Byte(uint8_t dat, uint8_t cmd)
{
register uint8_t i = 0;
OLED_DC = cmd;
for(;i<8;i++)
{
OLED_SCL_Clr();
if(dat&0x80)
{
OLED_SDA_Set();
}
else
{
OLED_SDA_Clr();
}
OLED_SCL_Set();
dat<<=1;
}
OLED_CS_Set();
OLED_DC_Set();
}
改为硬件驱动
#ifdef hardware
void OLED_WR_Data(uint8_t dat)
{
SPI_Busy = 0;
OLED_DC_Set(); //拉高DC管脚,写数据
OLED_Writ_Bus(dat);
}
void OLED_WR_Cmd(uint8_t cmd)
{
SPI_Busy = 0;
OLED_DC_Clr(); //拉低DC管脚,写命令
OLED_Writ_Bus(cmd);
}
#endif
这里其实就是区别了命令和数据管脚,写了两个函数,然后加了一个ifdef 到这里就基本完善了,例程给的优化有点差,然后再后面会出一期优化的
相关文章