//ѕтSSD1306–і»л“їЄц„÷љЏ°£ //dat:“™–і»лµƒ эЊЁ/√ьЅо //cmd: эЊЁ/√ьЅо±к÷Њ 0,±н Њ√ьЅо;1,±н Њ эЊЁ; void OLED_WR_Byte(u8 dat,u8 cmd) { u8 i; if(cmd) OLED_RS_Set(); else OLED_RS_Clr(); //delay_ms(1); OLED_CS_Clr(); for(i=0;i<8;i++) { OLED_SCLK_Clr(); if(dat&0x80) OLED_SDIN_Set(); else OLED_SDIN_Clr(); OLED_SCLK_Set(); dat<<=1; } OLED_CS_Set(); OLED_RS_Set(); }
//向SSD1306写入一个字节。 //dat:要写入的数据/命令 //cmd:数据/命令标志 0,表示命令;1,表示数据; void OLED_WR_Byte(uint8_t dat,uint8_t cmd) { //uint8_t i; spi0_tx_data[0]=dat; if(cmd) OLED_RS_Set(); else OLED_RS_Clr(); #if 0 OLED_CS_Clr(); for(i=0;i<8;i++) { OLED_SCLK_Clr(); if(dat&0x80) OLED_SDIN_Set(); else OLED_SDIN_Clr(); OLED_SCLK_Set(); dat<<=1; } OLED_CS_Set(); #endif //NRF_SPI0 if(!spi_master_tx_rx(spi_base_address, 1, (const uint8_t *)spi0_tx_data, (uint8_t*) spi0_rx_data)) // if(!spi_master_tx_rx(NRF_SPI0, 1, (const uint8_t *)spi0_tx_data, (uint8_t*) spi0_rx_data)) { return ; } OLED_RS_Set(); }
//ѕтSSD1306–і»л“їЄц„÷љЏ°£ //dat:“™–і»лµƒ эЊЁ/√ьЅо //cmd: эЊЁ/√ьЅо±к÷Њ 0,±н Њ√ьЅо;1,±н Њ эЊЁ; void OLED_WR_Byte(u8 dat,u8 cmd) { DATAOUT(dat); if(cmd) OLED_RS_Set(); else OLED_RS_Clr(); OLED_CS_Clr(); OLED_WR_Clr(); OLED_WR_Set(); OLED_CS_Set(); OLED_RS_Set(); }
/** * @brief Write a byte to OLED @params dat: 8-bit data being transferred cmd: Command or data select @retval None */ static void OLED_WR_Byte(unsigned char dat, unsigned char cmd) { if (cmd) OLED_RS_Set(); else OLED_RS_Clr(); OLED_CS_Clr(); SPI2_ReadWriteByte(dat); OLED_CS_Set(); OLED_RS_Set(); }