|
30 | 30 | #include "sys_pitmgr.hpp" |
31 | 31 | #include "pin_mux.h" |
32 | 32 |
|
33 | | -#define HITSIC_DISP_SSD1306_FLIP_X (0U) |
34 | | -#define HITSIC_DISP_SSD1306_FLIP_Y (0U) |
| 33 | +#define HITSIC_DISP_SSD1306_FLIP_X (1U) |
| 34 | +#define HITSIC_DISP_SSD1306_FLIP_Y (1U) |
35 | 35 |
|
36 | 36 | #define OLED_SPI_BASE SPI0 |
37 | 37 | #define OLED_SPI_CLKFREQ CLOCK_GetFreq(DSPI0_CLK_SRC) |
|
42 | 42 |
|
43 | 43 | inline void DISP_SSD1306_gpioSetRST(uint8_t x) |
44 | 44 | { |
45 | | - GPIO_PinWrite(GPIO_OLED_RST_GPIO, GPIO_OLED_RST_PIN, x); |
| 45 | + GPIO_PinWrite(RTEPIN_BASIC_OLED_RST_GPIO, RTEPIN_BASIC_OLED_RST_PIN, x); |
| 46 | + //GPIO_PinWrite(GPIOA, 10, x); |
46 | 47 | } |
47 | 48 |
|
48 | 49 | inline void DISP_SSD1306_gpioSetD_C(uint8_t x) |
49 | 50 | { |
50 | | - GPIO_PinWrite(GPIO_OLED_D_C_GPIO, GPIO_OLED_D_C_PIN, x); |
| 51 | + GPIO_PinWrite(RTEPIN_BASIC_OLED_D_C_GPIO, RTEPIN_BASIC_OLED_D_C_PIN, x); |
| 52 | + //GPIO_PinWrite(GPIOA, 11, x); |
| 53 | +} |
| 54 | + |
| 55 | +//内部使用用户无需调用 |
| 56 | +inline void OLED_SCL(uint8_t data) |
| 57 | +{ |
| 58 | + GPIO_PinWrite(RTEPIN_BASIC_OLED_SCK_GPIO, RTEPIN_BASIC_OLED_SCK_PIN, data); |
| 59 | + //GPIO_PinWrite(GPIOA, 15, data); |
| 60 | +} |
| 61 | +//内部使用用户无需调用 |
| 62 | +inline void OLED_SDA(uint8_t data) |
| 63 | +{ |
| 64 | + GPIO_PinWrite(RTEPIN_BASIC_OLED_SOT_GPIO, RTEPIN_BASIC_OLED_SOT_PIN, data); |
| 65 | + //GPIO_PinWrite(GPIOA, 16, data); |
51 | 66 | } |
52 | 67 |
|
53 | 68 | inline void DISP_SSD1306_delay_ms(uint32_t ms) |
54 | 69 | { |
55 | 70 | for(int i = 0; i < ms; ++i) |
56 | 71 | { |
57 | | - for(int j = 0; j < 1000; ++j) |
58 | | - { |
59 | | - __asm volatile ("nop"); |
60 | | - } |
| 72 | + SDK_DelayAtLeastUs(1000,CLOCK_GetFreq(kCLOCK_CoreSysClk)); |
61 | 73 | } |
62 | 74 | } |
63 | 75 |
|
@@ -88,15 +100,34 @@ inline void DISP_SSD1306_delay_ms(uint32_t ms) |
88 | 100 | //} |
89 | 101 | inline void DISP_SSD1306_spiWrite(uint8_t data) |
90 | 102 | { |
91 | | - static dspi_transfer_t oled_spi_xfer = |
92 | | - { |
93 | | - .txData = NULL, |
94 | | - .rxData = NULL, |
95 | | - .dataSize = 1, |
96 | | - .configFlags = OLED_SPI_MasterCtarn | OLED_SPI_MasterPcsn | kDSPI_MasterPcsContinuous, |
97 | | - }; |
98 | | - oled_spi_xfer.txData = &data; |
99 | | - DSPI_MasterTransferBlocking(OLED_SPI_BASE, &oled_spi_xfer); |
| 103 | +// static dspi_transfer_t oled_spi_xfer = |
| 104 | +// { |
| 105 | +// .txData = NULL, |
| 106 | +// .rxData = NULL, |
| 107 | +// .dataSize = 1, |
| 108 | +// .configFlags = OLED_SPI_MasterCtarn | OLED_SPI_MasterPcsn | kDSPI_MasterPcsContinuous, |
| 109 | +// }; |
| 110 | +// oled_spi_xfer.txData = &data; |
| 111 | +// DSPI_MasterTransferBlocking(OLED_SPI_BASE, &oled_spi_xfer); |
| 112 | + |
| 113 | + uint8_t i=8; |
| 114 | + |
| 115 | + OLED_SCL(0);; |
| 116 | + |
| 117 | + while(i--) |
| 118 | + { |
| 119 | + if(data&0x80){OLED_SDA(1);} |
| 120 | + else{OLED_SDA(0);} |
| 121 | + |
| 122 | + //SDK_DelayAtLeastUs(2,CLOCK_GetFreq(kCLOCK_CoreSysClk)); |
| 123 | + OLED_SCL(1); |
| 124 | + |
| 125 | + //SDK_DelayAtLeastUs(3,CLOCK_GetFreq(kCLOCK_CoreSysClk)); |
| 126 | + OLED_SCL(0); |
| 127 | + data<<=1; |
| 128 | + } |
| 129 | + |
| 130 | + |
100 | 131 | } |
101 | 132 |
|
102 | 133 |
|
|
0 commit comments