void OLED_Write_Cmd(u8 data)
{
OLED_DC_Clr();
SPI_SIZE = 1;
//SPI_SendData(SPI,data);
SPI_TX_DATA = data;
while (!(SPI_IE & BIT2))
{
};
SPI_IE |= BIT2; //清除SPI传输完成标志位
}
void OLED_Write_Data(u8 data)
{
OLED_DC_Set();
SPI_SIZE = 1;
//SPI_SendData(SPI,data);
SPI_TX_DATA = data;
while (!(SPI_IE & BIT2))
{
};
SPI_IE |= BIT2; //清除SPI传输完成标志位
}
上面两个函数是OLED屏幕的两个SPI底层驱动函数,操作屏幕显示时,需要先写入Cmd命令指定显示位置,再写入数据,有尝试将SPI标志位改用查询方式清除,但是可能是影响到操作时序,底层驱动失效,OLED不显示;
改用DMA模式,也是只能每次写入单字节数据 |