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 |