|
@@ -90,7 +90,6 @@ static volatile uint8_t dispWDT = 0;
|
|
|
/* USER CODE END PV */
|
|
|
|
|
|
/* Private function prototypes -----------------------------------------------*/
|
|
|
-static void MX_SPI1_Init(void);
|
|
|
/* USER CODE BEGIN PFP */
|
|
|
static void showDigits(uint8_t * dig);
|
|
|
static void sensor_Init(void);
|
|
@@ -114,22 +113,19 @@ int main(void)
|
|
|
/* Initialize onBoard Hardware */
|
|
|
Board_Init();
|
|
|
|
|
|
- /* Initialize all configured peripherals */
|
|
|
- MX_SPI1_Init();
|
|
|
- /* USER CODE BEGIN 2 */
|
|
|
/* Initialize Scheduler */
|
|
|
RTOS_Init();
|
|
|
+ /* tdelay_ms() work now, I2C can work too */
|
|
|
+ RTC_Init();
|
|
|
+ RTC_ReadAll(&Clock);
|
|
|
+ sensor_Init();
|
|
|
|
|
|
/* Initialize Event State Machine */
|
|
|
ES_Init(stShowTime);
|
|
|
+ es_event_t event = eventNull;
|
|
|
|
|
|
/* Enable tube power */
|
|
|
TUBE_PWR_ON;
|
|
|
-
|
|
|
- RTC_Init();
|
|
|
-
|
|
|
- sensor_Init();
|
|
|
-
|
|
|
/** Star SPI transfer to shift registers */
|
|
|
/* Set DMA source and destination addresses. */
|
|
|
/* Source: Address of the SPI buffer. */
|
|
@@ -138,20 +134,15 @@ int main(void)
|
|
|
DMA1_Channel1->CPAR = (uint32_t)&(SPI1->DR);
|
|
|
/* Set DMA data transfer length (SPI buffer length). */
|
|
|
DMA1_Channel1->CNDTR = SPI_BUFFER_SIZE;
|
|
|
- /* Enable SPI+DMA transfer */
|
|
|
- SPI1->CR2 |= SPI_CR2_TXDMAEN;
|
|
|
+ /* Enable SPI transfer */
|
|
|
SPI1->CR1 |= SPI_CR1_SPE;
|
|
|
Flag.SPI_TX_End = 1;
|
|
|
+ /* display work now */
|
|
|
|
|
|
/** Set tasks for Sheduler */
|
|
|
RTOS_SetTask(btnProcess, 1, BTN_SCAN_PERIOD);
|
|
|
|
|
|
- /* USER CODE END 2 */
|
|
|
-
|
|
|
/* USER CODE BEGIN WHILE */
|
|
|
- RTC_ReadAll(&Clock);
|
|
|
-
|
|
|
- es_event_t event = eventNull;
|
|
|
Color_RGB(0xFF, 0x12, 0x0); // Nixie color. FF1200 or FF7E00 or FFBF00
|
|
|
showTime();
|
|
|
|
|
@@ -241,96 +232,6 @@ static void sensorGetData(void) {
|
|
|
Pressure.s16.u8L = (uint8_t)(tmp % 100);
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * @brief SPI1 Initialization Function
|
|
|
- * @param None
|
|
|
- * @retval None
|
|
|
- */
|
|
|
-static void MX_SPI1_Init(void)
|
|
|
-{
|
|
|
-
|
|
|
- /* USER CODE BEGIN SPI1_Init 0 */
|
|
|
-
|
|
|
- /* USER CODE END SPI1_Init 0 */
|
|
|
-
|
|
|
- LL_SPI_InitTypeDef SPI_InitStruct = {0};
|
|
|
-
|
|
|
- LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
-
|
|
|
- /* Peripheral clock enable */
|
|
|
- LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1);
|
|
|
-
|
|
|
- LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB);
|
|
|
- /**SPI1 GPIO Configuration
|
|
|
- PB3 ------> SPI1_SCK
|
|
|
- PB5 ------> SPI1_MOSI
|
|
|
- */
|
|
|
- GPIO_InitStruct.Pin = LL_GPIO_PIN_3;
|
|
|
- GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
|
|
|
- GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
|
|
|
- GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_OPENDRAIN;
|
|
|
- GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
|
|
- GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
|
|
- LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
-
|
|
|
- GPIO_InitStruct.Pin = LL_GPIO_PIN_5;
|
|
|
- GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
|
|
|
- GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
|
|
|
- GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_OPENDRAIN;
|
|
|
- GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
|
|
- GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
|
|
- LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
-
|
|
|
- /* SPI1 DMA Init */
|
|
|
-
|
|
|
- /* SPI1_TX Init */
|
|
|
- LL_DMA_SetPeriphRequest(DMA1, LL_DMA_CHANNEL_1, LL_DMAMUX_REQ_SPI1_TX);
|
|
|
-
|
|
|
- LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_1, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
|
|
|
-
|
|
|
- LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PRIORITY_HIGH);
|
|
|
-
|
|
|
- LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MODE_CIRCULAR);
|
|
|
-
|
|
|
- LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PERIPH_NOINCREMENT);
|
|
|
-
|
|
|
- LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MEMORY_INCREMENT);
|
|
|
-
|
|
|
- LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PDATAALIGN_BYTE);
|
|
|
-
|
|
|
- LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MDATAALIGN_BYTE);
|
|
|
-
|
|
|
- /* SPI1 interrupt Init */
|
|
|
- NVIC_SetPriority(SPI1_IRQn, 0);
|
|
|
- NVIC_EnableIRQ(SPI1_IRQn);
|
|
|
-
|
|
|
- /* USER CODE BEGIN SPI1_Init 1 */
|
|
|
-
|
|
|
- /* Enable DMA transfer complete/error interrupts */
|
|
|
- LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_1);
|
|
|
- LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_1);
|
|
|
-
|
|
|
- /* USER CODE END SPI1_Init 1 */
|
|
|
- /* SPI1 parameter configuration*/
|
|
|
- SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
|
|
|
- SPI_InitStruct.Mode = LL_SPI_MODE_MASTER;
|
|
|
- SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT;
|
|
|
- SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_LOW;
|
|
|
- SPI_InitStruct.ClockPhase = LL_SPI_PHASE_1EDGE;
|
|
|
- SPI_InitStruct.NSS = LL_SPI_NSS_SOFT;
|
|
|
- SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV16;
|
|
|
- SPI_InitStruct.BitOrder = LL_SPI_MSB_FIRST;
|
|
|
- SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE;
|
|
|
- SPI_InitStruct.CRCPoly = 7;
|
|
|
- LL_SPI_Init(SPI1, &SPI_InitStruct);
|
|
|
- LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA);
|
|
|
- LL_SPI_DisableNSSPulseMgt(SPI1);
|
|
|
- /* USER CODE BEGIN SPI1_Init 2 */
|
|
|
-
|
|
|
- /* USER CODE END SPI1_Init 2 */
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
/* USER CODE BEGIN 4 */
|
|
|
/*************************
|
|
|
* S U B R O U T I N E S *
|