***/ void WriteCmd(unsigned char cmd) { SPI_WriteByte(cmd,OLED_CMD); } /***/ /*函数功能: 写数据 */ /***/ void WriteData(unsigned char data) { SPI_WriteByte(data,OLED_DATA); } 代码注意事项,关于片选引脚问题OLED_CS = 0/1;在硬件上已经解决,软件...
void OLED_WriteData(uint8_t data) { I2C_Start(); //I2C启动 I2C_WriteByte(0x78); //发送写地址 I2C_WriteByte(0x40); //发送 控制字节 I2C_WriteByte(data); //发送数据 I2C_Stop(); //I2C停止 } 1. 2. 3. 4. 5. 6. 7. 8. 写入多个数据: AI检测代码解析 void OLED_WriteNBytes(uin...
OLED_I2C_WriteByte(0x78); OLED_I2C_Ack(); OLED_I2C_WriteByte(0x00); OLED_I2C_Ack(); OLED_I2C_WriteByte(Cmd); OLED_I2C_Ack(); OLED_I2C_Stop(); } void OLED_WriteDat(uint8_t Data) //写数据 { OLED_I2C_Start(); OLED_I2C_WriteByte(0x78); OLED_I2C_Ack(); OLED_I2C_WriteByt...
由于我们使用的是 SPI 协议,而且我们配置的是 SPI1 ,所以这里需要添加 SPI 写入代码到 oled.c 源文件中,代码如下: uint8_tSPI1_ReadWriteByte(uint8_tTxData){uint8_trxdata =1;#ifonlysend//如果只配置了发送 使用HAL_SPI_TransmitHAL_SPI_Transmit(&hspi1,&TxData,1,100);//while(HAL_SPI_GetState...
void I2C_WriteByte(uint8_t addr,uint8_t data){ i2c_Start(); //开启 协议 //0x78 转化为 2进制 0111 1110 再或上一个 0 | 1 的值,表示地址最后一位为读写控制指令 i2c_SendByte(OLED_ADDRESS|OLED_I2C_WR); //发送地址 和 读写控制指令 ...
voidSSD1306_WriteCmd(uint8 cmd){I2C_Start();I2C_SendByte(SSD1306_I2C_ADDR|0x00);I2C_Ack();I2C_SendByte(0x00);//cmd I2C_Ack(); I2C_SendByte(cmd); I2C_Ack(); I2C_Stop(); }voidSSD1306_WriteData(uint8 data){I2C_Start();I2C_SendByte(SSD1306_I2C_ADDR|0x00);I2C_Ack();I2C_Se...
OLED_Write_Byte(0X,OLED_CMD); // ON } /*** * @name :void OLED_Display_Off(void) * @date:2022-06-22 * @function :显示 * @parameters :无 * @retvalue :无 ***/ void OLED_Display_Off(void) { OLED_Write_Byte(0X8D,OLED_CMD); //SET DCDC命令OLED_Write_Byte(0X...
#include "main.h"#include "oled/oled.h"#include "oled/codetab.h"extern I2C_HandleTypeDef hi2c2;void I2C_WriteByte(uint8_t addr, uint8_t dat){uint8_t temp[2];temp[0] = dat;temp[1] = dat;HAL_I2C_Mem_Write(&hi2c2,OLED_ADDRESS,addr,I2C_MEMADD_SIZE_8BIT,temp,1,10);}void ...
void OLED_WriteData(uint8_t data){I2C_Start(); //I2C启动I2C_WriteByte(0x78); //发送写地址I2C_WriteByte(0x40); //发送 控制字节I2C_WriteByte(data); //发送数据I2C_Stop(); //I2C停止} 写入多个数据: void OLED_WriteNBytes(uint8_t *buf, uint16_t length){uint16_t i = 0;if(buf ...
{ OLED_WriteOneByte(0xB0+i,OLED_CMD); //设置页地址 OLED_WriteOneByte(0x10,OLED_CMD); //设置列高起始地址(半字节) OLED_WriteOneByte(0x00,OLED_CMD); //设置列低起始地址(半字节) for(j=0;j<128;j++) { OLED_WriteOneByte(data,OLED_DAT); //写数据 } } } /* 定义显存数组: 8行,...