ssd1306 stm32l010

Dependents:   oled_test7_16x24_010_1 i2c_HT16K33_test1_767_3 HAL_oled_16x24_010_1

Revision:
1:20e48680a5f8
Parent:
0:5d70351255d1
--- a/SSD1308.cpp	Tue Aug 02 06:48:13 2022 +0000
+++ b/SSD1308.cpp	Thu Aug 04 14:35:32 2022 +0000
@@ -8,7 +8,7 @@
 
 //i2c initialization
 //I2C i2c(I2C_SDA, I2C_SCL); //767
-I2C i2c(PA_10, PA_9); //010
+//I2C i2c(PA_10, PA_9); //010
 
 
 //void fff(char *str1)
@@ -24,8 +24,10 @@
  *@param uint8_t deviceAddress slaveaddress
  */
 //SSD1308::SSD1308(I2C *i2c, uint8_t deviceAddress) : _i2c(i2c) {
-SSD1308::SSD1308( uint8_t deviceAddress)  {
+//SSD1308::SSD1308( uint8_t deviceAddress)  {
+SSD1308::SSD1308( I2C_HandleTypeDef* hi2c , uint8_t deviceAddress )  {
 
+  _hi2c = hi2c;
   
   _writeOpcode = deviceAddress & 0xFE; // low order bit = 0 for write
   _readOpcode  = deviceAddress | 0x01; // low order bit = 1 for read  
@@ -50,11 +52,34 @@
     //fff("\r\n");
     
     //charge pump  add=>ca45040
-    i2c.write(SSD1308_SA0, "\200\215\200\024", 4); //0x80,0x8d,0x80,0x14
+    //i2c.write(SSD1308_SA0, "\200\215\200\024", 4); //0x80,0x8d,0x80,0x14
+    HAL_I2C_Master_Transmit(   _hi2c        , _writeOpcode   , (uint8_t*)"\200\215\200\024", 4, 3000);
     //set access
     //setDisplayFlip(false, false);
 
 
+
+
+//    uint8_t buf[16];
+//
+//
+//            buf[0]=0;
+//            buf[1]= 0x55;
+//            
+//            HAL_I2C_Master_Transmit(   _hi2c        ,  _writeOpcode  , buf, 2, 3000);          
+//            wait_ms(600);
+//
+//            buf[0]=0;
+//            buf[1]= 0xaa;
+//
+//
+//            HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , buf, 2, 3000);           
+//            wait_ms(600);
+
+
+
+
+
     
 }//initialize
 
@@ -77,12 +102,12 @@
 */
 
     //128*64/8=1024
-    char databytes[2] = {    DATA_MODE,    0x00 };
+    uint8_t databytes[2] = {    DATA_MODE,    0x00 };
     for (int icount = 0; icount < 1024; icount++) {
         //_sendData(0x00);
         
-        i2c.write(_writeOpcode, databytes, 2);
-        
+        //i2c.write(_writeOpcode, databytes, 2);
+        HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes, 2, 3000);
     }
 
     //setDisplayOn();
@@ -104,13 +129,13 @@
 
 
 
-    char databytes[2] = {    DATA_MODE,    0 };
+    uint8_t databytes[2] = {    DATA_MODE,    0 };
     for (int i=0; i<count; i++) {
         //_sendData(data[i]); // Write Data
 
         databytes[1] = data[i];
-        i2c.write(_writeOpcode, databytes, 2);
-        
+        //i2c.write(_writeOpcode, databytes, 2);
+        HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes , 2, 3000);
     }
 
 
@@ -233,10 +258,10 @@
     //_sendCommand(SET_MEMORY_ADDRESSING_MODE, mode);
  
  
-    char databytes[4] = {    COMMAND_MODE,    SET_MEMORY_ADDRESSING_MODE,    COMMAND_MODE,    mode              };
+    uint8_t databytes[4] = {    COMMAND_MODE,    SET_MEMORY_ADDRESSING_MODE,    COMMAND_MODE,    mode              };
     
-    i2c.write(_writeOpcode, databytes, 4);
-
+    //i2c.write(_writeOpcode, databytes, 4);
+    HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes, 4, 3000);
  
  
 }//setMemoryAddressingMode
@@ -249,9 +274,9 @@
     
     //_sendCommand(SET_PAGE_ADDRESS, start, end);
     
-    char databytes[6] = {    COMMAND_MODE,    SET_PAGE_ADDRESS,    COMMAND_MODE,    start,    COMMAND_MODE,    end              };
-    i2c.write(_writeOpcode, databytes, 6);
-
+    uint8_t databytes[6] = {    COMMAND_MODE,    SET_PAGE_ADDRESS,    COMMAND_MODE,    start,    COMMAND_MODE,    end              };
+    //i2c.write(_writeOpcode, databytes, 6);
+    HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes, 6, 3000);
     
     
 }//setPageAddress
@@ -264,9 +289,9 @@
     
     //_sendCommand(SET_COLUMN_ADDRESS, start, end);
     
-    char databytes[6] = {    COMMAND_MODE,    SET_COLUMN_ADDRESS,    COMMAND_MODE,    start,    COMMAND_MODE,    end              };
-    i2c.write(_writeOpcode, databytes, 6);
-
+    uint8_t databytes[6] = {    COMMAND_MODE,    SET_COLUMN_ADDRESS,    COMMAND_MODE,    start,    COMMAND_MODE,    end              };
+    //i2c.write(_writeOpcode, databytes, 6);
+    HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes, 6, 3000);
     
 }//setColumnAddress
 
@@ -279,8 +304,9 @@
     //_sendCommand(SET_DISPLAY_POWER_ON);
     
     
-    char databytes[2] = {    COMMAND_MODE,    SET_DISPLAY_POWER_ON             };
-    i2c.write(_writeOpcode,databytes, 2); 
+    uint8_t databytes[2] = {    COMMAND_MODE,    SET_DISPLAY_POWER_ON             };
+    //i2c.write(_writeOpcode,databytes, 2); 
+    HAL_I2C_Master_Transmit(   _hi2c       ,  _writeOpcode  , databytes, 2, 3000);
     
 }//setDisplayOn