|
|
|
@ -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 */
|
|
|
|
|