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 |