|
@@ -85,7 +85,8 @@ static void MX_TIM16_Init(void);
|
|
|
static void MX_TIM17_Init(void);
|
|
|
|
|
|
static void showDigit(tube_pos_t pos, uint8_t dig);
|
|
|
-static void SPI_Send(void);
|
|
|
+static void SPI_StartTX(void);
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -156,36 +157,31 @@ int main(void)
|
|
|
|
|
|
TUBE_PWR_ON;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ DMA1_Channel1->CMAR = (uint32_t)&tubesBuffer;
|
|
|
+
|
|
|
+ DMA1_Channel1->CPAR = (uint32_t)&( SPI1->DR );
|
|
|
+
|
|
|
+ DMA1_Channel1->CNDTR = SPI_BUFFER_SIZE;
|
|
|
+
|
|
|
+#ifdef USE_LL_DRV
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ showDigit(Tube_A, 0xf);
|
|
|
+ showDigit(Tube_B, 0xf);
|
|
|
+ showDigit(Tube_D, 0xf);
|
|
|
+ showDigit(Tube_E, 0xf);
|
|
|
|
|
|
- showDigit(Tube_A, 0);
|
|
|
- showDigit(Tube_B, 0);
|
|
|
- showDigit(Tube_D, 0);
|
|
|
- showDigit(Tube_E, 4);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ SPI_StartTX();
|
|
|
|
|
|
|
|
|
|
|
@@ -199,12 +195,18 @@ int main(void)
|
|
|
{
|
|
|
IN15_Plus;
|
|
|
COLOR_RGB(0, 0, 0);
|
|
|
- SPI_Send();
|
|
|
+
|
|
|
LL_mDelay(500);
|
|
|
|
|
|
+ showDigit(Tube_A, 1);
|
|
|
+ showDigit(Tube_B, 2);
|
|
|
+ showDigit(Tube_D, 3);
|
|
|
+ showDigit(Tube_E, 4);
|
|
|
+ SPI_StartTX();
|
|
|
+
|
|
|
IN15_OFF;
|
|
|
COLOR_RGB(0xFF, 0x12, 0x0);
|
|
|
- SPI_Send();
|
|
|
+
|
|
|
LL_mDelay(500);
|
|
|
|
|
|
|
|
@@ -214,12 +216,26 @@ int main(void)
|
|
|
|
|
|
|
|
|
|
|
|
+ showDigit(Tube_A, 5);
|
|
|
+ showDigit(Tube_B, 6);
|
|
|
+ showDigit(Tube_D, 7);
|
|
|
+ showDigit(Tube_E, 8);
|
|
|
+ SPI_StartTX();
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
+static void SPI_StartTX(void) {
|
|
|
+ LATCH_DOWN;
|
|
|
+
|
|
|
+
|
|
|
+ SPI1->CR2 |= SPI_CR2_TXDMAEN;
|
|
|
+ SPI1->CR1 |= SPI_CR1_SPE;
|
|
|
+}
|
|
|
+
|
|
|
static void SPI_Send(void) {
|
|
|
int i;
|
|
|
|
|
@@ -477,6 +493,13 @@ static void MX_SPI1_Init(void)
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+ LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_1);
|
|
|
+ LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_1);
|
|
|
+
|
|
|
+
|
|
|
+ LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_1);
|
|
|
+
|
|
|
|
|
|
|
|
|
SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
|