rxcplt callback

This commit is contained in:
2022-06-10 18:59:20 +02:00
parent a3fcd0e57c
commit b0d317663d
6 changed files with 103 additions and 69 deletions

View File

@ -84,14 +84,15 @@ const osSemaphoreAttr_t si5351_attributes = {
};
/* USER CODE BEGIN PV */
int leds_on = 1;
uint8_t UART1_rxBuffer[12] = {0};
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_LPUART1_UART_Init(void);
static void MX_I2C1_Init(void);
static void MX_RTC_Init(void);
static void MX_I2C1_Init(void);
void StartDefaultTask(void *argument);
void start_terminal_task(void *argument);
void start_morse_task(void *argument);
@ -116,6 +117,8 @@ int main(void)
{
/* USER CODE BEGIN 1 */
/* int status = 0; */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
@ -137,8 +140,8 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_LPUART1_UART_Init();
MX_I2C1_Init();
MX_RTC_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
si5351_inst_t si5351_inst = 0;
@ -179,7 +182,7 @@ int main(void)
HAL_Delay(10000);
#endif
#if 1
#if 0
si5351_set_clk0(si5351_inst, 3550000);
si5351_enable_output(si5351_inst,0);
@ -213,7 +216,9 @@ int main(void)
#endif
HAL_Delay(60000);
HAL_Delay(20000);
#if 0
while (1) {
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
@ -244,6 +249,8 @@ int main(void)
HAL_ResumeTick();
}
#endif
/* World Youth ARDF Championship Romania 2022 */
/* 80 m . RF power 3 W, QRG MOE-MO5: 3550 MHz, MO: 3600 MHz, Antenna 8m
* 80 m Sprint pwr 1 W, TX 1-5: MOE-MO5: 3530 MHz, S: 3550 MHz, TX 1F-5F MOE-MO5: 3570 MHz
@ -258,7 +265,7 @@ int main(void)
// si5351_enable_output(si5351_inst,1);
// HAL_Delay(1000);
#if 0
#if 1
si5351_set_clk0(si5351_inst, 3550000);
si5351_set_clk(si5351_inst, 3570000, 2, SI5351_PLLB);
@ -294,16 +301,16 @@ int main(void)
/* Create the thread(s) */
/* creation of defaultTask */
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
//defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
/* creation of terminalTask */
terminalTaskHandle = osThreadNew(start_terminal_task, NULL, &terminalTask_attributes);
/* creation of morseTask */
morseTaskHandle = osThreadNew(start_morse_task, (void*) si5351_inst, &morseTask_attributes);
//morseTaskHandle = osThreadNew(start_morse_task, (void*) si5351_inst, &morseTask_attributes);
/* creation of clk2Task */
clk2TaskHandle = osThreadNew(start_clk2_task, (void*) si5351_inst, &clk2Task_attributes);
//clk2TaskHandle = osThreadNew(start_clk2_task, (void*) si5351_inst, &clk2Task_attributes);
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
@ -561,7 +568,7 @@ static void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOB, LD3_Pin|LD2_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(USB_PowerSwitchOn_GPIO_Port, USB_PowerSwitchOn_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_RESET);
@ -667,12 +674,12 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : USB_PowerSwitchOn_Pin */
GPIO_InitStruct.Pin = USB_PowerSwitchOn_Pin;
/*Configure GPIO pin : PG6 */
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(USB_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
/*Configure GPIO pin : LD1_Pin */
GPIO_InitStruct.Pin = LD1_Pin;
@ -692,6 +699,12 @@ static void MX_GPIO_Init(void)
}
/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *hlpuart) {
HAL_UART_Transmit(&hlpuart1, UART1_rxBuffer, 1, 100);
HAL_UART_Receive_IT(&hlpuart1, UART1_rxBuffer, 1);
}
/**
* @brief Retargets the C library printf function to the USART.
* @param None
@ -893,9 +906,11 @@ void start_terminal_task(void *argument)
HAL_StatusTypeDef status;
RTC_TimeTypeDef time;
RTC_DateTypeDef date;
uint8_t LPUART1_rxBuffer[100];
/* Infinite loop */
for(;;) {
HAL_UART_Receive_IT(&hlpuart1, UART1_rxBuffer, 1);
status = HAL_RTC_GetTime(&hrtc, &time, RTC_FORMAT_BIN);
if (status != HAL_OK)
@ -985,7 +1000,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
/* USER CODE BEGIN Callback 0 */
/* USER CODE END Callback 0 */
if (htim->Instance == TIM6) {
if (htim->Instance == TIM6) {
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */

View File

@ -196,6 +196,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
/* LPUART1 interrupt Init */
HAL_NVIC_SetPriority(LPUART1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspInit 1 */
/* USER CODE END LPUART1_MspInit 1 */
@ -225,6 +228,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/
HAL_GPIO_DeInit(GPIOG, STLK_RX_Pin|STLK_TX_Pin);
/* LPUART1 interrupt DeInit */
HAL_NVIC_DisableIRQ(LPUART1_IRQn);
/* USER CODE BEGIN LPUART1_MspDeInit 1 */
/* USER CODE END LPUART1_MspDeInit 1 */

View File

@ -55,6 +55,7 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern UART_HandleTypeDef hlpuart1;
extern TIM_HandleTypeDef htim6;
/* USER CODE BEGIN EV */
@ -173,6 +174,20 @@ void TIM6_DAC_IRQHandler(void)
/* USER CODE END TIM6_DAC_IRQn 1 */
}
/**
* @brief This function handles LPUART1 global interrupt.
*/
void LPUART1_IRQHandler(void)
{
/* USER CODE BEGIN LPUART1_IRQn 0 */
/* USER CODE END LPUART1_IRQn 0 */
HAL_UART_IRQHandler(&hlpuart1);
/* USER CODE BEGIN LPUART1_IRQn 1 */
/* USER CODE END LPUART1_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */