Subversion Repositories libSSD1306

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 mjames 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