Subversion Repositories libSSD1306

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. #include "libSSD1306/spiInterface.h"
  3.  
  4. // already done in HAL
  5. void
  6. ssd1306spiInit (void)
  7. {
  8. }
  9.  
  10. void
  11. ssd1306commandSPIwrite (uint8_t c)
  12. {
  13.   HAL_GPIO_WritePin (SPI_CD_GPIO_Port, SPI_CD_Pin, GPIO_PIN_RESET);
  14.   uint8_t buffer[1];
  15.   buffer[0] = c;
  16.  
  17.   HAL_GPIO_WritePin (SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET);
  18.  
  19.   HAL_SPI_Transmit (&SPI_IF, buffer, 1, 2); // allow 2mS for transfer
  20.   HAL_GPIO_WritePin (SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET);
  21. }
  22.  
  23. void
  24. ssd1306resetDisplay (void)
  25. {
  26.  
  27.   HAL_GPIO_WritePin (SPI_RESET_GPIO_Port, SPI_RESET_Pin, GPIO_PIN_SET);
  28.  
  29.   // VDD (3.3V) goes high at start, lets just chill for a ms
  30.   HAL_Delay (1);
  31.   // bring reset low
  32.   HAL_GPIO_WritePin (SPI_RESET_GPIO_Port, SPI_RESET_Pin, GPIO_PIN_RESET);
  33.   // wait 10ms
  34.   HAL_Delay (10);
  35.   // bring out of reset
  36.   HAL_GPIO_WritePin (SPI_RESET_GPIO_Port, SPI_RESET_Pin, GPIO_PIN_SET);
  37. }
  38.  
  39. void
  40. ssd1306SendDisplay (uint8_t *buffer, uint8_t len)
  41. {
  42. // set data pin
  43.   HAL_GPIO_WritePin (SPI_CD_GPIO_Port, SPI_CD_Pin, GPIO_PIN_SET);
  44.   HAL_GPIO_WritePin (SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET);
  45.  
  46.   HAL_SPI_Transmit (&SPI_IF, buffer, len, 100); // allow 100mS for transfer
  47.  
  48.   HAL_GPIO_WritePin (SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET);
  49.  
  50. }
  51.  
  52.